diff options
author | Shawn O. Pearce <sop@google.com> | 2009-07-03 17:24:17 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2009-07-03 20:50:52 -0700 |
commit | 5f947bba69de81f58f1adef10225c04727fa0ed5 (patch) | |
tree | 96da97d3e570c4b2238c807700060c144b333d09 /subcmds/init.py | |
parent | b3d2c9214be60f575d64b3af3b87a3632de04ba0 (diff) | |
download | git-repo-5f947bba69de81f58f1adef10225c04727fa0ed5.tar.gz |
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 <sop@google.com>
Diffstat (limited to 'subcmds/init.py')
-rw-r--r-- | subcmds/init.py | 36 |
1 files changed, 26 insertions, 10 deletions
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. | |||
62 | g.add_option('-b', '--manifest-branch', | 62 | g.add_option('-b', '--manifest-branch', |
63 | dest='manifest_branch', | 63 | dest='manifest_branch', |
64 | help='manifest branch or revision', metavar='REVISION') | 64 | help='manifest branch or revision', metavar='REVISION') |
65 | g.add_option('-o', '--origin', | ||
66 | dest='manifest_origin', | ||
67 | help="use REMOTE instead of 'origin' to track upstream", | ||
68 | metavar='REMOTE') | ||
65 | if isinstance(self.manifest, XmlManifest) \ | 69 | if isinstance(self.manifest, XmlManifest) \ |
66 | or not self.manifest.manifestProject.Exists: | 70 | or not self.manifest.manifestProject.Exists: |
67 | g.add_option('-m', '--manifest-name', | 71 | g.add_option('-m', '--manifest-name', |
@@ -84,30 +88,42 @@ to update the working directory files. | |||
84 | dest='no_repo_verify', action='store_true', | 88 | dest='no_repo_verify', action='store_true', |
85 | help='do not verify repo source code') | 89 | help='do not verify repo source code') |
86 | 90 | ||
87 | def _SyncManifest(self, opt): | 91 | def _ApplyOptions(self, opt, is_new): |
88 | m = self.manifest.manifestProject | 92 | m = self.manifest.manifestProject |
89 | is_new = not m.Exists | ||
90 | 93 | ||
91 | if is_new: | 94 | if is_new: |
92 | if not opt.manifest_url: | 95 | if opt.manifest_origin: |
93 | print >>sys.stderr, 'fatal: manifest url (-u) is required.' | 96 | m.remote.name = opt.manifest_origin |
94 | sys.exit(1) | ||
95 | |||
96 | if not opt.quiet: | ||
97 | print >>sys.stderr, 'Getting manifest ...' | ||
98 | print >>sys.stderr, ' from %s' % opt.manifest_url | ||
99 | m._InitGitDir() | ||
100 | 97 | ||
101 | if opt.manifest_branch: | 98 | if opt.manifest_branch: |
102 | m.revisionExpr = opt.manifest_branch | 99 | m.revisionExpr = opt.manifest_branch |
103 | else: | 100 | else: |
104 | m.revisionExpr = 'refs/heads/master' | 101 | m.revisionExpr = 'refs/heads/master' |
105 | else: | 102 | else: |
103 | if opt.manifest_origin: | ||
104 | print >>sys.stderr, 'fatal: cannot change origin name' | ||
105 | sys.exit(1) | ||
106 | |||
106 | if opt.manifest_branch: | 107 | if opt.manifest_branch: |
107 | m.revisionExpr = opt.manifest_branch | 108 | m.revisionExpr = opt.manifest_branch |
108 | else: | 109 | else: |
109 | m.PreSync() | 110 | m.PreSync() |
110 | 111 | ||
112 | def _SyncManifest(self, opt): | ||
113 | m = self.manifest.manifestProject | ||
114 | is_new = not m.Exists | ||
115 | |||
116 | if is_new: | ||
117 | if not opt.manifest_url: | ||
118 | print >>sys.stderr, 'fatal: manifest url (-u) is required.' | ||
119 | sys.exit(1) | ||
120 | |||
121 | if not opt.quiet: | ||
122 | print >>sys.stderr, 'Getting manifest ...' | ||
123 | print >>sys.stderr, ' from %s' % opt.manifest_url | ||
124 | m._InitGitDir() | ||
125 | |||
126 | self._ApplyOptions(opt, is_new) | ||
111 | if opt.manifest_url: | 127 | if opt.manifest_url: |
112 | r = m.GetRemote(m.remote.name) | 128 | r = m.GetRemote(m.remote.name) |
113 | r.url = opt.manifest_url | 129 | r.url = opt.manifest_url |