-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
27 lines (18 loc) · 1.58 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
checkRebaseWorkflow Stash plugin
SUMMARY:
--------
This plugin enforce a continuous / linear history of commits on selected branches.
There are a lot of debates for/against different git workflows. I am of the opinion that the "history" of a branch and where it originated does not hold much value. Beyond that, having a clear linear history of what is going on a specific branch (typically a release branch or master) is very valuable.
Here are a few links discussing some of those aspects:
http://lwn.net/Articles/328438/
http://unethicalblogger.com/2010/04/02/a-rebase-based-workflow.html
http://paul.stadig.name/2010/12/thou-shalt-not-lie-git-rebase-ammend.html
http://blog.izs.me/post/37650663670/git-rebase
And some also about the specifics of using 'git merge --no-ff' to be able to group commits together:
http://ariya.ofilabs.com/2013/09/fast-forward-git-merge.html
http://dev.bizo.com/2014/02/why-we-chose-not-to-git-fast-forward-merge.html
This plugin lets you select the branches where you want to keep a completely linear history (no merge commits at all) and the branches where you want to enforce a rebase workflow (so any merge commit would have one of its immediate parent is also an ancestor in the other branch - in other words, one branch does not contain any commit).
When rejecting a commit, it should be printing enough information to the user as to why the push is being rejected.
TODO:
-----
I have been trying to implement some unit test for this plugin. Without much luck so far (https://answers.atlassian.com/questions/11075724/writing-unit-tests-for-stash-plugin-simulate-a-push)