fix issue: repo upload with revision manifest
diff --git a/project.py b/project.py
index 914e0b1..b973085 100644
--- a/project.py
+++ b/project.py
@@ -1101,6 +1101,18 @@
     gitcmd = GitCommand(self, cmd, bare=True)
     ret = gitcmd.Wait()
 
+  def _CreateRemoteBranch(self, branch, revid):
+    remote = self.GetRemote(self.remote.name)
+    try:
+      self.work_git.rev_parse(remote.ToLocal(branch))
+    except GitError:
+      ref = os.path.join(self.gitdir, remote.ToLocal(branch))
+      try:
+        os.makedirs(os.path.dirname(ref))
+      except OSError:
+        pass
+      _lwrite(ref, '%s\n' % revid)
+
   def _ExtractArchive(self, tarpath, path=None):
     """Extract the given tar on its current location
 
@@ -1843,6 +1855,8 @@
 
       if is_sha1 or tag_name is not None:
         if self._CheckForSha1():
+          if self.upstream:          
+            self._CreateRemoteBranch(self.upstream, self.revisionExpr)
           return True
       if is_sha1 and not depth:
         # When syncing a specific commit and --depth is not set: