Merge branch 'ab/pull-rebase-config'
* ab/pull-rebase-config: pull: introduce a pull.rebase option to enable --rebasemaint
						commit
						1ee740e669
					
				| 
						 | 
				
			
			@ -677,10 +677,12 @@ branch.<name>.mergeoptions::
 | 
			
		|||
branch.<name>.rebase::
 | 
			
		||||
	When true, rebase the branch <name> on top of the fetched branch,
 | 
			
		||||
	instead of merging the default branch from the default remote when
 | 
			
		||||
	"git pull" is run.
 | 
			
		||||
	*NOTE*: this is a possibly dangerous operation; do *not* use
 | 
			
		||||
	it unless you understand the implications (see linkgit:git-rebase[1]
 | 
			
		||||
	for details).
 | 
			
		||||
	"git pull" is run. See "pull.rebase" for doing this in a non
 | 
			
		||||
	branch-specific manner.
 | 
			
		||||
+
 | 
			
		||||
*NOTE*: this is a possibly dangerous operation; do *not* use
 | 
			
		||||
it unless you understand the implications (see linkgit:git-rebase[1]
 | 
			
		||||
for details).
 | 
			
		||||
 | 
			
		||||
browser.<tool>.cmd::
 | 
			
		||||
	Specify the command to invoke the specified browser. The
 | 
			
		||||
| 
						 | 
				
			
			@ -1590,6 +1592,16 @@ pretty.<name>::
 | 
			
		|||
	Note that an alias with the same name as a built-in format
 | 
			
		||||
	will be silently ignored.
 | 
			
		||||
 | 
			
		||||
pull.rebase::
 | 
			
		||||
	When true, rebase branches on top of the fetched branch, instead
 | 
			
		||||
	of merging the default branch from the default remote when "git
 | 
			
		||||
	pull" is run. See "branch.<name>.rebase" for setting this on a
 | 
			
		||||
	per-branch basis.
 | 
			
		||||
+
 | 
			
		||||
*NOTE*: this is a possibly dangerous operation; do *not* use
 | 
			
		||||
it unless you understand the implications (see linkgit:git-rebase[1]
 | 
			
		||||
for details).
 | 
			
		||||
 | 
			
		||||
pull.octopus::
 | 
			
		||||
	The default merge strategy to use when pulling multiple branches
 | 
			
		||||
	at once.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,7 +108,7 @@ include::merge-options.txt[]
 | 
			
		|||
	fetched, the rebase uses that information to avoid rebasing
 | 
			
		||||
	non-local changes.
 | 
			
		||||
+
 | 
			
		||||
See `branch.<name>.rebase` and `branch.autosetuprebase` in
 | 
			
		||||
See `pull.rebase`, `branch.<name>.rebase` and `branch.autosetuprebase` in
 | 
			
		||||
linkgit:git-config[1] if you want to make `git pull` always use
 | 
			
		||||
`{litdd}rebase` instead of merging.
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,10 @@ merge_args=
 | 
			
		|||
curr_branch=$(git symbolic-ref -q HEAD)
 | 
			
		||||
curr_branch_short="${curr_branch#refs/heads/}"
 | 
			
		||||
rebase=$(git config --bool branch.$curr_branch_short.rebase)
 | 
			
		||||
if test -z "$rebase"
 | 
			
		||||
then
 | 
			
		||||
	rebase=$(git config --bool pull.rebase)
 | 
			
		||||
fi
 | 
			
		||||
dry_run=
 | 
			
		||||
while :
 | 
			
		||||
do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,16 +94,35 @@ test_expect_success '--rebase' '
 | 
			
		|||
	test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
 | 
			
		||||
	test new = $(git show HEAD:file2)
 | 
			
		||||
'
 | 
			
		||||
test_expect_success 'pull.rebase' '
 | 
			
		||||
	git reset --hard before-rebase &&
 | 
			
		||||
	git config --bool pull.rebase true &&
 | 
			
		||||
	test_when_finished "git config --unset pull.rebase" &&
 | 
			
		||||
	git pull . copy &&
 | 
			
		||||
	test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
 | 
			
		||||
	test new = $(git show HEAD:file2)
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'branch.to-rebase.rebase' '
 | 
			
		||||
	git reset --hard before-rebase &&
 | 
			
		||||
	git config branch.to-rebase.rebase 1 &&
 | 
			
		||||
	git config --bool branch.to-rebase.rebase true &&
 | 
			
		||||
	test_when_finished "git config --unset branch.to-rebase.rebase" &&
 | 
			
		||||
	git pull . copy &&
 | 
			
		||||
	git config branch.to-rebase.rebase 0 &&
 | 
			
		||||
	test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
 | 
			
		||||
	test new = $(git show HEAD:file2)
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'branch.to-rebase.rebase should override pull.rebase' '
 | 
			
		||||
	git reset --hard before-rebase &&
 | 
			
		||||
	git config --bool pull.rebase true &&
 | 
			
		||||
	test_when_finished "git config --unset pull.rebase" &&
 | 
			
		||||
	git config --bool branch.to-rebase.rebase false &&
 | 
			
		||||
	test_when_finished "git config --unset branch.to-rebase.rebase" &&
 | 
			
		||||
	git pull . copy &&
 | 
			
		||||
	test $(git rev-parse HEAD^) != $(git rev-parse copy) &&
 | 
			
		||||
	test new = $(git show HEAD:file2)
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success '--rebase with rebased upstream' '
 | 
			
		||||
 | 
			
		||||
	git remote add -f me . &&
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue