Code

Rename ".dotest/" to ".git/rebase" and ".dotest-merge" to "rebase-merge"
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Wed, 16 Jul 2008 01:33:44 +0000 (03:33 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Jul 2008 01:49:28 +0000 (18:49 -0700)
Since the files generated and used during a rebase are never to be
tracked, they should live in $GIT_DIR.  While at it, avoid the rather
meaningless term "dotest" to "rebase", and unhide ".dotest-merge".

This was wished for on the mailing list, but so far unimplemented.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 files changed:
Documentation/SubmittingPatches
Documentation/git-am.txt
Documentation/git-rebase.txt
Documentation/user-manual.txt
contrib/completion/git-completion.bash
contrib/emacs/git.el
git-am.sh
git-quiltimport.sh
git-rebase--interactive.sh
git-rebase.sh
t/t3401-rebase-partial.sh
t/t3404-rebase-interactive.sh
t/t3407-rebase-abort.sh
t/t4150-am.sh
t/t9106-git-svn-commit-diff-clobber.sh

index b1164753e13dbe015d073346bc0b7c992532efe8..fdfa5364414358e006ac20a20672f6c4408cde5d 100644 (file)
@@ -301,7 +301,7 @@ If it does not apply correctly, there can be various reasons.
   patch appropriately.
 
 * Your MUA corrupted your patch; "am" would complain that
-  the patch does not apply.  Look at .dotest/ subdirectory and
+  the patch does not apply.  Look at .git/rebase/ subdirectory and
   see what 'patch' file contains and check for the common
   corruption patterns mentioned above.
 
index 1395c7d986c82eb1e7e91140c8f97b80e7a8a41d..2d7f162594cb69d5a5f6d8ef1714111ad0bbc67a 100644 (file)
@@ -140,9 +140,9 @@ aborts in the middle,.  You can recover from this in one of two ways:
   the index file to bring it in a state that the patch should
   have produced.  Then run the command with '--resolved' option.
 
-The command refuses to process new mailboxes while `.dotest`
+The command refuses to process new mailboxes while `.git/rebase`
 directory exists, so if you decide to start over from scratch,
-run `rm -f -r .dotest` before running the command with mailbox
+run `rm -f -r .git/rebase` before running the command with mailbox
 names.
 
 Before any patches are applied, ORIG_HEAD is set to the tip of the
index e30f6a6982a8d9ee48c6a7d46fa435c7aee773af..51afc87e173ca135e4a663ce58b8378c1aef1d25 100644 (file)
@@ -39,7 +39,7 @@ It is possible that a merge failure will prevent this process from being
 completely automatic.  You will have to resolve any such merge failure
 and run `git rebase --continue`.  Another option is to bypass the commit
 that caused the merge failure with `git rebase --skip`.  To restore the
-original <branch> and remove the .dotest working files, use the command
+original <branch> and remove the .git/rebase working files, use the command
 `git rebase --abort` instead.
 
 Assume the following history exists and the current branch is "topic":
index 92d400753d192b4b6df256fc3b872d775ecaacd4..8761ee7e7d7ffe1202daff13c68a81dd2b19e18f 100644 (file)
@@ -2431,7 +2431,7 @@ $ git rebase origin
 -------------------------------------------------
 
 This will remove each of your commits from mywork, temporarily saving
-them as patches (in a directory named ".dotest"), update mywork to
+them as patches (in a directory named ".git/rebase"), update mywork to
 point at the latest version of origin, then apply each of the saved
 patches to the new mywork.  The result will look like:
 
index 03e4e02785fb1e62c230cbbdab14d77836d6b52f..29f6cd4e9eb07f39cc08838ed52be6cf2c438c2e 100755 (executable)
@@ -73,26 +73,26 @@ __git_ps1 ()
        if [ -n "$g" ]; then
                local r
                local b
-               if [ -d "$g/../.dotest" ]
+               if [ -d "$g/rebase" ]
                then
-                       if test -f "$g/../.dotest/rebasing"
+                       if test -f "$g/rebase/rebasing"
                        then
                                r="|REBASE"
-                       elif test -f "$g/../.dotest/applying"
+                       elif test -f "$g/rebase/applying"
                        then
                                r="|AM"
                        else
                                r="|AM/REBASE"
                        fi
                        b="$(git symbolic-ref HEAD 2>/dev/null)"
-               elif [ -f "$g/.dotest-merge/interactive" ]
+               elif [ -f "$g/rebase-merge/interactive" ]
                then
                        r="|REBASE-i"
-                       b="$(cat "$g/.dotest-merge/head-name")"
-               elif [ -d "$g/.dotest-merge" ]
+                       b="$(cat "$g/rebase-merge/head-name")"
+               elif [ -d "$g/rebase-merge" ]
                then
                        r="|REBASE-m"
-                       b="$(cat "$g/.dotest-merge/head-name")"
+                       b="$(cat "$g/rebase-merge/head-name")"
                elif [ -f "$g/MERGE_HEAD" ]
                then
                        r="|MERGING"
@@ -487,8 +487,8 @@ __git_whitespacelist="nowarn warn error error-all strip"
 
 _git_am ()
 {
-       local cur="${COMP_WORDS[COMP_CWORD]}"
-       if [ -d .dotest ]; then
+       local cur="${COMP_WORDS[COMP_CWORD]}" dir="$(__gitdir)"
+       if [ -d "$dir"/rebase ]; then
                __gitcomp "--skip --resolved"
                return
        fi
@@ -915,7 +915,7 @@ _git_push ()
 _git_rebase ()
 {
        local cur="${COMP_WORDS[COMP_CWORD]}" dir="$(__gitdir)"
-       if [ -d .dotest ] || [ -d "$dir"/.dotest-merge ]; then
+       if [ -d "$dir"/rebase ] || [ -d "$dir"/rebase-merge ]; then
                __gitcomp "--continue --skip --abort"
                return
        fi
index 4fa853fae76dc2ac132e489f5f1b630b3fc0f1de..43b059bbaa193a07c5a020286a3fbba343ccfbc1 100644 (file)
@@ -1252,8 +1252,8 @@ Return the list of files that haven't been handled."
        "\n")
       (when subject (insert subject "\n\n"))
       (cond (msg (insert msg "\n"))
-            ((file-readable-p ".dotest/msg")
-             (insert-file-contents ".dotest/msg"))
+            ((file-readable-p ".git/rebase/msg")
+             (insert-file-contents ".git/rebase/msg"))
             ((file-readable-p ".git/MERGE_MSG")
              (insert-file-contents ".git/MERGE_MSG")))
       ; delete empty lines at end
@@ -1272,9 +1272,9 @@ Return the list of files that haven't been handled."
           (coding-system (git-get-commits-coding-system))
           author-name author-email subject date)
       (when (eq 0 (buffer-size buffer))
-        (when (file-readable-p ".dotest/info")
+        (when (file-readable-p ".git/rebase/info")
           (with-temp-buffer
-            (insert-file-contents ".dotest/info")
+            (insert-file-contents ".git/rebase/info")
             (goto-char (point-min))
             (when (re-search-forward "^Author: \\(.*\\)\nEmail: \\(.*\\)$" nil t)
               (setq author-name (match-string 1))
index 52b5669b431140cb44cc65a25ae980f45d70fbe0..cc8787b460e601889fd90c5dba2055e9eb85bc22 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -119,7 +119,7 @@ It does not apply to blobs recorded in its index."
 }
 
 prec=4
-dotest=".dotest"
+dotest="$GIT_DIR/rebase"
 sign= utf8=t keep= skip= interactive= resolved= binary= rebasing=
 resolvemsg= resume=
 git_apply_opt=
@@ -195,7 +195,7 @@ then
                false
                ;;
        esac ||
-       die "previous dotest directory $dotest still exists but mbox given."
+       die "previous rebase directory $dotest still exists but mbox given."
        resume=yes
 else
        # Make sure we are not given --skip nor --resolved
@@ -325,7 +325,7 @@ do
                        <"$dotest"/info >/dev/null &&
                        go_next && continue
 
-               test -s $dotest/patch || {
+               test -s "$dotest/patch" || {
                        echo "Patch is empty.  Was it split wrong?"
                        stop_here $this
                }
index 7cd8f7134e696312d243d73acebb6ecfe07d1e13..d1efa1d7419c23b65af1dccf4b8a00ed0e94c79c 100755 (executable)
@@ -53,7 +53,7 @@ if ! [ -d "$QUILT_PATCHES" ] ; then
 fi
 
 # Temporary directories
-tmp_dir=.dotest
+tmp_dir="$GIT_DIR"/rebase
 tmp_msg="$tmp_dir/msg"
 tmp_patch="$tmp_dir/patch"
 tmp_info="$tmp_dir/info"
index a35212d9de23e97055936b23dd8657a584116d76..da79a2456814e4038a42238e0865d8950c14dff0 100755 (executable)
@@ -31,7 +31,7 @@ skip               skip current patch and continue rebasing process
 . git-sh-setup
 require_work_tree
 
-DOTEST="$GIT_DIR/.dotest-merge"
+DOTEST="$GIT_DIR/rebase-merge"
 TODO="$DOTEST"/git-rebase-todo
 DONE="$DOTEST"/done
 MSG="$DOTEST"/message
index 2597d777d6fa8e9beb2a660ecdc10366747b4e23..56cf6f0316ddd000221ecaf343f7fc58c8636590 100755 (executable)
@@ -14,7 +14,7 @@ It is possible that a merge failure will prevent this process from being
 completely automatic.  You will have to resolve any such merge failure
 and run git rebase --continue.  Another option is to bypass the commit
 that caused the merge failure with git rebase --skip.  To restore the
-original <branch> and remove the .dotest working files, use the command
+original <branch> and remove the .git/rebase working files, use the command
 git rebase --abort instead.
 
 Note that if <branch> is not specified on the command line, the
@@ -42,7 +42,7 @@ To restore the original branch and stop rebasing run \"git rebase --abort\".
 unset newbase
 strategy=recursive
 do_merge=
-dotest=$GIT_DIR/.dotest-merge
+dotest="$GIT_DIR"/rebase-merge
 prec=4
 verbose=
 git_am_opt=
@@ -150,7 +150,7 @@ while test $# != 0
 do
        case "$1" in
        --continue)
-               test -d "$dotest" -o -d .dotest ||
+               test -d "$dotest" -o -d "$GIT_DIR"/rebase ||
                        die "No rebase in progress?"
 
                git diff-files --quiet --ignore-submodules || {
@@ -173,15 +173,15 @@ do
                        finish_rb_merge
                        exit
                fi
-               head_name=$(cat .dotest/head-name) &&
-               onto=$(cat .dotest/onto) &&
-               orig_head=$(cat .dotest/orig-head) &&
+               head_name=$(cat "$GIT_DIR"/rebase/head-name) &&
+               onto=$(cat "$GIT_DIR"/rebase/onto) &&
+               orig_head=$(cat "$GIT_DIR"/rebase/orig-head) &&
                git am --resolved --3way --resolvemsg="$RESOLVEMSG" &&
                move_to_original_branch
                exit
                ;;
        --skip)
-               test -d "$dotest" -o -d .dotest ||
+               test -d "$dotest" -o -d "$GIT_DIR"/rebase ||
                        die "No rebase in progress?"
 
                git reset --hard HEAD || exit $?
@@ -201,15 +201,15 @@ do
                        finish_rb_merge
                        exit
                fi
-               head_name=$(cat .dotest/head-name) &&
-               onto=$(cat .dotest/onto) &&
-               orig_head=$(cat .dotest/orig-head) &&
+               head_name=$(cat "$GIT_DIR"/rebase/head-name) &&
+               onto=$(cat "$GIT_DIR"/rebase/onto) &&
+               orig_head=$(cat "$GIT_DIR"/rebase/orig-head) &&
                git am -3 --skip --resolvemsg="$RESOLVEMSG" &&
                move_to_original_branch
                exit
                ;;
        --abort)
-               test -d "$dotest" -o -d .dotest ||
+               test -d "$dotest" -o -d "$GIT_DIR"/rebase ||
                        die "No rebase in progress?"
 
                git rerere clear
@@ -217,7 +217,7 @@ do
                then
                        move_to_original_branch
                else
-                       dotest=.dotest
+                       dotest="$GIT_DIR"/rebase
                        move_to_original_branch
                fi
                git reset --hard $(cat "$dotest/orig-head")
@@ -265,24 +265,24 @@ do
        shift
 done
 
-# Make sure we do not have .dotest
+# Make sure we do not have $GIT_DIR/rebase
 if test -z "$do_merge"
 then
-       if mkdir .dotest
+       if mkdir "$GIT_DIR"/rebase
        then
-               rmdir .dotest
+               rmdir "$GIT_DIR"/rebase
        else
                echo >&2 '
-It seems that I cannot create a .dotest directory, and I wonder if you
+It seems that I cannot create a '"$GIT_DIR"'/rebase directory, and I wonder if you
 are in the middle of patch application or another rebase.  If that is not
-the case, please rm -fr .dotest and run me again.  I am stopping in case
+the case, please rm -fr '"$GIT_DIR"'/rebase and run me again.  I am stopping in case
 you still have something valuable there.'
                exit 1
        fi
 else
        if test -d "$dotest"
        then
-               die "previous dotest directory $dotest still exists." \
+               die "previous rebase directory $dotest still exists." \
                        'try git-rebase < --continue | --abort >'
        fi
 fi
@@ -396,10 +396,10 @@ then
        git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" &&
        move_to_original_branch
        ret=$?
-       test 0 != $ret -a -d .dotest &&
-               echo $head_name > .dotest/head-name &&
-               echo $onto > .dotest/onto &&
-               echo $orig_head > .dotest/orig-head
+       test 0 != $ret -a -d "$GIT_DIR"/rebase &&
+               echo $head_name > "$GIT_DIR"/rebase/head-name &&
+               echo $onto > "$GIT_DIR"/rebase/onto &&
+               echo $orig_head > "$GIT_DIR"/rebase/orig-head
        exit $ret
 fi
 
index 4934a4e01092e27e07254b10ed3e54e8699b54ac..36d9a2ae3aa7adb0bff18bb2a4180a2ba4369766 100755 (executable)
@@ -50,12 +50,12 @@ test_debug \
 
 test_expect_success \
     'rebase topic branch against new master and check git-am did not get halted' \
-    'git-rebase master && test ! -d .dotest'
+    'git-rebase master && test ! -d .git/rebase'
 
 test_expect_success \
        'rebase --merge topic branch that was partially merged upstream' \
        'git-checkout -f my-topic-branch-merge &&
         git-rebase --merge master-merge &&
-        test ! -d .git/.dotest-merge'
+        test ! -d .git/rebase-merge'
 
 test_done
index 092aa265733b0c6cbf75ac532c3c006457668bc8..ffe3dd97b7b1c056d854e28795e1313ce1633452 100755 (executable)
@@ -159,19 +159,19 @@ test_expect_success 'stop on conflicting pick' '
        git tag new-branch1 &&
        test_must_fail git rebase -i master &&
        test "$(git rev-parse HEAD~3)" = "$(git rev-parse master)" &&
-       test_cmp expect .git/.dotest-merge/patch &&
+       test_cmp expect .git/rebase-merge/patch &&
        test_cmp expect2 file1 &&
        test "$(git-diff --name-status |
                sed -n -e "/^U/s/^U[^a-z]*//p")" = file1 &&
-       test 4 = $(grep -v "^#" < .git/.dotest-merge/done | wc -l) &&
-       test 0 = $(grep -c "^[^#]" < .git/.dotest-merge/git-rebase-todo)
+       test 4 = $(grep -v "^#" < .git/rebase-merge/done | wc -l) &&
+       test 0 = $(grep -c "^[^#]" < .git/rebase-merge/git-rebase-todo)
 '
 
 test_expect_success 'abort' '
        git rebase --abort &&
        test $(git rev-parse new-branch1) = $(git rev-parse HEAD) &&
        test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
-       ! test -d .git/.dotest-merge
+       ! test -d .git/rebase-merge
 '
 
 test_expect_success 'retain authorship' '
index 1777ffe8a22d8f9dd28efadd3cb9ea65be9c2178..12c8804a030f889bc0a416d5743600aa8a427eb7 100755 (executable)
@@ -74,7 +74,7 @@ testrebase() {
        '
 }
 
-testrebase "" .dotest
-testrebase " --merge" .git/.dotest-merge
+testrebase "" .git/rebase
+testrebase " --merge" .git/rebase-merge
 
 test_done
index bc982607d09bbdeb0d486eb282f5756a48ae5bcb..5cbd5ef6798bcef1c011893a4759cac4047dc6b7 100755 (executable)
@@ -102,7 +102,7 @@ test_expect_success 'am applies patch correctly' '
        git checkout first &&
        test_tick &&
        git am <patch1 &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        test -z "$(git diff second)" &&
        test "$(git rev-parse second)" = "$(git rev-parse HEAD)" &&
        test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
@@ -123,7 +123,7 @@ test_expect_success 'am changes committer and keeps author' '
        test_tick &&
        git checkout first &&
        git am patch2 &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        test "$(git rev-parse master^^)" = "$(git rev-parse HEAD^^)" &&
        test -z "$(git diff master..HEAD)" &&
        test -z "$(git diff master^..HEAD^)" &&
@@ -163,7 +163,7 @@ test_expect_success 'am without --keep removes Re: and [PATCH] stuff' '
 test_expect_success 'am --keep really keeps the subject' '
        git checkout HEAD^ &&
        git am --keep patch4 &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        git-cat-file commit HEAD |
                grep -q -F "Re: Re: Re: [PATCH 1/5 v2] third"
 '
@@ -176,19 +176,19 @@ test_expect_success 'am -3 falls back to 3-way merge' '
        test_tick &&
        git commit -m "copied stuff" &&
        git am -3 lorem-move.patch &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        test -z "$(git diff lorem)"
 '
 
 test_expect_success 'am pauses on conflict' '
        git checkout lorem2^^ &&
        ! git am lorem-move.patch &&
-       test -d .dotest
+       test -d .git/rebase
 '
 
 test_expect_success 'am --skip works' '
        git am --skip &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        test -z "$(git diff lorem2^^ -- file)" &&
        test goodbye = "$(cat another)"
 '
@@ -196,31 +196,31 @@ test_expect_success 'am --skip works' '
 test_expect_success 'am --resolved works' '
        git checkout lorem2^^ &&
        ! git am lorem-move.patch &&
-       test -d .dotest &&
+       test -d .git/rebase &&
        echo resolved >>file &&
        git add file &&
        git am --resolved &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        test goodbye = "$(cat another)"
 '
 
 test_expect_success 'am takes patches from a Pine mailbox' '
        git checkout first &&
        cat pine patch1 | git am &&
-       ! test -d .dotest &&
+       ! test -d .git/rebase &&
        test -z "$(git diff master^..HEAD)"
 '
 
 test_expect_success 'am fails on mail without patch' '
        ! git am <failmail &&
-       rm -r .dotest/
+       rm -r .git/rebase/
 '
 
 test_expect_success 'am fails on empty patch' '
        echo "---" >>failmail &&
        ! git am <failmail &&
        git am --skip &&
-       ! test -d .dotest
+       ! test -d .git/rebase
 '
 
 test_expect_success 'am works from stdin in subdirectory' '
index 58a3a7b1c333131051282acbae71dc6a1cb16b13..27a65e05df20c2695b9fb849be62d715c968a433 100755 (executable)
@@ -87,7 +87,7 @@ test_expect_success 'multiple dcommit from git-svn will not clobber svn' "
        "
 
 
-test_expect_success 'check that rebase really failed' 'test -d .dotest'
+test_expect_success 'check that rebase really failed' 'test -d .git/rebase'
 
 test_expect_success 'resolve, continue the rebase and dcommit' "
        echo clobber and I really mean it > file &&