Re: [PATCH] am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

2015-09-09 Thread Johannes Schindelin
Hi Junio,

On 2015-09-09 11:10, Johannes Schindelin wrote:
> This is a backport of the corresponding patch to the builtin am in 2.6:
> 3ecc704 (am --skip/--abort: merge HEAD/ORIG_HEAD tree into index,
> 2015-08-19).
> 
> Reportedly, it can make a huge difference on Windows, in one case a `git
> rebase --skip` took 1m40s without, and 5s with, this patch.
> 
> Reported-and-suggested-by: Kim Gybels 
> Original report: https://github.com/git-for-windows/git/issues/365
> Acked-by: Paul Tan 
> Signed-off-by: Johannes Schindelin 
> ---
>  contrib/examples/git-am.sh | 2 +-

Of course this should be `git-am.sh` in the 2.5.x branch... Could you adjust 
that on your side?

Thanks,
Dscho

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

2015-09-09 Thread Junio C Hamano
Johannes Schindelin  writes:

> On 2015-09-09 11:10, Johannes Schindelin wrote:
>> This is a backport of the corresponding patch to the builtin am in 2.6:
>> 3ecc704 (am --skip/--abort: merge HEAD/ORIG_HEAD tree into index,
>> 2015-08-19).
>> 
>> Reportedly, it can make a huge difference on Windows, in one case a `git
>> rebase --skip` took 1m40s without, and 5s with, this patch.
>> 
>> Reported-and-suggested-by: Kim Gybels 
>> Original report: https://github.com/git-for-windows/git/issues/365
>> Acked-by: Paul Tan 
>> Signed-off-by: Johannes Schindelin 
>> ---
>>  contrib/examples/git-am.sh | 2 +-
>
> Of course this should be `git-am.sh` in the 2.5.x branch... Could you
> adjust that on your side?

"git am -3" is smart enough that applying this patch on a branch
that contains the performance regression does the right thing
without me having to think.  The most time-consuming part on my part
was to figure out which exact commit this change is fixing and then
find out to which maintenance tracks contains that breakage.

Here is what I'll queue on top of maint-2.4 series.

Thanks.

-- >8 --
From: Johannes Schindelin 
Date: Wed, 9 Sep 2015 09:10:07 +
Subject: [PATCH] am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

f8da6801 (am --skip: support skipping while on unborn branch,
2015-06-06) introduced a performance regression to "git am --skip",
where it used "read-tree" to reconstruct the index from scratch
without reusing the cached stat information.

This is a backport of the corresponding patch to the builtin am in 2.6:
3ecc704 (am --skip/--abort: merge HEAD/ORIG_HEAD tree into index,
2015-08-19).

Reportedly, it can make a huge difference on Windows, in one case a `git
rebase --skip` took 1m40s without, and 5s with, this patch.

cf. https://github.com/git-for-windows/git/issues/365

Reported-and-suggested-by: Kim Gybels 
Acked-by: Paul Tan 
Signed-off-by: Johannes Schindelin 
Signed-off-by: Junio C Hamano 
---
 git-am.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git-am.sh b/git-am.sh
index 3103c0f..4ab1f21 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -509,7 +509,7 @@ then
git read-tree --reset -u $head_tree $head_tree &&
index_tree=$(git write-tree) &&
git read-tree -m -u $index_tree $head_tree
-   git read-tree $head_tree
+   git read-tree -m $head_tree
;;
,t)
if test -f "$dotest/rebasing"
-- 
2.6.0-rc1-125-gb648220

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html