"git cancel" may not be named correctly for this job, but it does almost
everything you'd need for switching between one branch and another
within a repository, so...

Signed-Off-By: Matthias Urlichs <[EMAIL PROTECTED]>

--- f29be8140c5f1175052ec96ad2fa2b2901fd6ba5/git  (mode:100755 
sha1:5f23301eb97a0fadd505a6e9cc851e98741a512a)
+++ 42a073eb6b5bb397a3e8768a032463a7fa02e6b9/git  (mode:100755 
sha1:557122dfb05580e4af2c55767f3d6f92b9110edd)
@@ -28,7 +28,7 @@
        add             FILE...
        addremote       RNAME RSYNC_URL
        apply                           < patch on stdin
-       cancel
+       cancel          [NAME]
        ci, commit      [FILE]...       < log message on stdin
        diff            [-p] [-r FROM_ID[:TO_ID]] [FILE]...
        export          DESTDIR [TREE_ID]
Index: gitcancel.sh
===================================================================
--- f29be8140c5f1175052ec96ad2fa2b2901fd6ba5/gitcancel.sh  (mode:100755 
sha1:a78cf8ccab98861ef7aecb4cb5a79e47d3a84b67)
+++ 42a073eb6b5bb397a3e8768a032463a7fa02e6b9/gitcancel.sh  (mode:100755 
sha1:2fc3e522132ef6a5f71352ab67005c93b5efc04f)
@@ -9,6 +9,9 @@
 # Basically, this is the opposite of git commit in some sense.
 #
 # Takes no arguments and the evil changes from the tree.
+# 
+# ... actually, if you do give it an argument, it'll switch the HEAD to
+# that branch -- or create a new one.
 
 [ -s ".git/add-queue" ] && rm $(cat .git/add-queue)
 rm -f .git/add-queue .git/rm-queue
@@ -29,6 +32,11 @@
        fi
 fi
 
+if [ "$1" ] ; then
+       test -f .git/heads/$1 || cp .git/HEAD .git/heads/$1
+       ln -sf "heads/$1" .git/HEAD
+fi
+
 rm -f .git/blocked .git/merging .git/merging-sym .git/merge-base
 read-tree $(tree-id)
 
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to