Skip to content

Commit

Permalink
git-p4: small improvements to user-preservation
Browse files Browse the repository at this point in the history
. 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>
  • Loading branch information
Luke Diamand authored and Junio C Hamano committed May 9, 2011
1 parent 3ea2cfd commit ecdba36
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions contrib/fast-import/git-p4
Original file line number Diff line number Diff line change
Expand Up @@ -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'):
Expand All @@ -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':
Expand Down Expand Up @@ -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 = ""
Expand Down

0 comments on commit ecdba36

Please sign in to comment.