diff options
-rw-r--r-- | project.py | 11 | ||||
-rw-r--r-- | subcmds/sync.py | 8 |
2 files changed, 15 insertions, 4 deletions
@@ -1110,7 +1110,8 @@ class Project(object): | |||
1110 | clone_bundle=True, | 1110 | clone_bundle=True, |
1111 | no_tags=False, | 1111 | no_tags=False, |
1112 | archive=False, | 1112 | archive=False, |
1113 | optimized_fetch=False): | 1113 | optimized_fetch=False, |
1114 | prune=False): | ||
1114 | """Perform only the network IO portion of the sync process. | 1115 | """Perform only the network IO portion of the sync process. |
1115 | Local working directory/branch state is not affected. | 1116 | Local working directory/branch state is not affected. |
1116 | """ | 1117 | """ |
@@ -1181,7 +1182,7 @@ class Project(object): | |||
1181 | if (need_to_fetch | 1182 | if (need_to_fetch |
1182 | and not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, | 1183 | and not self._RemoteFetch(initial=is_new, quiet=quiet, alt_dir=alt_dir, |
1183 | current_branch_only=current_branch_only, | 1184 | current_branch_only=current_branch_only, |
1184 | no_tags=no_tags)): | 1185 | no_tags=no_tags, prune=prune)): |
1185 | return False | 1186 | return False |
1186 | 1187 | ||
1187 | if self.worktree: | 1188 | if self.worktree: |
@@ -1795,7 +1796,8 @@ class Project(object): | |||
1795 | initial=False, | 1796 | initial=False, |
1796 | quiet=False, | 1797 | quiet=False, |
1797 | alt_dir=None, | 1798 | alt_dir=None, |
1798 | no_tags=False): | 1799 | no_tags=False, |
1800 | prune=False): | ||
1799 | 1801 | ||
1800 | is_sha1 = False | 1802 | is_sha1 = False |
1801 | tag_name = None | 1803 | tag_name = None |
@@ -1908,6 +1910,9 @@ class Project(object): | |||
1908 | else: | 1910 | else: |
1909 | cmd.append('--tags') | 1911 | cmd.append('--tags') |
1910 | 1912 | ||
1913 | if prune: | ||
1914 | cmd.append('--prune') | ||
1915 | |||
1911 | spec = [] | 1916 | spec = [] |
1912 | if not current_branch_only: | 1917 | if not current_branch_only: |
1913 | # Fetch whole repo | 1918 | # Fetch whole repo |
diff --git a/subcmds/sync.py b/subcmds/sync.py index 2a77065c..e865e564 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
@@ -151,6 +151,9 @@ The --optimized-fetch option can be used to only fetch projects that | |||
151 | are fixed to a sha1 revision if the sha1 revision does not already | 151 | are fixed to a sha1 revision if the sha1 revision does not already |
152 | exist locally. | 152 | exist locally. |
153 | 153 | ||
154 | The --prune option can be used to remove any refs that no longer | ||
155 | exist on the remote. | ||
156 | |||
154 | SSH Connections | 157 | SSH Connections |
155 | --------------- | 158 | --------------- |
156 | 159 | ||
@@ -234,6 +237,8 @@ later is required to fix a server side protocol bug. | |||
234 | p.add_option('--optimized-fetch', | 237 | p.add_option('--optimized-fetch', |
235 | dest='optimized_fetch', action='store_true', | 238 | dest='optimized_fetch', action='store_true', |
236 | help='only fetch projects fixed to sha1 if revision does not exist locally') | 239 | help='only fetch projects fixed to sha1 if revision does not exist locally') |
240 | p.add_option('--prune', dest='prune', action='store_true', | ||
241 | help='delete refs that no longer exist on the remote') | ||
237 | if show_smart: | 242 | if show_smart: |
238 | p.add_option('-s', '--smart-sync', | 243 | p.add_option('-s', '--smart-sync', |
239 | dest='smart_sync', action='store_true', | 244 | dest='smart_sync', action='store_true', |
@@ -305,7 +310,8 @@ later is required to fix a server side protocol bug. | |||
305 | force_sync=opt.force_sync, | 310 | force_sync=opt.force_sync, |
306 | clone_bundle=not opt.no_clone_bundle, | 311 | clone_bundle=not opt.no_clone_bundle, |
307 | no_tags=opt.no_tags, archive=self.manifest.IsArchive, | 312 | no_tags=opt.no_tags, archive=self.manifest.IsArchive, |
308 | optimized_fetch=opt.optimized_fetch) | 313 | optimized_fetch=opt.optimized_fetch, |
314 | prune=opt.prune) | ||
309 | self._fetch_times.Set(project, time.time() - start) | 315 | self._fetch_times.Set(project, time.time() - start) |
310 | 316 | ||
311 | # Lock around all the rest of the code, since printing, updating a set | 317 | # Lock around all the rest of the code, since printing, updating a set |