Просмотр исходного кода

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
Conley Owens 12 лет назад
Родитель
Сommit
565480588d
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      project.py

+ 6 - 0
project.py

@@ -1748,6 +1748,7 @@ class Project(object):
         cmd.append('--no-tags')
       else:
         cmd.append('--tags')
+
       cmd.append(str((u'+refs/heads/*:') + remote.ToLocal('refs/heads/*')))
     elif tag_name is not None:
       cmd.append('tag')
@@ -1774,6 +1775,11 @@ class Project(object):
       time.sleep(random.randint(30, 45))
 
     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 old_packed != '':
           _lwrite(packed_refs, old_packed)