mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
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>
This commit is contained in:
parent
b3d2c9214b
commit
5f947bba69
@ -189,7 +189,10 @@ class XmlManifest(Manifest):
|
||||
def _Load(self):
|
||||
if not self._loaded:
|
||||
m = self.manifestProject
|
||||
b = m.GetBranch(m.CurrentBranch).merge
|
||||
b = m.GetBranch(m.CurrentBranch)
|
||||
if b.remote and b.remote.name:
|
||||
m.remote.name = b.remote.name
|
||||
b = b.merge
|
||||
if b is not None and b.startswith(R_HEADS):
|
||||
b = b[len(R_HEADS):]
|
||||
self.branch = b
|
||||
|
@ -1442,10 +1442,12 @@ class MetaProject(Project):
|
||||
if self.Exists:
|
||||
cb = self.CurrentBranch
|
||||
if cb:
|
||||
base = self.GetBranch(cb).merge
|
||||
if base:
|
||||
self.revisionExpr = base
|
||||
cb = self.GetBranch(cb)
|
||||
if cb.merge:
|
||||
self.revisionExpr = cb.merge
|
||||
self.revisionId = None
|
||||
if cb.remote and cb.remote.name:
|
||||
self.remote.name = cb.remote.name
|
||||
|
||||
@property
|
||||
def LastFetch(self):
|
||||
|
6
repo
6
repo
@ -28,7 +28,7 @@ if __name__ == '__main__':
|
||||
del magic
|
||||
|
||||
# increment this whenever we make important changes to this script
|
||||
VERSION = (1, 8)
|
||||
VERSION = (1, 9)
|
||||
|
||||
# increment this if the MAINTAINER_KEYS block is modified
|
||||
KEYRING_VERSION = (1,0)
|
||||
@ -109,6 +109,10 @@ group = init_optparse.add_option_group('Manifest options')
|
||||
group.add_option('-u', '--manifest-url',
|
||||
dest='manifest_url',
|
||||
help='manifest repository location', metavar='URL')
|
||||
group.add_option('-o', '--origin',
|
||||
dest='manifest_origin',
|
||||
help="use REMOTE instead of 'origin' to track upstream",
|
||||
metavar='REMOTE')
|
||||
group.add_option('-b', '--manifest-branch',
|
||||
dest='manifest_branch',
|
||||
help='manifest branch or revision', metavar='REVISION')
|
||||
|
@ -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,6 +88,27 @@ to update the working directory files.
|
||||
dest='no_repo_verify', action='store_true',
|
||||
help='do not verify repo source code')
|
||||
|
||||
def _ApplyOptions(self, opt, is_new):
|
||||
m = self.manifest.manifestProject
|
||||
|
||||
if is_new:
|
||||
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
|
||||
@ -98,16 +123,7 @@ to update the working directory files.
|
||||
print >>sys.stderr, ' from %s' % opt.manifest_url
|
||||
m._InitGitDir()
|
||||
|
||||
if opt.manifest_branch:
|
||||
m.revisionExpr = opt.manifest_branch
|
||||
else:
|
||||
m.revisionExpr = 'refs/heads/master'
|
||||
else:
|
||||
if opt.manifest_branch:
|
||||
m.revisionExpr = opt.manifest_branch
|
||||
else:
|
||||
m.PreSync()
|
||||
|
||||
self._ApplyOptions(opt, is_new)
|
||||
if opt.manifest_url:
|
||||
r = m.GetRemote(m.remote.name)
|
||||
r.url = opt.manifest_url
|
||||
|
Loading…
Reference in New Issue
Block a user