summaryrefslogtreecommitdiff
path: root/t/t2018-checkout-branch.sh
Commit message (Collapse)AuthorAgeFilesLines
* Allow checkout -B <current-branch> to update the current branchjn/branch-move-to-selfJonathan Nieder2011-11-281-4/+5
| | | | | | | | | | When on master, "git checkout -B master <commit>" is a more natural way to say "git reset --keep <commit>", which was originally invented for the exact purpose of moving to the named commit while keeping the local changes around. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Show interpreted branch name in error messagesConrad Irwin2011-08-221-0/+9
| | | | | | | | | | | Change the error message when doing: "git branch @{-1}", "git checkout -b @{-1}", or "git branch -m foo @{-1}" * was: A branch named '@{-1}' already exists. * now: A branch named 'bar' already exists. Signed-off-by: Conrad Irwin <conrad.irwin@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Prevent force-updating of the current branchConrad Irwin2011-08-221-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | "git branch -M <foo> <current-branch>" allows updating the current branch which HEAD points, without the necessary house-keeping that git reset normally does to make this operation sensible. It also leaves the reflog in a confusing state (you would be warned when trying to read it). "git checkout -B <current branch> <foo>" is also partly vulnerable to this bug; due to inconsistent pre-flight checks it would perform half of its task and then abort just before rewriting the branch. Again this manifested itself as the index file getting out-of-sync with HEAD. "git branch -f" already guarded against this problem, and aborts with a fatal error. Update "git branch -M", "git checkout -B" and "git branch -f" to share the same check before allowing a branch to be created. These prevent you from updating the current branch. We considered suggesting the use of "git reset" in the failure message but concluded that it was not possible to discern what the user was actually trying to do. Signed-off-by: Conrad Irwin <conrad.irwin@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'jc/maint-1.7.3-checkout-describe' into maintJunio C Hamano2011-08-011-0/+11
|\ | | | | | | | | * jc/maint-1.7.3-checkout-describe: checkout -b <name>: correctly detect existing branch
| * checkout -b <name>: correctly detect existing branchJunio C Hamano2011-06-051-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When create a new branch, we fed "refs/heads/<proposed name>" as a string to get_sha1() and expected it to fail when a branch already exists. The right way to check if a ref exists is to check with resolve_ref(). A naïve solution that might appear attractive but does not work is to forbid slashes in get_describe_name() but that will not work. A describe name is is in the form of "ANYTHING-g<short sha1>", and that ANYTHING part comes from a original tag name used in the repository the user ran the describe command. A sick user could have a confusing hierarchical tag whose name is "refs/heads/foobar" (stored as refs/tags/refs/heads/foobar") to generate a describe name "refs/heads/foobar-6-g02ac983", and we should be able to use that name to refer to the object whose name is 02ac983. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | builtin/checkout: handle -B from detached HEAD correctlyTay Ray Chuan2010-08-091-0/+6
|/ | | | | | | | | | Ensure that strcmp() isn't called when head is null. Previously we were getting segfaults when checkout -B was done from a detached HEAD. Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* builtin/checkout: learn -BTay Ray Chuan2010-06-251-0/+45
| | | | | | | Internally, --track and --orphan still use the 'safe' -b, not -B. Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* add tests for checkout -bTay Ray Chuan2010-06-251-0/+121
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>