From: Heiko Voigt Date: Sat, 10 Jul 2010 09:15:29 GMT Subject: [PATCH v2] add configuration variable for --autosquash option of interactive rebase Message-ID: <20100710091517.GA27323@book.hvoigt.net> In-Reply-To: If you use this feature regularly you can now enable it by default. Signed-off-by: Heiko Voigt --- On Fri, Jul 09, 2010 at 08:01:22PM +0200, Andreas Schwab wrote: > Heiko Voigt writes: > > > diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh > > index 6b86abc..54dc983 100755 > > --- a/git-rebase--interactive.sh > > +++ b/git-rebase--interactive.sh > > @@ -111,6 +111,7 @@ VERBOSE= > > OK_TO_SKIP_PRE_REBASE= > > REBASE_ROOT= > > AUTOSQUASH= > > +test "$(git config --bool rebase.autosquash)" == "true" && AUTOSQUASH=t > > That should be '=' instead of '==' (which is non-std). True, too much C these days. Documentation/git-rebase.txt | 3 +++ git-rebase--interactive.sh | 1 + t/t3415-rebase-autosquash.sh | 38 ++++++++++++++++++++++++++++++-------- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index be23ad2..8849758 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -199,6 +199,9 @@ rebase.stat:: Whether to show a diffstat of what changed upstream since the last rebase. False by default. +rebase.autosquash:: + If set to true enable --autosquash option by default. + OPTIONS ------- :: diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 6b86abc..6e181f4 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -111,6 +111,7 @@ VERBOSE= OK_TO_SKIP_PRE_REBASE= REBASE_ROOT= AUTOSQUASH= +test "$(git config --bool rebase.autosquash)" = "true" && AUTOSQUASH=t NEVER_FF= GIT_CHERRY_PICK_HELP=" After resolving the conflicts, diff --git a/t/t3415-rebase-autosquash.sh b/t/t3415-rebase-autosquash.sh index b63f4e2..ccc5e44 100755 --- a/t/t3415-rebase-autosquash.sh +++ b/t/t3415-rebase-autosquash.sh @@ -21,38 +21,60 @@ test_expect_success setup ' git tag base ' -test_expect_success 'auto fixup' ' +test_auto_fixup() { git reset --hard base && echo 1 >file1 && git add -u && test_tick && git commit -m "fixup! first" - git tag final-fixup && + git tag $1 && test_tick && - git rebase --autosquash -i HEAD^^^ && + git rebase $2 -i HEAD^^^ && git log --oneline >actual && test 3 = $(wc -l file1 && git add -u && test_tick && git commit -m "squash! first" - git tag final-squash && + git tag $1 && test_tick && - git rebase --autosquash -i HEAD^^^ && + git rebase $2 -i HEAD^^^ && git log --oneline >actual && test 3 = $(wc -l