Code

git-gui: Fix unnecessary fast-forward during checkout
authorShawn O. Pearce <spearce@spearce.org>
Sun, 22 Jul 2007 08:09:53 +0000 (04:09 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 22 Jul 2007 08:09:53 +0000 (04:09 -0400)
commit7bd197c7ba0b93744bf0f804ec4fb0d448044e83
treec3c96a9054cdfdb3175fdc2ddf7b74efa869bfb3
parent854ffd3046ba9776934ffea79c5aceb1d51cf3c5
git-gui: Fix unnecessary fast-forward during checkout

If we are trying to checkout a local branch which is matched to a
remote tracking branch, but the local branch is newer than the remote
tracking branch we actually just want to switch to the local branch.
The local branch is "Already up to date".

Unfortunately we tossed away the local branch's commit SHA-1 and kept
the remote tracking branch's SHA-1, which meant that the user lost the
local changes when we updated the working directory.  At least we did
not update the local branch ref, so the user's data was still intact.

We now toss the tracking branch's SHA-1 and replace with the local
branch's SHA-1 before the checkout, ensuring that we pass of the right
tree to git-read-tree when we update the working directory.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/checkout_op.tcl