diff options
| author | David Pursehouse <david.pursehouse@sonymobile.com> | 2015-05-01 07:51:52 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-05-01 07:51:52 +0000 |
| commit | ace097c36ef2d27991cb8186ddd65ce365f28ee8 (patch) | |
| tree | 3f2b98cff76755a0904ca224b5e618e902d82406 /project.py | |
| parent | b4d43b9f664d6472b6c1e91c98f951037d00cea5 (diff) | |
| parent | b155354034a7ac18d83ab28cc3756dc36591435f (diff) | |
| download | git-repo-ace097c36ef2d27991cb8186ddd65ce365f28ee8.tar.gz | |
Merge "Add option on sync to avoid fetching from remotes for existing sha1"
Diffstat (limited to 'project.py')
| -rw-r--r-- | project.py | 14 |
1 files changed, 10 insertions, 4 deletions
| @@ -529,7 +529,8 @@ class Project(object): | |||
| 529 | upstream=None, | 529 | upstream=None, |
| 530 | parent=None, | 530 | parent=None, |
| 531 | is_derived=False, | 531 | is_derived=False, |
| 532 | dest_branch=None): | 532 | dest_branch=None, |
| 533 | optimized_fetch=False): | ||
| 533 | """Init a Project object. | 534 | """Init a Project object. |
| 534 | 535 | ||
| 535 | Args: | 536 | Args: |
| @@ -551,6 +552,8 @@ class Project(object): | |||
| 551 | is_derived: False if the project was explicitly defined in the manifest; | 552 | is_derived: False if the project was explicitly defined in the manifest; |
| 552 | True if the project is a discovered submodule. | 553 | True if the project is a discovered submodule. |
| 553 | dest_branch: The branch to which to push changes for review by default. | 554 | dest_branch: The branch to which to push changes for review by default. |
| 555 | optimized_fetch: If True, when a project is set to a sha1 revision, only | ||
| 556 | fetch from the remote if the sha1 is not present locally. | ||
| 554 | """ | 557 | """ |
| 555 | self.manifest = manifest | 558 | self.manifest = manifest |
| 556 | self.name = name | 559 | self.name = name |
| @@ -579,6 +582,7 @@ class Project(object): | |||
| 579 | self.upstream = upstream | 582 | self.upstream = upstream |
| 580 | self.parent = parent | 583 | self.parent = parent |
| 581 | self.is_derived = is_derived | 584 | self.is_derived = is_derived |
| 585 | self.optimized_fetch = optimized_fetch | ||
| 582 | self.subprojects = [] | 586 | self.subprojects = [] |
| 583 | 587 | ||
| 584 | self.snapshots = {} | 588 | self.snapshots = {} |
| @@ -1060,7 +1064,8 @@ class Project(object): | |||
| 1060 | current_branch_only=False, | 1064 | current_branch_only=False, |
| 1061 | clone_bundle=True, | 1065 | clone_bundle=True, |
| 1062 | no_tags=False, | 1066 | no_tags=False, |
| 1063 | archive=False): | 1067 | archive=False, |
| 1068 | optimized_fetch=False): | ||
| 1064 | """Perform only the network IO portion of the sync process. | 1069 | """Perform only the network IO portion of the sync process. |
| 1065 | Local working directory/branch state is not affected. | 1070 | Local working directory/branch state is not affected. |
| 1066 | """ | 1071 | """ |
| @@ -1129,8 +1134,9 @@ class Project(object): | |||
| 1129 | elif self.manifest.default.sync_c: | 1134 | elif self.manifest.default.sync_c: |
| 1130 | current_branch_only = True | 1135 | current_branch_only = True |
| 1131 | 1136 | ||
| 1132 | has_sha1 = ID_RE.match(self.revisionExpr) and self._CheckForSha1() | 1137 | need_to_fetch = not (optimized_fetch and \ |
| 1133 | if (not has_sha1 #Need to fetch since we don't already have this revision | 1138 | (ID_RE.match(self.revisionExpr) and self._CheckForSha1())) |
| 1139 | if (need_to_fetch | ||
| 1134 | and not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, | 1140 | and not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, |
| 1135 | current_branch_only=current_branch_only, | 1141 | current_branch_only=current_branch_only, |
| 1136 | no_tags=no_tags)): | 1142 | no_tags=no_tags)): |
