Use remote.*.projectname to indicate the target project for upload

This way "forks" of a project, e.g. the linux kernel, can be setup to
use different destination projects in the review server by creating
different remotes in the client side Git repository.

Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2008-11-06 09:52:51 -08:00
parent 70cd4ab270
commit 339ba9f6f7
2 changed files with 11 additions and 1 deletions

View File

@ -258,6 +258,7 @@ class Remote(object):
self.name = name self.name = name
self.url = self._Get('url') self.url = self._Get('url')
self.review = self._Get('review') self.review = self._Get('review')
self.projectname = self._Get('projectname')
self.fetch = map(lambda x: RefSpec.FromString(x), self.fetch = map(lambda x: RefSpec.FromString(x),
self._Get('fetch', all=True)) self._Get('fetch', all=True))
@ -299,6 +300,7 @@ class Remote(object):
""" """
self._Set('url', self.url) self._Set('url', self.url)
self._Set('review', self.review) self._Set('review', self.review)
self._Set('projectname', self.projectname)
self._Set('fetch', map(lambda x: str(x), self.fetch)) self._Set('fetch', map(lambda x: str(x), self.fetch))
def _Set(self, key, value): def _Set(self, key, value):

View File

@ -461,13 +461,17 @@ class Project(object):
if not base_list: if not base_list:
raise GitError('no base refs, cannot upload %s' % branch.name) raise GitError('no base refs, cannot upload %s' % branch.name)
if not branch.remote.projectname:
branch.remote.projectname = self.name
branch.remote.Save()
print >>sys.stderr, '' print >>sys.stderr, ''
_info("Uploading %s to %s:", branch.name, self.name) _info("Uploading %s to %s:", branch.name, self.name)
try: try:
UploadBundle(project = self, UploadBundle(project = self,
server = branch.remote.review, server = branch.remote.review,
email = self.UserEmail, email = self.UserEmail,
dest_project = self.name, dest_project = branch.remote.projectname,
dest_branch = dest_branch, dest_branch = dest_branch,
src_branch = R_HEADS + branch.name, src_branch = R_HEADS + branch.name,
bases = base_list) bases = base_list)
@ -887,6 +891,8 @@ class Project(object):
url += '/%s.git' % self.name url += '/%s.git' % self.name
remote.url = url remote.url = url
remote.review = self.remote.reviewUrl remote.review = self.remote.reviewUrl
if remote.projectname is None:
remote.projectname = self.name
if self.worktree: if self.worktree:
remote.ResetFetch(mirror=False) remote.ResetFetch(mirror=False)
@ -898,6 +904,8 @@ class Project(object):
remote = self.GetRemote(r.name) remote = self.GetRemote(r.name)
remote.url = r.fetchUrl remote.url = r.fetchUrl
remote.review = r.reviewUrl remote.review = r.reviewUrl
if remote.projectname is None:
remote.projectname = self.name
remote.ResetFetch() remote.ResetFetch()
remote.Save() remote.Save()