Check for existence of refs upon initial fetch

When we do an initial fetch and have not specified any branch etc,
the following fetch command will not error:
git fetch origin --tags +refs/heads/*:refs/remotes/origin/*

In this change we make sure something got fetched and if not we report
an error.

This fixes the bug that occurs when we init using a bad manifest url and
then are unable to init again (because a manifest project has been
inited with no manifest).

Change-Id: I6f8aaefc83a1837beb10b1ac90bea96dc8e61156
This commit is contained in:
Conley Owens 2014-02-11 18:44:58 -08:00
parent 1966133f8e
commit 565480588d

View File

@ -1748,6 +1748,7 @@ class Project(object):
cmd.append('--no-tags') cmd.append('--no-tags')
else: else:
cmd.append('--tags') cmd.append('--tags')
cmd.append(str((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*'))) cmd.append(str((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*')))
elif tag_name is not None: elif tag_name is not None:
cmd.append('tag') cmd.append('tag')
@ -1774,6 +1775,11 @@ class Project(object):
time.sleep(random.randint(30, 45)) time.sleep(random.randint(30, 45))
if initial: if initial:
# Ensure that some refs exist. Otherwise, we probably aren't looking
# at a real git repository and may have a bad url.
if not self.bare_ref.all:
ok = False
if alt_dir: if alt_dir:
if old_packed != '': if old_packed != '':
_lwrite(packed_refs, old_packed) _lwrite(packed_refs, old_packed)