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

4 messages from 2010-01-22 to 2010-01-22. Participants: Pal-Kristian Engstad, Nicolas Pitre.
Thread: https://gitlist.dev/t/22333

## Pal-Kristian Engstad, 2010-01-22 02:06

Subject: [PATCH 3/3] git-p4: improve submit performance on new P4 servers
Message-ID: <4B590808.6010206@naughtydog.com>
URL: https://gitlist.dev/e/4B590808.6010206%40naughtydog.com

```
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.

Signed-off-by: Pal-Kristian Engstad <pal_engstad@naughtydog.com>
---
 contrib/fast-import/git-p4 |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index ab538b3..ec26cac 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -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:
-- 
1.6.5.2.6.gc3c1e.dirty

```

## Nicolas Pitre, 2010-01-22 02:49

Subject: Re: [PATCH 3/3] git-p4: improve submit performance on new P4 servers
Message-ID: <alpine.LFD.2.00.1001212147480.1726@xanadu.home>
URL: https://gitlist.dev/e/alpine.LFD.2.00.1001212147480.1726%40xanadu.home
In-Reply-To: <4B590808.6010206@naughtydog.com>

```
On Thu, 21 Jan 2010, Pal-Kristian Engstad wrote:

> 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.
> 
> Signed-off-by: Pal-Kristian Engstad <pal_engstad@naughtydog.com>

Why is the b flag impacting performance?

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

> ---
>  contrib/fast-import/git-p4 |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> index ab538b3..ec26cac 100755
> --- a/contrib/fast-import/git-p4
> +++ b/contrib/fast-import/git-p4
> @@ -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:
> -- 
> 1.6.5.2.6.gc3c1e.dirty
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

```

## Pal-Kristian Engstad, 2010-01-22 02:58

Subject: Re: [PATCH 3/3] git-p4: improve submit performance on new P4 servers
Message-ID: <4B591455.7050409@naughtydog.com>
URL: https://gitlist.dev/e/4B591455.7050409%40naughtydog.com
In-Reply-To: <alpine.LFD.2.00.1001212147480.1726@xanadu.home>

```
Nicolas Pitre wrote:
> On Thu, 21 Jan 2010, Pal-Kristian Engstad wrote:
> 
>> 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.
>>
>> Signed-off-by: Pal-Kristian Engstad <pal_engstad@naughtydog.com>
> 
> 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...

> 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
-- 
Pål-Kristian Engstad (engstad@naughtydog.com), 
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.

```

## Nicolas Pitre, 2010-01-22 03:59

Subject: Re: [PATCH 3/3] git-p4: improve submit performance on new P4 servers
Message-ID: <alpine.LFD.2.00.1001212242550.1726@xanadu.home>
URL: https://gitlist.dev/e/alpine.LFD.2.00.1001212242550.1726%40xanadu.home
In-Reply-To: <4B591455.7050409@naughtydog.com>

```
On Thu, 21 Jan 2010, Pal-Kristian Engstad wrote:

> Nicolas Pitre wrote:
> > On Thu, 21 Jan 2010, Pal-Kristian Engstad wrote:
> > 
> >> 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.
> >>
> >> Signed-off-by: Pal-Kristian Engstad <pal_engstad@naughtydog.com>
> > 
> > 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.

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

This is abominable.

> > 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

```
