diff options
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 |