Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perl -V 1000s of lines long/make_patchnum.pl has unbounded CPU and disk usage #14805

Open
p5pRT opened this issue Jul 17, 2015 · 8 comments
Open
Labels
Closable? We might be able to close this ticket, but we need to check with the reporter distro-mswin32 type-core

Comments

@p5pRT
Copy link

p5pRT commented Jul 17, 2015

Migrated from rt.perl.org#125630 (status was 'open')

Searchable as RT125630$

@p5pRT
Copy link
Author

p5pRT commented Jul 17, 2015

From @bulk88

Created by @bulk88

While working on a branch, I noticed make_patchnum.pl was taking 2-3
minutes to run with 100% CPU, instead of at most 3 seconds like before.
The process using up the CPU is "git.exe cherry
b88origin/sockethandlefix". Running the process manually shows 38
seconds for each run of git cherry.

-----------------------------------------------------------------
C​:\perl521\srcnewb4opt>timeit git.exe cherry b88origin/sockethandlefix

t.txt

Version Number​: Windows NT 5.1 (Build 2600)
Exit Time​: 0​:46 am, Friday, July 17 2015
Elapsed Time​: 0​:00​:38.093
Process Time​: 0​:00​:37.125
System Calls​: 1997475
Context Switches​: 495271
Page Faults​: 505781
Bytes Read​: 10116638
Bytes Written​: 1577082
Bytes Other​: 22029369

C​:\perl521\srcnewb4opt>timeit git.exe cherry b88origin/sockethandlefix
HEAD HEAD~100 > tbounded.txt

Version Number​: Windows NT 5.1 (Build 2600)
Exit Time​: 0​:47 am, Friday, July 17 2015
Elapsed Time​: 0​:00​:00.562
Process Time​: 0​:00​:00.578
System Calls​: 15953
Context Switches​: 6486
Page Faults​: 15639
Bytes Read​: 122029
Bytes Written​: 5088
Bytes Other​: 136271

C​:\perl521\srcnewb4opt>timeit git.exe cherry b88origin/sockethandlefix
HEAD HEAD~200 > tbounded.txt

Version Number​: Windows NT 5.1 (Build 2600)
Exit Time​: 0​:47 am, Friday, July 17 2015
Elapsed Time​: 0​:00​:01.843
Process Time​: 0​:00​:01.765
System Calls​: 123466
Context Switches​: 30405
Page Faults​: 39380
Bytes Read​: 338197
Bytes Written​: 11671
Bytes Other​: 944785

C​:\perl521\srcnewb4opt>
-----------------------------------------------------------------

HEAD-2 is a p5p repo commit for me. The problem seems to be a rebased
private commit from Nov 2013 of mine which is at HEAD-1 so git cherry is
returning the SHA1s of every p5p commit since Nov 2013 for me, counting
the lines of output of git cherry shows 7068 lines/SHA1s. "perl -V" has
an output of 7119 lines, nearly all SHA1s. git_version.h is 375 **KB**
long. Putting a limit of 100 or 200 commits seems to be reasonable in
cpu usage. 1000s and 1000s of commits being listed in perl -V is a bug.
Perhaps "git cherry" is completely wrong for make_patchnum.pl since git
cherry seems to uses "author date" and not "commit date" or the linked
list graph to determine what is different which ignores rebasing which
keeps the author date the same. A truncated copy of the very long perl
-v is below, notice the first "Locally applied patches" is
cb8c845 which is a p5p repo patch
http​://perl5.git.perl.org/perl.git/cb8c84586a7e77e1b9100e6d88a6a9d18041ae96
from Oct 2013. This patch clearly isn't my patch, it is
master/origin/p5p blead's patch. If someone made a backdated to 1987
commit (author date 1987, commit date 2015) in their repo, that would be
a DOS attack against the build process.

-----------------------------------------------------------------
  if (length $branch && length $remote) {
  # git cherry $remote/$branch | awk 'BEGIN{ORS=","} /\+/ {print
$2}' | sed -e 's/,$//'
  my $unpushed_commit_list =
  join ",", map { (split /\s/, $_)[1] }
  grep {/\+/} backtick("git cherry $remote/$merge");
  # git cherry $remote/$branch | awk 'BEGIN{ORS="\t\\\\\n"} /\+/
{print ",\"" $2 "\""}'
  $unpushed_commits =
  join "", map { ',"'.(split /\s/, $_)[1]."\"\t\\\n" }
  grep {/\+/} backtick("git cherry $remote/$merge");
  if (length $unpushed_commits) {
  $commit_title = "Local Commit​:";
  my $ancestor = backtick("git rev-parse $remote/$merge");
  $extra_info = "$extra_info
git_ancestor='$ancestor'
git_remote_branch='$remote/$merge'
git_unpushed='$unpushed_commit_list'";
  }
  }
