fix issue: repo upload with revision manifest
9a61a911644e3435217bc082ddd861dc6c19e58d did not deal with non-sha1 revision
when revision is not sha1, create a symbolic merge branch pointed to manifest
branch if that exists, otherwise, just let it fail
diff --git a/project.py b/project.py
index d01b8a6..e90d028 100644
--- a/project.py
+++ b/project.py
@@ -1193,7 +1193,7 @@
ret = gitcmd.Wait()
def _CreateLocalMergeBranch(self, branch, revid):
- if not branch and not ID_RE.match(revid):
+ if not branch:
return
ref = os.path.join(self.gitdir, branch)
if os.path.exists(ref): return
@@ -1204,7 +1204,11 @@
os.makedirs(os.path.dirname(ref))
except OSError:
pass
- _lwrite(ref, '%s\n' % revid)
+ msg = "local merge branch set to "
+ if ID_RE.match(revid):
+ self.bare_git.UpdateRef(branch, revid, message=msg + revid, detach=True)
+ elif self.manifest.branch:
+ self.bare_git.symbolic_ref('-m', msg + self.manifest.branch, branch, R_M + self.manifest.branch)
# Sync ##
def _ExtractArchive(self, tarpath, path=None):