Skip to contentSkip to conversation

git-p4: improve submit performance on new P4 servers

PATCH In review Pal-Kristian Engstad 2 participants 4 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 3/3 git-p4: improve submit performance on new P4 servers

Improve git-p4 submit performance on newer (from 2009.2) Perforce servers by changing "p4 diff -du" to "p4 diff -dub". This change is harmless since the output is only used for display purposes.

---
 contrib/fast-import/git-p4 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
contrib/fast-import/git-p4 +1 -1
index ab538b3..ec26cac 100755
@@ -715,7 +715,7 @@ class P4Submit(Command):
             submitTemplate = self.prepareLogMessage(template, logMessage)
             if os.environ.has_key("P4DIFF"):
                 del(os.environ["P4DIFF"])
-            diff = p4_read_pipe("diff -du ...")
+            diff = p4_read_pipe("diff -dub ...")
 
             newdiff = ""
             for newFile in filesToAdd:
Signature · 1 line
1.6.5.2.6.gc3c1e.dirty
#1 lore raw
Quoted 5 lines · Pal-Kristian Engstad

Improve git-p4 submit performance on newer (from 2009.2) Perforce servers by changing "p4 diff -du" to "p4 diff -dub". This change is harmless since the output is only used for display purposes.

Why is the b flag impacting performance?

And even if for display purposes, why might you wish not to see differences in whitespace changes?

Quoted 26 lines
---
 contrib/fast-import/git-p4 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
contrib/fast-import/git-p4 +1 -1
index ab538b3..ec26cac 100755
@@ -715,7 +715,7 @@ class P4Submit(Command):
             submitTemplate = self.prepareLogMessage(template, logMessage)
             if os.environ.has_key("P4DIFF"):
                 del(os.environ["P4DIFF"])
-            diff = p4_read_pipe("diff -du ...")
+            diff = p4_read_pipe("diff -dub ...")
 
             newdiff = ""
             for newFile in filesToAdd:
Signature · 7 lines
1.6.5.2.6.gc3c1e.dirty


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#2 lore raw
Quoted 9 lines · Nicolas Pitre
Quoted 5 lines · Pal-Kristian Engstad

Improve git-p4 submit performance on newer (from 2009.2) Perforce servers by changing "p4 diff -du" to "p4 diff -dub". This change is harmless since the output is only used for display purposes.

Why is the b flag impacting performance?

That's a very good question. The release notes say that they've been changing how 'p4 diff -du' works, but the net effect of it all is that it stats all files in the whole working set. For large projects, this takes forever. We say pauses of 3 minutes per submit...

Quoted 2 lines

And even if for display purposes, why might you wish not to see differences in whitespace changes?

That's a good point, but what alternative is there?

PKE

Signature · 7 lines
Pål-Kristian Engstad ([email protected]), 
Lead Graphics & Engine Programmer,
Naughty Dog, Inc., 1601 Cloverfield Blvd, 6000 North,
Santa Monica, CA 90404, USA. Ph.: (310) 633-9112.

"Emacs would be a far better OS if it was shipped with 
 a halfway-decent text editor." -- Slashdot, Dec 13. 2005.
#3 lore raw
Quoted 7 lines · Pal-Kristian Engstad
Quoted 6 lines · Nicolas Pitre
Quoted 4 lines · Pal-Kristian Engstad

Improve git-p4 submit performance on newer (from 2009.2) Perforce servers by changing "p4 diff -du" to "p4 diff -dub". This change is harmless since the output is only used for display purposes.

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

Why is the b flag impacting performance?

That's a very good question. The release notes say that they've been changing how 'p4 diff -du' works, but the net effect of it all is that it stats all files in the whole working set.

And so does git.

Quoted 2 lines

For large projects, this
takes forever. We say pauses of 3 minutes per submit...

This is abominable.

Quoted 4 lines
Quoted 2 lines

And even if for display purposes, why might you wish not to see differences in whitespace changes?

That's a good point, but what alternative is there?

Have the option of not seeing the diff in the submit template maybe?

I agree that P4 is slow. Painfully slow. I even needed to make git-p4 even slower by adding a time.sleep(1) in p4_build_cmd() otherwise the server would randomly drop the connection with the client when being contacted back to back.

I'm so glad Simon wrote this git-p4 nevertheless. Makes working with P4 almost enjoyable.

Nicolas