-----------------------------------------------------------------
above is the chunk make_patchnum.pl which is responsible, it is also
running git cherry twice pointlessly.

-----------------------------------------------------------------
C​:\perl521\srcnewb4opt>git log --pretty=fuller -n3
WARNING​: terminal is not fully functional
commit fd20c94d3cad41b52cadf51e1621cf13574dc74d
Author​: Daniel Dragan <bulk88@​hotmail.com>
AuthorDate​: Fri Jul 17 00​:37​:26 2015 -0400
Commit​: Daniel Dragan <bulk88@​hotmail.com>
CommitDate​: Fri Jul 17 00​:37​:26 2015 -0400

  WIP #118127 don't closesocket on non-socket handles on Win32

*********************CUT*********************

commit 856d3623f8d51a9a6e6231593eb5d9da23f7d0a8
Author​: Daniel Dragan <bulk88@​hotmail.com>
AuthorDate​: Tue Nov 5 01​:06​:13 2013 -0500
Commit​: Daniel Dragan <bulk88@​hotmail.com>
CommitDate​: Thu Jul 9 15​:28​:26 2015 -0400

  b88 bld
:
commit 30dc90f
Author​: Daniel Dragan <bulk88@​hotmail.com>
AuthorDate​: Thu Jul 2 17​:15​:19 2015 -0400
Commit​: Tony Cook <tony@​develop-help.com>
CommitDate​: Thu Jul 9 11​:04​:48 2015 +1000

  improve debugging of padlist API

*********************CUT*********************
(END)
-----------------------------------------------------------------
Summary of my perl5 (revision 5 version 23 subversion 1) configuration​:
  Derived from​: 20f896caa9a73e43f142fb48a9eb7985d5c3f36d
  Ancestor​: b431f923ee773478da393bb26dd45b07d1dbf7e8
  Platform​:
  osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
  uname=''
  config_args='undef'
  hint=recommended, useposix=true, d_sigaction=undef
  useithreads=define, usemultiplicity=define
  use64bitint=undef, use64bitall=undef, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32
-D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DWIN32_NO_SOCKETS
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -D_USE_32BIT_TIME_T',
  optimize='-O1 -MD -Zi -DNDEBUG -GL',
  cppflags='-DWIN32'
  ccversion='13.10.6030', gccversion='', gccosandvers=''
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234,
doublekind=3
  d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8,
longdblkind=0
  ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64',
lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='link', ldflags ='-nologo -nodefaultlib -debug -opt​:ref,icf -ltcg
  -libpath​:"c​:\perl\lib\CORE" -machine​:x86'
  libpth=\lib
  libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
  perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
  libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl523.lib
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug
-opt​:ref,icf -ltcg -libpath​:"c​:\perl\lib\CORE" -machine​:x86'

Characteristics of this binary (from libperl)​:
  Compile-time options​: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
  PERLIO_LAYERS PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
  PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
  PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_ITHREADS
  USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME
  USE_PERLIO USE_PERL_ATOF
  Locally applied patches​:
  uncommitted-changes
  cb8c845
  3bfb061
  ff4a442
  79a1863
  4a73dc0
  9b4bdfd
  d9d7708
  5deb134
  4571f4a
  7004ee4
  a618185
  a554653
  1051310
  033960a
