summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Luke Diamand <luke@diamand.org>2011-05-07 11:19:43 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2011-05-09 16:26:51 -0700
commitecdba36da6143bc00ade66b655bcff910f3e93b3 (patch)
tree3e9c1f21fb099e0ac58647d951676a7c275715ca
parentgit-p4: add option to preserve user names (diff)
downloadtgif-ecdba36da6143bc00ade66b655bcff910f3e93b3.tar.xz
git-p4: small improvements to user-preservation
. Slightly more paranoid checking of results from 'p4 change' . Remove superfluous "-G" . Don't modify the username if it is unchanged. . Add a comment in the change template to show what is going to be done. Signed-off-by: Luke Diamand <luke@diamand.org> Acked-By: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xcontrib/fast-import/git-p419
1 files changed, 14 insertions, 5 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 36e3d871f4..e66a7df908 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -690,10 +690,15 @@ class P4Submit(Command, P4UserMap):
def modifyChangelistUser(self, changelist, newUser):
# fixup the user field of a changelist after it has been submitted.
changes = p4CmdList("change -o %s" % changelist)
- for c in changes:
- if c.has_key('User'):
- c['User'] = newUser
- input = marshal.dumps(changes[0])
+ if len(changes) != 1:
+ die("Bad output from p4 change modifying %s to user %s" %
+ (changelist, newUser))
+
+ c = changes[0]
+ if c['User'] == newUser: return # nothing to do
+ c['User'] = newUser
+ input = marshal.dumps(c)
+
result = p4CmdList("change -f -i", stdin=input)
for r in result:
if r.has_key('code'):
@@ -707,7 +712,7 @@ class P4Submit(Command, P4UserMap):
def canChangeChangelists(self):
# check to see if we have p4 admin or super-user permissions, either of
# which are required to modify changelists.
- results = p4CmdList("-G protects %s" % self.depotPath)
+ results = p4CmdList("protects %s" % self.depotPath)
for r in results:
if r.has_key('perm'):
if r['perm'] == 'admin':
@@ -865,6 +870,10 @@ class P4Submit(Command, P4UserMap):
if self.interactive:
submitTemplate = self.prepareLogMessage(template, logMessage)
+
+ if self.preserveUser:
+ submitTemplate = submitTemplate + ("\n######## Actual user %s, modified after commit\n" % p4User)
+
if os.environ.has_key("P4DIFF"):
del(os.environ["P4DIFF"])
diff = ""