diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-11-28 13:11:07 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-28 17:32:23 -0800 |
commit | cd67e4d46b122b161f2ad7d943e4ae7aa8df6cf5 (patch) | |
tree | ab9ba5875d21a8a506d910f2dafbdb3f35787efa /t/t5520-pull.sh | |
parent | d25430c5f88c7e7b4ce24c1b08e409f4345c4eb9 (diff) | |
download | git-cd67e4d46b122b161f2ad7d943e4ae7aa8df6cf5.tar.gz git-cd67e4d46b122b161f2ad7d943e4ae7aa8df6cf5.tar.xz |
Teach 'git pull' about --rebase
When calling 'git pull' with the '--rebase' option, it performs a
fetch + rebase instead of a fetch + merge.
This behavior is more desirable than fetch + pull when a topic branch
is ready to be submitted and needs to be update.
fetch + rebase might also be considered a better workflow with shared
repositories in any case, or for contributors to a centrally managed
repository, such as WINE's.
As a convenience, you can set the default behavior for a branch by
defining the config variable branch.<name>.rebase, which is
interpreted as a bool. This setting can be overridden on the command
line by --rebase and --no-rebase.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5520-pull.sh')
-rwxr-xr-x | t/t5520-pull.sh | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index 93eaf2c15..52b3a0c6d 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -53,4 +53,26 @@ test_expect_success 'the default remote . should not break explicit pull' ' test `cat file` = modified ' +test_expect_success '--rebase' ' + git branch to-rebase && + echo modified again > file && + git commit -m file file && + git checkout to-rebase && + echo new > file2 && + git add file2 && + git commit -m "new file" && + git tag before-rebase && + git pull --rebase . 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 pull . copy && + test $(git rev-parse HEAD^) = $(git rev-parse copy) && + test new = $(git show HEAD:file2) +' + test_done |