From 339ba9f6f70b1733f89a5ff89d5f155389a04094 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 6 Nov 2008 09:52:51 -0800 Subject: [PATCH] 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 --- git_config.py | 2 ++ project.py | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/git_config.py b/git_config.py index 9d5162e7..9ddb2edc 100644 --- a/git_config.py +++ b/git_config.py @@ -258,6 +258,7 @@ class Remote(object): self.name = name self.url = self._Get('url') self.review = self._Get('review') + self.projectname = self._Get('projectname') self.fetch = map(lambda x: RefSpec.FromString(x), self._Get('fetch', all=True)) @@ -299,6 +300,7 @@ class Remote(object): """ self._Set('url', self.url) self._Set('review', self.review) + self._Set('projectname', self.projectname) self._Set('fetch', map(lambda x: str(x), self.fetch)) def _Set(self, key, value): diff --git a/project.py b/project.py index 1cfaaae5..2a4adf73 100644 --- a/project.py +++ b/project.py @@ -461,13 +461,17 @@ class Project(object): if not base_list: 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, '' _info("Uploading %s to %s:", branch.name, self.name) try: UploadBundle(project = self, server = branch.remote.review, email = self.UserEmail, - dest_project = self.name, + dest_project = branch.remote.projectname, dest_branch = dest_branch, src_branch = R_HEADS + branch.name, bases = base_list) @@ -887,6 +891,8 @@ class Project(object): url += '/%s.git' % self.name remote.url = url remote.review = self.remote.reviewUrl + if remote.projectname is None: + remote.projectname = self.name if self.worktree: remote.ResetFetch(mirror=False) @@ -898,6 +904,8 @@ class Project(object): remote = self.GetRemote(r.name) remote.url = r.fetchUrl remote.review = r.reviewUrl + if remote.projectname is None: + remote.projectname = self.name remote.ResetFetch() remote.Save()