summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2008-11-06 09:52:51 -0800
committerShawn O. Pearce <sop@google.com>2008-11-06 09:52:51 -0800
commit339ba9f6f70b1733f89a5ff89d5f155389a04094 (patch)
treebe37abf6ef01588a1c894513a6febb651642b8db
parent70cd4ab2708eaae7d96d7e8b0a3f88850c163543 (diff)
downloadgit-repo-339ba9f6f70b1733f89a5ff89d5f155389a04094.tar.gz
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>
-rw-r--r--git_config.py2
-rw-r--r--project.py10
2 files changed, 11 insertions, 1 deletions
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):
258 self.name = name 258 self.name = name
259 self.url = self._Get('url') 259 self.url = self._Get('url')
260 self.review = self._Get('review') 260 self.review = self._Get('review')
261 self.projectname = self._Get('projectname')
261 self.fetch = map(lambda x: RefSpec.FromString(x), 262 self.fetch = map(lambda x: RefSpec.FromString(x),
262 self._Get('fetch', all=True)) 263 self._Get('fetch', all=True))
263 264
@@ -299,6 +300,7 @@ class Remote(object):
299 """ 300 """
300 self._Set('url', self.url) 301 self._Set('url', self.url)
301 self._Set('review', self.review) 302 self._Set('review', self.review)
303 self._Set('projectname', self.projectname)
302 self._Set('fetch', map(lambda x: str(x), self.fetch)) 304 self._Set('fetch', map(lambda x: str(x), self.fetch))
303 305
304 def _Set(self, key, value): 306 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):
461 if not base_list: 461 if not base_list:
462 raise GitError('no base refs, cannot upload %s' % branch.name) 462 raise GitError('no base refs, cannot upload %s' % branch.name)
463 463
464 if not branch.remote.projectname:
465 branch.remote.projectname = self.name
466 branch.remote.Save()
467
464 print >>sys.stderr, '' 468 print >>sys.stderr, ''
465 _info("Uploading %s to %s:", branch.name, self.name) 469 _info("Uploading %s to %s:", branch.name, self.name)
466 try: 470 try:
467 UploadBundle(project = self, 471 UploadBundle(project = self,
468 server = branch.remote.review, 472 server = branch.remote.review,
469 email = self.UserEmail, 473 email = self.UserEmail,
470 dest_project = self.name, 474 dest_project = branch.remote.projectname,
471 dest_branch = dest_branch, 475 dest_branch = dest_branch,
472 src_branch = R_HEADS + branch.name, 476 src_branch = R_HEADS + branch.name,
473 bases = base_list) 477 bases = base_list)
@@ -887,6 +891,8 @@ class Project(object):
887 url += '/%s.git' % self.name 891 url += '/%s.git' % self.name
888 remote.url = url 892 remote.url = url
889 remote.review = self.remote.reviewUrl 893 remote.review = self.remote.reviewUrl
894 if remote.projectname is None:
895 remote.projectname = self.name
890 896
891 if self.worktree: 897 if self.worktree:
892 remote.ResetFetch(mirror=False) 898 remote.ResetFetch(mirror=False)
@@ -898,6 +904,8 @@ class Project(object):
898 remote = self.GetRemote(r.name) 904 remote = self.GetRemote(r.name)
899 remote.url = r.fetchUrl 905 remote.url = r.fetchUrl
900 remote.review = r.reviewUrl 906 remote.review = r.reviewUrl
907 if remote.projectname is None:
908 remote.projectname = self.name
901 remote.ResetFetch() 909 remote.ResetFetch()
902 remote.Save() 910 remote.Save()
903 911