* I: git-fetch: -n option disappeared but git-fetch(1) still describe it @ 2008-03-12 10:51 Dmitry V. Levin 2008-03-12 14:52 ` Andreas Ericsson 0 siblings, 1 reply; 8+ messages in thread From: Dmitry V. Levin @ 2008-03-12 10:51 UTC (permalink / raw) To: git [-- Attachment #1: Type: text/plain, Size: 367 bytes --] Hi, git-fetch builtinification (commit v1.5.3.2-93-gb888d61) apparently dropped -n option (alias to --no-tags) documented in Documentation/fetch-options.txt Either builtin-fetch.c or Documentation/fetch-options.txt should be adjusted to sync the code with its docs. Original bug report: https://bugzilla.altlinux.org/show_bug.cgi?id=14870 -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: I: git-fetch: -n option disappeared but git-fetch(1) still describe it 2008-03-12 10:51 I: git-fetch: -n option disappeared but git-fetch(1) still describe it Dmitry V. Levin @ 2008-03-12 14:52 ` Andreas Ericsson 2008-03-12 16:04 ` Johannes Schindelin 0 siblings, 1 reply; 8+ messages in thread From: Andreas Ericsson @ 2008-03-12 14:52 UTC (permalink / raw) To: Dmitry V. Levin; +Cc: git Dmitry V. Levin wrote: > Hi, > > git-fetch builtinification (commit v1.5.3.2-93-gb888d61) apparently > dropped -n option (alias to --no-tags) documented in > Documentation/fetch-options.txt > > Either builtin-fetch.c or Documentation/fetch-options.txt should be > adjusted to sync the code with its docs. > > Original bug report: > https://bugzilla.altlinux.org/show_bug.cgi?id=14870 > I have a (very) vague memory that git-fetch.sh had to iterate over tags one by one, making tag-heavy projects excruciatingly slow to fetch from with the shellscript version. Some pathological case with 2700 tags was presented where a fetch took nearly an hour, iirc. AFAIR, the builtinification (or was it a protocol extension?) reduced that time to something around 10 seconds for the pathological case. Does anyone else have a sharper memory of what caused the -n option to be dropped? -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: I: git-fetch: -n option disappeared but git-fetch(1) still describe it 2008-03-12 14:52 ` Andreas Ericsson @ 2008-03-12 16:04 ` Johannes Schindelin 2008-03-12 16:06 ` Andreas Ericsson 0 siblings, 1 reply; 8+ messages in thread From: Johannes Schindelin @ 2008-03-12 16:04 UTC (permalink / raw) To: Andreas Ericsson; +Cc: Dmitry V. Levin, git Hi, On Wed, 12 Mar 2008, Andreas Ericsson wrote: > Dmitry V. Levin wrote: > > > git-fetch builtinification (commit v1.5.3.2-93-gb888d61) apparently > > dropped -n option (alias to --no-tags) documented in > > Documentation/fetch-options.txt > > > > Either builtin-fetch.c or Documentation/fetch-options.txt should be > > adjusted to sync the code with its docs. > > > > Original bug report: > > https://bugzilla.altlinux.org/show_bug.cgi?id=14870 > > I have a (very) vague memory that git-fetch.sh had to iterate over tags > one by one, making tag-heavy projects excruciatingly slow to fetch from > with the shellscript version. Some pathological case with 2700 tags was > presented where a fetch took nearly an hour, iirc. AFAIR, the > builtinification (or was it a protocol extension?) reduced that time to > something around 10 seconds for the pathological case. AFAIR this was helped by the fetch--tool helper, even at the time of non-builtin fetch. > Does anyone else have a sharper memory of what caused the -n option to > be dropped? AFAICT this was done because of the parsopt'ification. But I forgot the details. Hth, Dscho ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: I: git-fetch: -n option disappeared but git-fetch(1) still describe it 2008-03-12 16:04 ` Johannes Schindelin @ 2008-03-12 16:06 ` Andreas Ericsson 2008-03-12 16:11 ` Johannes Schindelin 0 siblings, 1 reply; 8+ messages in thread From: Andreas Ericsson @ 2008-03-12 16:06 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Dmitry V. Levin, git Johannes Schindelin wrote: > Hi, > > On Wed, 12 Mar 2008, Andreas Ericsson wrote: > >> Dmitry V. Levin wrote: >> >>> git-fetch builtinification (commit v1.5.3.2-93-gb888d61) apparently >>> dropped -n option (alias to --no-tags) documented in >>> Documentation/fetch-options.txt >>> >>> Either builtin-fetch.c or Documentation/fetch-options.txt should be >>> adjusted to sync the code with its docs. >>> >>> Original bug report: >>> https://bugzilla.altlinux.org/show_bug.cgi?id=14870 >> I have a (very) vague memory that git-fetch.sh had to iterate over tags >> one by one, making tag-heavy projects excruciatingly slow to fetch from >> with the shellscript version. Some pathological case with 2700 tags was >> presented where a fetch took nearly an hour, iirc. AFAIR, the >> builtinification (or was it a protocol extension?) reduced that time to >> something around 10 seconds for the pathological case. > > AFAIR this was helped by the fetch--tool helper, even at the time of > non-builtin fetch. > >> Does anyone else have a sharper memory of what caused the -n option to >> be dropped? > > AFAICT this was done because of the parsopt'ification. But I forgot the > details. > I had a look at the code. It seems the new way of specifying -n is to say --no-tags or -t 0, or --tags=0 (although I'm not well-versed enough in the parseopt thing to be sure). I have no time now, but I'll take a stab at adding the -n option back tomorrow if nobody beats me to it. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: I: git-fetch: -n option disappeared but git-fetch(1) still describe it 2008-03-12 16:06 ` Andreas Ericsson @ 2008-03-12 16:11 ` Johannes Schindelin 2008-03-13 6:50 ` Andreas Ericsson 0 siblings, 1 reply; 8+ messages in thread From: Johannes Schindelin @ 2008-03-12 16:11 UTC (permalink / raw) To: Andreas Ericsson; +Cc: Dmitry V. Levin, git Hi, On Wed, 12 Mar 2008, Andreas Ericsson wrote: > Johannes Schindelin wrote: > > > On Wed, 12 Mar 2008, Andreas Ericsson wrote: > > > > > Dmitry V. Levin wrote: > > > > > > > git-fetch builtinification (commit v1.5.3.2-93-gb888d61) > > > > apparently dropped -n option (alias to --no-tags) documented in > > > > Documentation/fetch-options.txt > > > > > > > > Either builtin-fetch.c or Documentation/fetch-options.txt should > > > > be adjusted to sync the code with its docs. > > > > > > > > Original bug report: > > > > https://bugzilla.altlinux.org/show_bug.cgi?id=14870 > > > I have a (very) vague memory that git-fetch.sh had to iterate over > > > tags one by one, making tag-heavy projects excruciatingly slow to > > > fetch from with the shellscript version. Some pathological case with > > > 2700 tags was presented where a fetch took nearly an hour, iirc. > > > AFAIR, the builtinification (or was it a protocol extension?) > > > reduced that time to something around 10 seconds for the > > > pathological case. > > > > AFAIR this was helped by the fetch--tool helper, even at the time of > > non-builtin fetch. > > > > > Does anyone else have a sharper memory of what caused the -n option > > > to be dropped? > > > > AFAICT this was done because of the parsopt'ification. But I forgot > > the details. > > > > I had a look at the code. It seems the new way of specifying -n is to > say --no-tags or -t 0, or --tags=0 (although I'm not well-versed enough > in the parseopt thing to be sure). I have no time now, but I'll take a > stab at adding the -n option back tomorrow if nobody beats me to it. Maybe like this (completely untested, that will be your task tomorrow): builtin-fetch.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/builtin-fetch.c b/builtin-fetch.c index 5196688..c406298 100644 --- a/builtin-fetch.c +++ b/builtin-fetch.c @@ -40,6 +40,8 @@ static struct option builtin_fetch_options[] = { "force overwrite of local branch"), OPT_SET_INT('t', "tags", &tags, "fetch all tags and associated objects", TAGS_SET), + OPT_SET_INT('n', NULL, &tags, + "do not fetch all tags (--no-tags)", TAGS_UNSET), OPT_BOOLEAN('k', "keep", &keep, "keep downloaded pack"), OPT_BOOLEAN('u', "update-head-ok", &update_head_ok, "allow updating of HEAD ref"), ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: I: git-fetch: -n option disappeared but git-fetch(1) still describe it 2008-03-12 16:11 ` Johannes Schindelin @ 2008-03-13 6:50 ` Andreas Ericsson 2008-03-13 7:13 ` [PATCH] git fetch: Take '-n' to mean '--no-tags' Andreas Ericsson 0 siblings, 1 reply; 8+ messages in thread From: Andreas Ericsson @ 2008-03-13 6:50 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Dmitry V. Levin, git Johannes Schindelin wrote: > Hi, > > On Wed, 12 Mar 2008, Andreas Ericsson wrote: > >> Johannes Schindelin wrote: >> >>> On Wed, 12 Mar 2008, Andreas Ericsson wrote: >>> >>>> Dmitry V. Levin wrote: >>>> >>>>> git-fetch builtinification (commit v1.5.3.2-93-gb888d61) >>>>> apparently dropped -n option (alias to --no-tags) documented in >>>>> Documentation/fetch-options.txt >>>>> >>>>> Either builtin-fetch.c or Documentation/fetch-options.txt should >>>>> be adjusted to sync the code with its docs. >>>>> >>>>> Original bug report: >>>>> https://bugzilla.altlinux.org/show_bug.cgi?id=14870 >>>> I have a (very) vague memory that git-fetch.sh had to iterate over >>>> tags one by one, making tag-heavy projects excruciatingly slow to >>>> fetch from with the shellscript version. Some pathological case with >>>> 2700 tags was presented where a fetch took nearly an hour, iirc. >>>> AFAIR, the builtinification (or was it a protocol extension?) >>>> reduced that time to something around 10 seconds for the >>>> pathological case. >>> AFAIR this was helped by the fetch--tool helper, even at the time of >>> non-builtin fetch. >>> >>>> Does anyone else have a sharper memory of what caused the -n option >>>> to be dropped? >>> AFAICT this was done because of the parsopt'ification. But I forgot >>> the details. >>> >> I had a look at the code. It seems the new way of specifying -n is to >> say --no-tags or -t 0, or --tags=0 (although I'm not well-versed enough >> in the parseopt thing to be sure). I have no time now, but I'll take a >> stab at adding the -n option back tomorrow if nobody beats me to it. > > Maybe like this (completely untested, that will be your task tomorrow): > Looks like how I thought it should be. Test passed fine, both real and automated. Proper patch incoming in a minute. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] git fetch: Take '-n' to mean '--no-tags' 2008-03-13 6:50 ` Andreas Ericsson @ 2008-03-13 7:13 ` Andreas Ericsson 2008-03-13 7:30 ` Junio C Hamano 0 siblings, 1 reply; 8+ messages in thread From: Andreas Ericsson @ 2008-03-13 7:13 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Dmitry V. Levin, git From: Johannes Schindelin <johannes.schindelin@gmx.de> Prior to commit 83201998730ac5f0b95ac832f3b727da26ab0129, we understood '-n' as a short option to mean "don't fetch tags from the remote". This patch reinstates behaviour similar, but not identical to the pre commit 832019987 times. Back then, -n always overrode --tags, so if both --tags and -n was given on command-line, no tags were fetched regardless of argument ordering. Now we use a "last entry wins" strategy, so '-n --tags' means "fetch tags". Since it's patently absurd to say both --tags and --no-tags this shouldn't matter in practice. Spotted-by: Artem Zolochevskiy <azol@altlinux.org> Reported-by: Dmitry V. Levin <ldv@altlinux.org> Tested-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- Andreas Ericsson wrote: > Johannes Schindelin wrote: >> >> Maybe like this (completely untested, that will be your task tomorrow): >> > > Looks like how I thought it should be. Test passed fine, both real and > automated. Proper patch incoming in a minute. > And here it is. diff --git a/builtin-fetch.c b/builtin-fetch.c index 55f611e..b2b9935 100644 --- a/builtin-fetch.c +++ b/builtin-fetch.c @@ -40,6 +40,8 @@ static struct option builtin_fetch_options[] = { "force overwrite of local branch"), OPT_SET_INT('t', "tags", &tags, "fetch all tags and associated objects", TAGS_SET), + OPT_SET_INT('n', NULL, &tags, + "do not fetch all tags (--no-tags)", TAGS_UNSET), OPT_BOOLEAN('k', "keep", &keep, "keep downloaded pack"), OPT_BOOLEAN('u', "update-head-ok", &update_head_ok, "allow updating of HEAD ref"), -- 1.5.4.4.532.ga6828.dirty -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] git fetch: Take '-n' to mean '--no-tags' 2008-03-13 7:13 ` [PATCH] git fetch: Take '-n' to mean '--no-tags' Andreas Ericsson @ 2008-03-13 7:30 ` Junio C Hamano 0 siblings, 0 replies; 8+ messages in thread From: Junio C Hamano @ 2008-03-13 7:30 UTC (permalink / raw) To: Andreas Ericsson; +Cc: Johannes Schindelin, Dmitry V. Levin, git Very well done. Thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-03-13 7:31 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-03-12 10:51 I: git-fetch: -n option disappeared but git-fetch(1) still describe it Dmitry V. Levin 2008-03-12 14:52 ` Andreas Ericsson 2008-03-12 16:04 ` Johannes Schindelin 2008-03-12 16:06 ` Andreas Ericsson 2008-03-12 16:11 ` Johannes Schindelin 2008-03-13 6:50 ` Andreas Ericsson 2008-03-13 7:13 ` [PATCH] git fetch: Take '-n' to mean '--no-tags' Andreas Ericsson 2008-03-13 7:30 ` Junio C Hamano
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).