*********************CUT*********************
  35c0561
  a7ab4d9
  b97384f
  1214456
  08d70c4
  f10a29a
  c986e4c
  1b3ab82
  cb0fc6b
  4b95171
  065d96f
  23e51b9
  bace499
  b6d5ddf
  b4929cb
  aa8f6ce
  83eda48
  d400565
  2e2fa59
  ac71d2a
  f5c4ec3
  1cdd922
  047c3ca
  1a74a75
  5ad25bd
  d3e5e56
  6228a1e
  57486a9
  7aad4f3
  716436d
  a8fc646
  e1a10f3
  db48a4a
  626ed49
  3341121
  988f25b
  c32ac92
  e80c4ac
  13929c4
  85ecf14
  31ccb4f
  1f0ba93
  334ea17
  a1f85fb
  7051b8c
  1ef2b70
  4496054
  9c750db
  617a4f4
  a375cec
  d40dc6b
  a05700a
  33c28ab
  d48cfc7
  ac892e4
  f0b1ad2
  d0044f8
  bffade0
  73d6481
  69427f1
  cbc3e9d
  7c499b7
  509df53
  b9e156a
  8eac439
  256ca3d
  8b1ae79
  37b8cdd
  d9fc04e
  083087a
  f7aae06
  3f9ec86
  f65819c
  4834487
  00898cc
  23ce015
  e67e8a4
  b226f3e
  3d2dd2a
  0fd9115
  634b12f
  a5461bd
  35a328a
  add0dc9
  393bc9b
  96e1df1
  db1d297
  61f2771
  c818886
  38d7fd8
  3bde2d4
  b66176f
  511343a
  af823f6
  05732f9
  6e7b1a2
  8481e3d
  66cf59b
  681fb69
  d2607e1
  568fc26
  e80fee2
  0c82d9a
  07bd88d
  188f97e
  d1992db
  8cb8f89
  fb086a0
  69a2352
  79713c7
  38bb001
  27e6dab
  ee17bff
  2ef2454
  a9f17b4
  0103ca1
  4b59afe
  e7b6553
  2ad792c
  054a3ba
  b349829
  4943a71
  a63df12
  51f0b9c
  6012112
  b7adcee
  b326ddf
  93c10d6
  50e7958
  00a1161
  f907dd3
  95a8bf0
  42fe784
  f298f06
  b69687e
  3c9658f
  976258e
  03c5a85
  c1424f0
  fc4c3ce
  c756699
  7d38035
  4e9736a
  deaaea8
  8b7906d
  d1f2894
  18b0188
  e6704a4
  ba707cd
  201e9e2
  c1b8440
  7ed1d85
  c85f23b
  bb3b7d7
  779c45c
  30dc90f
  20f896caa9a73e43f142fb48a9eb7985d5c3f36d
  Built under MSWin32
  Compiled at Jul 16 2015 23​:52​:02
  %ENV​:
  PERL_JSON_BACKEND="Cpanel​::JSON​::XS"
  PERL_YAML_BACKEND="YAML"
  @​INC​:
  C​:/perl521/srcnewb4opt/lib
  .

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.23.0:

Configured by Owner at Mon Jun 29 16:02:48 2015.

Summary of my perl5 (revision 5 version 23 subversion 0) configuration:
  Derived from: ce73437a50a9a87ac028f9f47df94ada166fc8fd
  Platform:
    osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    useithreads=define, usemultiplicity=define
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 
-D_CONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT 
-DPERL_IMPLICIT_SYS -D_USE_32BIT_TIME_T',
    optimize='-O1 -MD -Zi -DNDEBUG -GL',
    cppflags='-DWIN32'
    ccversion='13.10.6030', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234, 
doublekind=3
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8, 
longdblkind=0
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', 
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg 
        -libpath:"c:\perl521\lib\CORE"         -machine:x86'
    libpth=\lib
    libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib 
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib 
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
    perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib 
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib 
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
    libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl523.lib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug 
-opt:ref,icf -ltcg         -libpath:"c:\perl521\lib\CORE"        
 -machine:x86'

Locally applied patches:
    uncommitted-changes


@INC for perl 5.23.0:
    C:/perl521/site/lib
    C:/perl521/lib
    .


Environment for perl 5.23.0:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=C:\perl521\bin;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET 
2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;
    PERL_BADLANG (unset)
    SHELL (unset)


@p5pRT
Copy link
Author

p5pRT commented Jul 22, 2015

From @tonycoz

On Thu Jul 16 22​:45​:56 2015, bulk88 wrote​:

While working on a branch, I noticed make_patchnum.pl was taking 2-3
minutes to run with 100% CPU, instead of at most 3 seconds like
before.
The process using up the CPU is "git.exe cherry
b88origin/sockethandlefix". Running the process manually shows 38
seconds for each run of git cherry.

What commit does b88origin/sockethandlefix point at?

  git rev-parse b88origin/sockethandlefix

Tony

@p5pRT
Copy link
Author

p5pRT commented Jul 22, 2015

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jul 22, 2015

From @bulk88

On Tue Jul 21 22​:51​:42 2015, tonyc wrote​:

On Thu Jul 16 22​:45​:56 2015, bulk88 wrote​:

