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)): |