summaryrefslogtreecommitdiffstats
path: root/project.py
diff options
context:
space:
mode:
Diffstat (limited to 'project.py')
-rw-r--r--project.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/project.py b/project.py
index a8d012d2..f964b2fc 100644
--- a/project.py
+++ b/project.py
@@ -572,7 +572,8 @@ class Project(object):
572 parent=None, 572 parent=None,
573 is_derived=False, 573 is_derived=False,
574 dest_branch=None, 574 dest_branch=None,
575 optimized_fetch=False): 575 optimized_fetch=False,
576 old_revision=None):
576 """Init a Project object. 577 """Init a Project object.
577 578
578 Args: 579 Args:
@@ -596,6 +597,7 @@ class Project(object):
596 dest_branch: The branch to which to push changes for review by default. 597 dest_branch: The branch to which to push changes for review by default.
597 optimized_fetch: If True, when a project is set to a sha1 revision, only 598 optimized_fetch: If True, when a project is set to a sha1 revision, only
598 fetch from the remote if the sha1 is not present locally. 599 fetch from the remote if the sha1 is not present locally.
600 old_revision: saved git commit id for open GITC projects.
599 """ 601 """
600 self.manifest = manifest 602 self.manifest = manifest
601 self.name = name 603 self.name = name
@@ -643,6 +645,7 @@ class Project(object):
643 self.bare_ref = GitRefs(gitdir) 645 self.bare_ref = GitRefs(gitdir)
644 self.bare_objdir = self._GitGetByExec(self, bare=True, gitdir=objdir) 646 self.bare_objdir = self._GitGetByExec(self, bare=True, gitdir=objdir)
645 self.dest_branch = dest_branch 647 self.dest_branch = dest_branch
648 self.old_revision = old_revision
646 649
647 # This will be filled in if a project is later identified to be the 650 # This will be filled in if a project is later identified to be the
648 # project containing repo hooks. 651 # project containing repo hooks.
@@ -1195,6 +1198,8 @@ class Project(object):
1195 self._InitHooks() 1198 self._InitHooks()
1196 1199
1197 def _CopyAndLinkFiles(self): 1200 def _CopyAndLinkFiles(self):
1201 if self.manifest.isGitcClient:
1202 return
1198 for copyfile in self.copyfiles: 1203 for copyfile in self.copyfiles:
1199 copyfile._Copy() 1204 copyfile._Copy()
1200 for linkfile in self.linkfiles: 1205 for linkfile in self.linkfiles:
@@ -1425,9 +1430,11 @@ class Project(object):
1425 1430
1426## Branch Management ## 1431## Branch Management ##
1427 1432
1428 def StartBranch(self, name): 1433 def StartBranch(self, name, branch_merge=''):
1429 """Create a new branch off the manifest's revision. 1434 """Create a new branch off the manifest's revision.
1430 """ 1435 """
1436 if not branch_merge:
1437 branch_merge = self.revisionExpr
1431 head = self.work_git.GetHead() 1438 head = self.work_git.GetHead()
1432 if head == (R_HEADS + name): 1439 if head == (R_HEADS + name):
1433 return True 1440 return True
@@ -1441,9 +1448,9 @@ class Project(object):
1441 1448
1442 branch = self.GetBranch(name) 1449 branch = self.GetBranch(name)
1443 branch.remote = self.GetRemote(self.remote.name) 1450 branch.remote = self.GetRemote(self.remote.name)
1444 branch.merge = self.revisionExpr 1451 branch.merge = branch_merge
1445 if not branch.merge.startswith('refs/') and not ID_RE.match(self.revisionExpr): 1452 if not branch.merge.startswith('refs/') and not ID_RE.match(branch_merge):
1446 branch.merge = R_HEADS + self.revisionExpr 1453 branch.merge = R_HEADS + branch_merge
1447 revid = self.GetRevisionId(all_refs) 1454 revid = self.GetRevisionId(all_refs)
1448 1455
1449 if head.startswith(R_HEADS): 1456 if head.startswith(R_HEADS):
@@ -1451,7 +1458,6 @@ class Project(object):
1451 head = all_refs[head] 1458 head = all_refs[head]
1452 except KeyError: 1459 except KeyError:
1453 head = None 1460 head = None
1454
1455 if revid and head and revid == head: 1461 if revid and head and revid == head:
1456 ref = os.path.join(self.gitdir, R_HEADS + name) 1462 ref = os.path.join(self.gitdir, R_HEADS + name)
1457 try: 1463 try: