diff options
author | Shawn O. Pearce <sop@google.com> | 2008-11-06 09:52:51 -0800 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2008-11-06 09:52:51 -0800 |
commit | 339ba9f6f70b1733f89a5ff89d5f155389a04094 (patch) | |
tree | be37abf6ef01588a1c894513a6febb651642b8db | |
parent | 70cd4ab2708eaae7d96d7e8b0a3f88850c163543 (diff) | |
download | git-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.py | 2 | ||||
-rw-r--r-- | project.py | 10 |
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): |
@@ -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 | ||