Merge branch 'stable'
* stable:
Automatically install Gerrit Code Review's commit-msg hook
Fail sync when encountering "N commits behind."
Check that we are not overwriting a local repository when syncing.
Honor url.insteadOf when setting up SSH control master connection
sync: Fix split call on malformed email addresses
Fixing project renaming bug.
Conflicts:
hooks/commit-msg
project.py
subcmds/sync.py
Change-Id: I5eaf8fef8cbe4a95d124368112293a9ca64325bf
diff --git a/project.py b/project.py
index 89f94f2..5a143a7 100644
--- a/project.py
+++ b/project.py
@@ -706,10 +706,9 @@
# commits are not yet merged upstream. We do not want
# to rewrite the published commits so we punt.
#
- syncbuf.info(self,
- "branch %s is published but is now %d commits behind",
- branch.name,
- len(upstream_gain))
+ syncbuf.fail(self,
+ "branch %s is published (but not merged) and is now %d commits behind"
+ % (branch.name, len(upstream_gain)))
return
elif pub == head:
# All published commits are merged, and thus we are a
@@ -728,7 +727,7 @@
last_mine = None
cnt_mine = 0
for commit in local_changes:
- commit_id, committer_email = commit.split(' ', 2)
+ commit_id, committer_email = commit.split(' ', 1)
if committer_email == self.UserEmail:
last_mine = commit_id
cnt_mine += 1
@@ -1132,7 +1131,10 @@
dst = os.path.join(dotgit, name)
if relink:
os.remove(dst)
- os.symlink(relpath(src, dst), dst)
+ if os.path.islink(dst) or not os.path.exists(dst):
+ os.symlink(relpath(src, dst), dst)
+ else:
+ raise GitError('cannot overwrite a local work tree')
except OSError, e:
if e.errno == errno.EPERM:
raise GitError('filesystem must support symlinks')