Fix 'repo sync' when the remote reflog has only 1 entry

If the reflog for the upstream branch has only 1 entry in it, as
the branch has been updated only once, we can get back the 0{40}
object id from `git rev-parse upstream@{1}`, in which case we should
consider it to be the same as if upstream@{1} is not defined.

Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2008-10-21 07:09:27 -07:00
parent cf31fe9b4f
commit 0734600ce0

View File

@ -517,6 +517,9 @@ class Project(object):
old_merge = self.bare_git.rev_parse('%s@{1}' % merge) old_merge = self.bare_git.rev_parse('%s@{1}' % merge)
except GitError: except GitError:
old_merge = merge old_merge = merge
if old_merge == '0000000000000000000000000000000000000000' \
or old_merge == '':
old_merge = merge
else: else:
# The upstream switched on us. Time to cross our fingers # The upstream switched on us. Time to cross our fingers
# and pray that the old upstream also wasn't in the habit # and pray that the old upstream also wasn't in the habit