While working on a branch, I noticed make_patchnum.pl was taking 2-3
minutes to run with 100% CPU, instead of at most 3 seconds like
before.
The process using up the CPU is "git.exe cherry
b88origin/sockethandlefix". Running the process manually shows 38
seconds for each run of git cherry.

What commit does b88origin/sockethandlefix point at?

git rev-parse b88origin/sockethandlefix

Tony

Owner@​OWNER-5D26B85EE /C/perl521/srcnewb4opt (sockethandlefix)
$ git rev-parse b88origin/sockethandlefix
b431f923ee773478da393bb26dd45b07d1dbf7e8

Owner@​OWNER-5D26B85EE /C/perl521/srcnewb4opt (sockethandlefix)
$ git log -n6 --pretty=fuller b431f923ee773478da393bb26dd45b07d1dbf7e8
WARNING​: terminal is not fully functional
commit b431f923ee773478da393bb26dd45b07d1dbf7e8
Author​: Daniel Dragan <bulk88@​hotmail.com>
AuthorDate​: Sat Nov 23 17​:03​:32 2013 -0500
Commit​: Daniel Dragan <bulk88@​hotmail.com>
CommitDate​: Sat Nov 23 17​:03​:32 2013 -0500

  WIP don't closesocket on non-socket handles

commit 721000cb2bcbd3292ef9171f35acf43985eeea15
Author​: Daniel Dragan <bulk88@​hotmail.com>
AuthorDate​: Tue Nov 5 01​:06​:13 2013 -0500
Commit​: Daniel Dragan <bulk88@​hotmail.com>
CommitDate​: Sun Nov 10 19​:59​:23 2013 -0500

  b88 bld

commit ae103e0
Author​: Daniel Dragan <bulk88@​hotmail.com>
AuthorDate​: Thu Nov 7 21​:33​:57 2013 -0500
Commit​: Father Chrysostomos <sprout@​cpan.org>
CommitDate​: Sun Nov 10 11​:00​:09 2013 -0800

  fix multi-eval of Perl_custom_op_xop in XopENTRY

:
commit 8c1c815
Author​: Chris 'BinGOs' Williams <chris@​bingosnet.co.uk>
AuthorDate​: Sun Nov 10 11​:09​:07 2013 +0000
Commit​: Chris 'BinGOs' Williams <chris@​bingosnet.co.uk>
CommitDate​: Sun Nov 10 11​:09​:07 2013 +0000
:
  Update Unicode-Collate to CPAN version 1.02

:
commit aff26e9
Author​: Father Chrysostomos <sprout@​cpan.org>
AuthorDate​: Sat Nov 9 21​:44​:26 2013 -0800
Commit​: Father Chrysostomos <sprout@​cpan.org>
CommitDate​: Sat Nov 9 22​:07​:34 2013 -0800
:
  op.c​: Factor out common entersub-building code

:
commit 9386027
Author​: Father Chrysostomos <sprout@​cpan.org>
AuthorDate​: Sat Nov 9 21​:15​:32 2013 -0800
Commit​: Father Chrysostomos <sprout@​cpan.org>
CommitDate​: Sat Nov 9 22​:07​:34 2013 -0800
:
  Fix deparsing of glob(my $x) and CORE​::glob

(END)
Owner@​OWNER-5D26B85EE /C/perl521/srcnewb4opt (sockethandlefix)
$ git status
# On branch sockethandlefix
# Your branch and 'b88origin/sockethandlefix' have diverged,
# and have 7150 and 2 different commit(s) each, respectively.
#
nothing to commit (working directory clean)

Owner@​OWNER-5D26B85EE /C/perl521/srcnewb4opt (sockethandlefix)
$

I think I see what is happening, git "upstream" is the ancient branch on my remote, not p5p remote blead. I still wonder if there should be a limit of a couple 100 commits in make_patchnum.pl, maybe with make_patchnum.pl exit 1 and not writing a git_version.h if that limit is hit.

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

p5pRT commented Jul 30, 2015

From @tonycoz

On Wed Jul 22 04​:38​:09 2015, bulk88 wrote​:

On Tue Jul 21 22​:51​:42 2015, tonyc wrote​:

On Thu Jul 16 22​:45​:56 2015, bulk88 wrote​:

While working on a branch, I noticed make_patchnum.pl was taking 2-
3
minutes to run with 100% CPU, instead of at most 3 seconds like
before.
The process using up the CPU is "git.exe cherry
b88origin/sockethandlefix". Running the process manually shows 38
seconds for each run of git cherry.

