Re: [funny] "git checkout -t origin/xyzzy" seems to misbehave

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano, Sun, Sep 21, 2008 10:23:00 +0200:
> When you
> 
>  * are on a branch "foo" that is not "bar",
>  * have "origin/bar",
>  * and already have a local branch "bar",
> 
> "git checkout -t origin/bar" seems to misbehave.
> 
>     $ git clone -s git.junio victim-002
>     $ cd victim-002
>     $ git branch
>     * master
>     $ git checkout -t origin/next
>     Branch next set up to track remote branch refs/remotes/origin/next.
>     Switched to a new branch "next"
>     $ git checkout -t origin/master
>     fatal: A branch named 'master' already exists.
>     $ git branch
>       master
>     * next
>     $ git diff --cached --shortstat
>      60 files changed, 2378 insertions(+), 3412 deletions(-)
>     $ git diff --cached master
>     $ exit
> 
> The first "checkout -t" is fine.  The failed one seems to have already
> updated the index and the work tree when it notices that it cannot create
> a new branch.

Precisely this (branch already exists) case is easy to handle with a
resolve_ref in builtin-checkout.c:switch_branches.

The other errors will still leave index and working tree in this
state: branch.c:create_branch does not cleanup in case of errors,
it just dies.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux