diff options
author | Luke Diamand <luke@diamand.org> | 2011-05-07 11:19:43 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-09 16:26:51 -0700 |
commit | ecdba36da6143bc00ade66b655bcff910f3e93b3 (patch) | |
tree | 3e9c1f21fb099e0ac58647d951676a7c275715ca /contrib/fast-import | |
parent | 3ea2cfd488ed70e03d8d6f10e601784926db8008 (diff) | |
download | git-ecdba36da6143bc00ade66b655bcff910f3e93b3.tar.gz |
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>
Diffstat (limited to 'contrib/fast-import')
-rwxr-xr-x | contrib/fast-import/git-p4 | 19 |
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 = "" |