What commit does b88origin/sockethandlefix point at?

git rev-parse b88origin/sockethandlefix

Owner@​OWNER-5D26B85EE /C/perl521/srcnewb4opt (sockethandlefix)
$ git rev-parse b88origin/sockethandlefix
b431f923ee773478da393bb26dd45b07d1dbf7e8

...

I think I see what is happening, git "upstream" is the ancient branch
on my remote, not p5p remote blead. I still wonder if there should be
a limit of a couple 100 commits in make_patchnum.pl, maybe with
make_patchnum.pl exit 1 and not writing a git_version.h if that limit
is hit.

Yes, it's the remote for that branch, it has nothing to do with the date of the commit.

You can change the remote for that branch with​:

  git branch --set-upstream somebranch upstreambranch

or by editing .git/config.

As to limiting the number of entries, I'd accept that, but I could see others having a different opinion.

For me to accept a patch it would need something to indicate how many commits weren't listed, so​:

  3480fba
  63480fbaaaea849eca1f4747c4f85938960b2095
  563480fbaaaea849eca1f4747c4f85938960b209
...
  9563480fbaaaea849eca1f4747c4f85938960b20
  and 120 other commits.

Tony

@p5pRT
Copy link
Author

p5pRT commented Aug 3, 2015

From @bulk88

On Wed Jul 29 20​:57​:07 2015, tonyc wrote​:

As to limiting the number of entries, I'd accept that, but I could see
others having a different opinion.

For me to accept a patch it would need something to indicate how many
commits weren't listed, so​:

3480fba
63480fbaaaea849eca1f4747c4f85938960b2095
563480fbaaaea849eca1f4747c4f85938960b209
...
9563480fbaaaea849eca1f4747c4f85938960b20
and 120 other commits.

Tony

Does it have to say "120 other commits" or just a line that says "commit list truncated at 100 commits"? My git cmd lines skills are poor, but to find how many skipped commits there were, the git client would need to dump all the SHA1s to make_patchnum.pl anyway and the 10s of seconds the git client took will still happen, the only point of truncating the list at that point is so the perl binary doesn't grow by 100s of KB to store the text of all those SHA1s but the 10s of seconds spent in the git client during the build process are still there.

--
bulk88 ~ bulk88 at hotmail.com

@p5pRT
Copy link
Author

p5pRT commented Aug 3, 2015

From @tonycoz

On Sun, Aug 02, 2015 at 09​:14​:27PM -0700, bulk88 via RT wrote​:

On Wed Jul 29 20​:57​:07 2015, tonyc wrote​:

As to limiting the number of entries, I'd accept that, but I could see
others having a different opinion.

For me to accept a patch it would need something to indicate how many
commits weren't listed, so​:

3480fba
63480fbaaaea849eca1f4747c4f85938960b2095
563480fbaaaea849eca1f4747c4f85938960b209
...
9563480fbaaaea849eca1f4747c4f85938960b20
and 120 other commits.

Tony

Does it have to say "120 other commits" or just a line that says
  "commit list truncated at 100 commits"? My git cmd lines skills are
  poor, but to find how many skipped commits there were, the git
  client would need to dump all the SHA1s to make_patchnum.pl anyway
  and the 10s of seconds the git client took will still happen, the
  only point of truncating the list at that point is so the perl
  binary doesn't grow by 100s of KB to store the text of all those
  SHA1s but the 10s of seconds spent in the git client during the
  build process are still there.

I think it's useful to give the user some measure of just how far they
are off the beaten path.

How were you planning on limiting the commits?

With HEAD at blead, the following​:

  git cherry origin/maint-5.20 HEAD HEAD~100

takes 4 seconds, and lists 187 commits.

From reading C<git help cherry> it looks like the limit parameter only
limits the commits from the current branch, not from the upstream
branch, so using a limit will reduce the processing time, but with an
upstream with many commits, it will still need to check all those
commits.

Tony

@toddr
Copy link
Member

toddr commented Feb 13, 2020

Given a lack of response, I don't see anything actionable here. I propose closing this case.

@toddr toddr added the Closable? We might be able to close this ticket, but we need to check with the reporter label Feb 13, 2020
@xenu xenu removed the affects-5.23 label Nov 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Closable? We might be able to close this ticket, but we need to check with the reporter distro-mswin32 type-core
Projects
None yet
Development

No branches or pull requests

3 participants