From 5f947bba69de81f58f1adef10225c04727fa0ed5 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 3 Jul 2009 17:24:17 -0700 Subject: init: add -o, --origin to name manifest remote The -o option permits the user to control the name of the manifest's remote, which normally is hardcoded to be 'origin', but can differ because we derive it at runtime from the configuration file. Signed-off-by: Shawn O. Pearce --- subcmds/init.py | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) (limited to 'subcmds/init.py') diff --git a/subcmds/init.py b/subcmds/init.py index 0586721f..53c3a010 100644 --- a/subcmds/init.py +++ b/subcmds/init.py @@ -62,6 +62,10 @@ to update the working directory files. g.add_option('-b', '--manifest-branch', dest='manifest_branch', help='manifest branch or revision', metavar='REVISION') + g.add_option('-o', '--origin', + dest='manifest_origin', + help="use REMOTE instead of 'origin' to track upstream", + metavar='REMOTE') if isinstance(self.manifest, XmlManifest) \ or not self.manifest.manifestProject.Exists: g.add_option('-m', '--manifest-name', @@ -84,30 +88,42 @@ to update the working directory files. dest='no_repo_verify', action='store_true', help='do not verify repo source code') - def _SyncManifest(self, opt): + def _ApplyOptions(self, opt, is_new): m = self.manifest.manifestProject - is_new = not m.Exists if is_new: - if not opt.manifest_url: - print >>sys.stderr, 'fatal: manifest url (-u) is required.' - sys.exit(1) - - if not opt.quiet: - print >>sys.stderr, 'Getting manifest ...' - print >>sys.stderr, ' from %s' % opt.manifest_url - m._InitGitDir() + if opt.manifest_origin: + m.remote.name = opt.manifest_origin if opt.manifest_branch: m.revisionExpr = opt.manifest_branch else: m.revisionExpr = 'refs/heads/master' else: + if opt.manifest_origin: + print >>sys.stderr, 'fatal: cannot change origin name' + sys.exit(1) + if opt.manifest_branch: m.revisionExpr = opt.manifest_branch else: m.PreSync() + def _SyncManifest(self, opt): + m = self.manifest.manifestProject + is_new = not m.Exists + + if is_new: + if not opt.manifest_url: + print >>sys.stderr, 'fatal: manifest url (-u) is required.' + sys.exit(1) + + if not opt.quiet: + print >>sys.stderr, 'Getting manifest ...' + print >>sys.stderr, ' from %s' % opt.manifest_url + m._InitGitDir() + + self._ApplyOptions(opt, is_new) if opt.manifest_url: r = m.GetRemote(m.remote.name) r.url = opt.manifest_url -- cgit v1.2.3-54-g00ecf