summaryrefslogtreecommitdiffstats
path: root/project.py
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-04-17 20:32:44 -0700
committerShawn O. Pearce <sop@google.com>2009-04-17 21:03:45 -0700
commit0f3dd233ecaf8d145ddb33a5ef1b8d3d71ade476 (patch)
tree327212154350ab031cbd64e39c8ef93cbd9bb6b5 /project.py
parentc12c360f89d4d1cc0a0ad80c4ea0785f84be1848 (diff)
downloadgit-repo-0f3dd233ecaf8d145ddb33a5ef1b8d3d71ade476.tar.gz
Avoid unnecessary git symbolic-ref calls during repo sync
If the m/BRANCH ref is already pointing at the value set in the manifest there is no reason to set it again. Leave it alone, thus saving a full fork+exec call. Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'project.py')
-rw-r--r--project.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/project.py b/project.py
index 9f9cf7bf..09a768fb 100644
--- a/project.py
+++ b/project.py
@@ -997,14 +997,17 @@ class Project(object):
997 if self.manifest.branch: 997 if self.manifest.branch:
998 msg = 'manifest set to %s' % self.revision 998 msg = 'manifest set to %s' % self.revision
999 ref = R_M + self.manifest.branch 999 ref = R_M + self.manifest.branch
1000 cur = self.bare_ref.symref(ref)
1000 1001
1001 if IsId(self.revision): 1002 if IsId(self.revision):
1002 dst = self.revision + '^0' 1003 if cur != '' or self.bare_ref.get(ref) != self.revision:
1003 self.bare_git.UpdateRef(ref, dst, message = msg, detach = True) 1004 dst = self.revision + '^0'
1005 self.bare_git.UpdateRef(ref, dst, message = msg, detach = True)
1004 else: 1006 else:
1005 remote = self.GetRemote(self.remote.name) 1007 remote = self.GetRemote(self.remote.name)
1006 dst = remote.ToLocal(self.revision) 1008 dst = remote.ToLocal(self.revision)
1007 self.bare_git.symbolic_ref('-m', msg, ref, dst) 1009 if cur != dst:
1010 self.bare_git.symbolic_ref('-m', msg, ref, dst)
1008 1011
1009 def _InitMirrorHead(self): 1012 def _InitMirrorHead(self):
1010 dst = self.GetRemote(self.remote.name).ToLocal(self.revision) 1013 dst = self.GetRemote(self.remote.name).ToLocal(self.revision)