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>
diff --git a/project.py b/project.py
index 1cfaaae..2a4adf7 100644
--- a/project.py
+++ b/project.py
@@ -461,13 +461,17 @@
     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 @@
       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 @@
       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()