diff options
-rw-r--r-- | manifest_xml.py | 5 | ||||
-rw-r--r-- | project.py | 8 | ||||
-rwxr-xr-x | repo | 6 | ||||
-rw-r--r-- | subcmds/init.py | 36 |
4 files changed, 40 insertions, 15 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index 45896be9..d888653d 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
@@ -189,7 +189,10 @@ class XmlManifest(Manifest): | |||
189 | def _Load(self): | 189 | def _Load(self): |
190 | if not self._loaded: | 190 | if not self._loaded: |
191 | m = self.manifestProject | 191 | m = self.manifestProject |
192 | b = m.GetBranch(m.CurrentBranch).merge | 192 | b = m.GetBranch(m.CurrentBranch) |
193 | if b.remote and b.remote.name: | ||
194 | m.remote.name = b.remote.name | ||
195 | b = b.merge | ||
193 | if b is not None and b.startswith(R_HEADS): | 196 | if b is not None and b.startswith(R_HEADS): |
194 | b = b[len(R_HEADS):] | 197 | b = b[len(R_HEADS):] |
195 | self.branch = b | 198 | self.branch = b |
@@ -1442,10 +1442,12 @@ class MetaProject(Project): | |||
1442 | if self.Exists: | 1442 | if self.Exists: |
1443 | cb = self.CurrentBranch | 1443 | cb = self.CurrentBranch |
1444 | if cb: | 1444 | if cb: |
1445 | base = self.GetBranch(cb).merge | 1445 | cb = self.GetBranch(cb) |
1446 | if base: | 1446 | if cb.merge: |
1447 | self.revisionExpr = base | 1447 | self.revisionExpr = cb.merge |
1448 | self.revisionId = None | 1448 | self.revisionId = None |
1449 | if cb.remote and cb.remote.name: | ||
1450 | self.remote.name = cb.remote.name | ||
1449 | 1451 | ||
1450 | @property | 1452 | @property |
1451 | def LastFetch(self): | 1453 | def LastFetch(self): |
@@ -28,7 +28,7 @@ if __name__ == '__main__': | |||
28 | del magic | 28 | del magic |
29 | 29 | ||
30 | # increment this whenever we make important changes to this script | 30 | # increment this whenever we make important changes to this script |
31 | VERSION = (1, 8) | 31 | VERSION = (1, 9) |
32 | 32 | ||
33 | # increment this if the MAINTAINER_KEYS block is modified | 33 | # increment this if the MAINTAINER_KEYS block is modified |
34 | KEYRING_VERSION = (1,0) | 34 | KEYRING_VERSION = (1,0) |
@@ -109,6 +109,10 @@ group = init_optparse.add_option_group('Manifest options') | |||
109 | group.add_option('-u', '--manifest-url', | 109 | group.add_option('-u', '--manifest-url', |
110 | dest='manifest_url', | 110 | dest='manifest_url', |
111 | help='manifest repository location', metavar='URL') | 111 | help='manifest repository location', metavar='URL') |
112 | group.add_option('-o', '--origin', | ||
113 | dest='manifest_origin', | ||
114 | help="use REMOTE instead of 'origin' to track upstream", | ||
115 | metavar='REMOTE') | ||
112 | group.add_option('-b', '--manifest-branch', | 116 | group.add_option('-b', '--manifest-branch', |
113 | dest='manifest_branch', | 117 | dest='manifest_branch', |
114 | help='manifest branch or revision', metavar='REVISION') | 118 | help='manifest branch or revision', metavar='REVISION') |
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 |