summaryrefslogtreecommitdiffstats
path: root/subcmds/sync.py
diff options
context:
space:
mode:
Diffstat (limited to 'subcmds/sync.py')
-rw-r--r--subcmds/sync.py26
1 files changed, 11 insertions, 15 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index 79cfaaa5..7b44dbd8 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -670,36 +670,32 @@ later is required to fix a server side protocol bug.
670 if opt.jobs is None: 670 if opt.jobs is None:
671 self.jobs = self.manifest.default.sync_j 671 self.jobs = self.manifest.default.sync_j
672 672
673 # TODO (sbasi) - Add support for manifest changes, aka projects
674 # have been added or deleted from the manifest.
673 if self.gitc_manifest: 675 if self.gitc_manifest:
674 gitc_manifest_projects = self.GetProjects(args, 676 gitc_manifest_projects = self.GetProjects(args,
677 manifest=self.gitc_manifest,
675 missing_ok=True) 678 missing_ok=True)
676 gitc_projects = [] 679 gitc_projects = []
677 opened_projects = [] 680 opened_projects = []
678 for project in gitc_manifest_projects: 681 for project in gitc_manifest_projects:
679 if project.relpath in self.gitc_manifest.paths and \ 682 if not project.old_revision:
680 self.gitc_manifest.paths[project.relpath].old_revision: 683 gitc_projects.append(project)
681 opened_projects.append(project.relpath)
682 else: 684 else:
683 gitc_projects.append(project.relpath) 685 opened_projects.append(project)
684 686
685 if not args: 687 if gitc_projects and not opt.local_only:
686 gitc_projects = None
687
688 if gitc_projects != [] and not opt.local_only:
689 print('Updating GITC client: %s' % self.gitc_manifest.gitc_client_name) 688 print('Updating GITC client: %s' % self.gitc_manifest.gitc_client_name)
690 gitc_utils.generate_gitc_manifest(self.repodir, 689 gitc_utils.generate_gitc_manifest(self.gitc_manifest.gitc_client_dir,
691 self.gitc_manifest.gitc_client_name,
692 self.gitc_manifest, 690 self.gitc_manifest,
693 self.manifest.manifestFile,
694 gitc_projects) 691 gitc_projects)
695 print('GITC client successfully synced.') 692 print('GITC client successfully synced.')
696 693
697 # The opened projects need to be synced as normal, therefore we 694 # The opened projects need to be synced as normal, therefore we
698 # generate a new args list to represent the opened projects. 695 # generate a new args list to represent the opened projects.
699 # TODO: make this more reliable -- if there's a project name/path overlap, 696 args = []
700 # this may choose the wrong project. 697 for proj in opened_projects:
701 args = [os.path.relpath(self.manifest.paths[p].worktree, os.getcwd()) 698 args.append(os.path.relpath(proj.worktree, os.getcwd()))
702 for p in opened_projects]
703 if not args: 699 if not args:
704 return 700 return
705 all_projects = self.GetProjects(args, 701 all_projects = self.GetProjects(args,