diff options
Diffstat (limited to 'project.py')
| -rw-r--r-- | project.py | 18 |
1 files changed, 12 insertions, 6 deletions
| @@ -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: |
