{"thread":{"id":"26411","subject":"[PATCH] git pull: Remove option handling done by fetch","startedAt":"2011-02-04T20:17:00Z","lastAt":"2011-02-07T22:24:54Z","messageCount":11,"participants":["Jens Lehmann","Johannes Sixt","Junio C Hamano","Jonathan Nieder"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"160407","messageId":"4D4C5EBC.2090100@web.de","threadId":"26411","inReplyTo":null,"subject":"[PATCH] git pull: Remove option handling done by fetch","fromName":"Jens Lehmann","fromEmail":"jens.lehmann@web.de","sentAt":"2011-02-04T20:17:00Z","receivedAt":"2011-02-04T20:17:00Z","isPatch":true,"sender":{"key":"jens.lehmann@web.de","avatar":"https://avatars.githubusercontent.com/u/135220?v=4"},"body":"In commits be254a0ea9 and 7dce19d374 the handling of the new fetch options\n\"--[no-]recurse-submodules\" had been added to git-pull.sh. This was not\nnecessary because all options to \"git fetch\" are passed to it and handled\nthere, so lets remove them.\n\nSigned-off-by: Jens Lehmann <Jens.Lehmann@web.de>\n---\n\nI noticed this while implementing the on-demand recursive fetch.\n\n git-pull.sh |   10 ++--------\n 1 files changed, 2 insertions(+), 8 deletions(-)\n\ndiff --git a/git-pull.sh b/git-pull.sh\nindex eb87f49..20a3bbe 100755\n--- a/git-pull.sh\n+++ b/git-pull.sh\n@@ -38,7 +38,7 @@ test -z \"$(git ls-files -u)\" || die_conflict\n test -f \"$GIT_DIR/MERGE_HEAD\" && die_merge\n\n strategy_args= diffstat= no_commit= squash= no_ff= ff_only=\n-log_arg= verbosity= progress= recurse_submodules=\n+log_arg= verbosity= progress=\n merge_args=\n curr_branch=$(git symbolic-ref -q HEAD)\n curr_branch_short=\"${curr_branch#refs/heads/}\"\n@@ -105,12 +105,6 @@ do\n \t--no-r|--no-re|--no-reb|--no-reba|--no-rebas|--no-rebase)\n \t\trebase=false\n \t\t;;\n-\t--recurse-submodules)\n-\t\trecurse_submodules=--recurse-submodules\n-\t\t;;\n-\t--no-recurse-submodules)\n-\t\trecurse_submodules=--no-recurse-submodules\n-\t\t;;\n \t--d|--dr|--dry|--dry-|--dry-r|--dry-ru|--dry-run)\n \t\tdry_run=--dry-run\n \t\t;;\n@@ -223,7 +217,7 @@ test true = \"$rebase\" && {\n \tdone\n }\n orig_head=$(git rev-parse -q --verify HEAD)\n-git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok \"$@\" || exit 1\n+git fetch $verbosity $progress $dry_run --update-head-ok \"$@\" || exit 1\n test -z \"$dry_run\" || exit 0\n\n curr_head=$(git rev-parse -q --verify HEAD)\n-- \n1.7.4.31.g5ae186\n"},{"id":"160411","messageId":"201102042326.08607.j6t@kdbg.org","threadId":"26411","inReplyTo":"4D4C5EBC.2090100@web.de","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2011-02-04T22:26:07Z","receivedAt":"2011-02-04T22:26:07Z","isPatch":true,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"On Freitag, 4. Februar 2011, Jens Lehmann wrote:\n> In commits be254a0ea9 and 7dce19d374 the handling of the new fetch options\n> \"--[no-]recurse-submodules\" had been added to git-pull.sh. This was not\n> necessary because all options to \"git fetch\" are passed to it and handled\n> there, so lets remove them.\n>\n> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>\n> ---\n>\n> I noticed this while implementing the on-demand recursive fetch.\n>\n>  git-pull.sh |   10 ++--------\n>  1 files changed, 2 insertions(+), 8 deletions(-)\n>\n> diff --git a/git-pull.sh b/git-pull.sh\n> index eb87f49..20a3bbe 100755\n> --- a/git-pull.sh\n> +++ b/git-pull.sh\n> @@ -38,7 +38,7 @@ test -z \"$(git ls-files -u)\" || die_conflict\n>  test -f \"$GIT_DIR/MERGE_HEAD\" && die_merge\n>\n>  strategy_args= diffstat= no_commit= squash= no_ff= ff_only=\n> -log_arg= verbosity= progress= recurse_submodules=\n> +log_arg= verbosity= progress=\n>  merge_args=\n>  curr_branch=$(git symbolic-ref -q HEAD)\n>  curr_branch_short=\"${curr_branch#refs/heads/}\"\n> @@ -105,12 +105,6 @@ do\n>  \t--no-r|--no-re|--no-reb|--no-reba|--no-rebas|--no-rebase)\n>  \t\trebase=false\n>  \t\t;;\n> -\t--recurse-submodules)\n> -\t\trecurse_submodules=--recurse-submodules\n> -\t\t;;\n> -\t--no-recurse-submodules)\n> -\t\trecurse_submodules=--no-recurse-submodules\n> -\t\t;;\n>  \t--d|--dr|--dry|--dry-|--dry-r|--dry-ru|--dry-run)\n>  \t\tdry_run=--dry-run\n>  \t\t;;\n> @@ -223,7 +217,7 @@ test true = \"$rebase\" && {\n>  \tdone\n>  }\n>  orig_head=$(git rev-parse -q --verify HEAD)\n>  -git fetch $verbosity $progress $dry_run $recurse_submodules \n> --update-head-ok \"$@\" || exit 1\n>> +git fetch $verbosity $progress $dry_run \n> --update-head-ok \"$@\" || exit 1 test -z \"$dry_run\" || exit 0\n>\n>  curr_head=$(git rev-parse -q --verify HEAD)\n\nHuh? What will, for example,\n\n   git pull --recurse-submodules --no-ff origin\n\ndo before and after your patch? Doesn't your patch force users to \nwrite --[no-]recurse-submodules last?\n\n-- Hannes\n"},{"id":"160437","messageId":"4D4D33E7.4000303@web.de","threadId":"26411","inReplyTo":"201102042326.08607.j6t@kdbg.org","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Jens Lehmann","fromEmail":"jens.lehmann@web.de","sentAt":"2011-02-05T11:26:31Z","receivedAt":"2011-02-05T11:26:31Z","isPatch":true,"sender":{"key":"jens.lehmann@web.de","avatar":"https://avatars.githubusercontent.com/u/135220?v=4"},"body":"Am 04.02.2011 23:26, schrieb Johannes Sixt:\n> On Freitag, 4. Februar 2011, Jens Lehmann wrote:\n>> In commits be254a0ea9 and 7dce19d374 the handling of the new fetch options\n>> \"--[no-]recurse-submodules\" had been added to git-pull.sh. This was not\n>> necessary because all options to \"git fetch\" are passed to it and handled\n>> there, so lets remove them.\n>>\n>> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>\n>> ---\n>>\n>> I noticed this while implementing the on-demand recursive fetch.\n>>\n>>  git-pull.sh |   10 ++--------\n>>  1 files changed, 2 insertions(+), 8 deletions(-)\n>>\n>> diff --git a/git-pull.sh b/git-pull.sh\n>> index eb87f49..20a3bbe 100755\n>> --- a/git-pull.sh\n>> +++ b/git-pull.sh\n>> @@ -38,7 +38,7 @@ test -z \"$(git ls-files -u)\" || die_conflict\n>>  test -f \"$GIT_DIR/MERGE_HEAD\" && die_merge\n>>\n>>  strategy_args= diffstat= no_commit= squash= no_ff= ff_only=\n>> -log_arg= verbosity= progress= recurse_submodules=\n>> +log_arg= verbosity= progress=\n>>  merge_args=\n>>  curr_branch=$(git symbolic-ref -q HEAD)\n>>  curr_branch_short=\"${curr_branch#refs/heads/}\"\n>> @@ -105,12 +105,6 @@ do\n>>  \t--no-r|--no-re|--no-reb|--no-reba|--no-rebas|--no-rebase)\n>>  \t\trebase=false\n>>  \t\t;;\n>> -\t--recurse-submodules)\n>> -\t\trecurse_submodules=--recurse-submodules\n>> -\t\t;;\n>> -\t--no-recurse-submodules)\n>> -\t\trecurse_submodules=--no-recurse-submodules\n>> -\t\t;;\n>>  \t--d|--dr|--dry|--dry-|--dry-r|--dry-ru|--dry-run)\n>>  \t\tdry_run=--dry-run\n>>  \t\t;;\n>> @@ -223,7 +217,7 @@ test true = \"$rebase\" && {\n>>  \tdone\n>>  }\n>>  orig_head=$(git rev-parse -q --verify HEAD)\n>>  -git fetch $verbosity $progress $dry_run $recurse_submodules \n>> --update-head-ok \"$@\" || exit 1\n>>> +git fetch $verbosity $progress $dry_run \n>> --update-head-ok \"$@\" || exit 1 test -z \"$dry_run\" || exit 0\n>>\n>>  curr_head=$(git rev-parse -q --verify HEAD)\n> \n> Huh? What will, for example,\n> \n>    git pull --recurse-submodules --no-ff origin\n> \n> do before and after your patch? Doesn't your patch force users to \n> write --[no-]recurse-submodules last?\n\nYes, but isn't that exactly what the pull man-page says? Quote:\n\"Options meant for git pull itself and the underlying git merge\nmust be given before the options meant for git fetch.\"\n(The reason I added this option handling in the first place was\nthat I hadn't been aware of this at that time either ... ;-)\n\nThanks for your review!\n"},{"id":"160548","messageId":"7vipwwx56r.fsf@alter.siamese.dyndns.org","threadId":"26411","inReplyTo":"4D4D33E7.4000303@web.de","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-06T20:45:48Z","receivedAt":"2011-02-06T20:45:48Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jens Lehmann <Jens.Lehmann@web.de> writes:\n\n> Yes, but isn't that exactly what the pull man-page says? Quote:\n> \"Options meant for git pull itself and the underlying git merge\n> must be given before the options meant for git fetch.\"\n\nYes, it says that, and I think that was a weasely way to say \"the command\nline parser in git-pull is broken\".  The lines you are removing was from\nthe patch that fixed that breakage, aren't they?\n"},{"id":"160552","messageId":"4D4F19D0.2000408@web.de","threadId":"26411","inReplyTo":"7vipwwx56r.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Jens Lehmann","fromEmail":"jens.lehmann@web.de","sentAt":"2011-02-06T21:59:44Z","receivedAt":"2011-02-06T21:59:44Z","isPatch":true,"sender":{"key":"jens.lehmann@web.de","avatar":"https://avatars.githubusercontent.com/u/135220?v=4"},"body":"Am 06.02.2011 21:45, schrieb Junio C Hamano:\n> Jens Lehmann <Jens.Lehmann@web.de> writes:\n> \n>> Yes, but isn't that exactly what the pull man-page says? Quote:\n>> \"Options meant for git pull itself and the underlying git merge\n>> must be given before the options meant for git fetch.\"\n> \n> Yes, it says that, and I think that was a weasely way to say \"the command\n> line parser in git-pull is broken\".  The lines you are removing was from\n> the patch that fixed that breakage, aren't they?\n\nNope, they were from the patch where I taught \"git fetch\" the\n\"--recurse-submodules\" option and was not aware at that time that\n\"git pull\" should just pass on almost all fetch options (the only\nexceptions to that rule being -q, -v, -n and --progress). The thing\nI had in mind was to later pass the same \"--recurse-submodules\"\noption to the merge command too (when I finished implementing that\noption). But when I understood later that pull handles the fetch\noptions in an interesting way I noticed that it would depend on the\norder of options given if the \"--recurse-submodules\" would then be\npassed to both fetch and merge or just to fetch, which will lead to\nan interesting and unintuitive behavior I was not eager to expose.\n\nSo yes, I hit the strangeness of the \"git pull\" option parsing, but\ndecided to not mess it up further by adding another option to the\nones it does handle differently but play by the rules which are\nused now (The other possibility would have been to document it\nas a new option to \"git pull\", but that would have lead to the\nproblem I described earlier when merge will learn that option too).\n\nSo I have no strong feelings about this patch but believe it is the\nright thing to do as long as \"git pull\" handles its options the way\nit does. But looking at the confusion that option handling caused\nI think it might be a worthwhile idea to overhaul it.\n\n(CCed Jonathan, as he is the author of the lines I quoted)\n"},{"id":"160554","messageId":"20110206220939.GC17210@elie","threadId":"26411","inReplyTo":"4D4F19D0.2000408@web.de","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-02-06T22:09:39Z","receivedAt":"2011-02-06T22:09:39Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Jens Lehmann wrote:\n> Am 06.02.2011 21:45, schrieb Junio C Hamano:\n>> Jens Lehmann <Jens.Lehmann@web.de> writes:\n\n>>> Yes, but isn't that exactly what the pull man-page says? Quote:\n>>> \"Options meant for git pull itself and the underlying git merge\n>>> must be given before the options meant for git fetch.\"\n>> \n>> Yes, it says that, and I think that was a weasely way to say \"the command\n>> line parser in git-pull is broken\".\n[...]\n> (CCed Jonathan, as he is the author of the lines I quoted)\n\nThey're from Junio. :)  See v1.5.4.5~26 (git-pull documentation: warn\nabout the option order, 2008-03-10).\n\nI also agree that (1) it would be very nice to find a way to fix this\nand (2) until then, it seems best as a general principle not to\nregress in those odd cases where we sort of fixed it.\n\nIn other words, if we were adding --recurse-submodules today, I'd\nagree that it should be treated like other fetch options, but we\nalready added the option and some people/scripts might be used to\nthe added flexibility, no?\n"},{"id":"160557","messageId":"4D4F273C.8030003@web.de","threadId":"26411","inReplyTo":"20110206220939.GC17210@elie","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Jens Lehmann","fromEmail":"jens.lehmann@web.de","sentAt":"2011-02-06T22:57:00Z","receivedAt":"2011-02-06T22:57:00Z","isPatch":true,"sender":{"key":"jens.lehmann@web.de","avatar":"https://avatars.githubusercontent.com/u/135220?v=4"},"body":"Am 06.02.2011 23:09, schrieb Jonathan Nieder:\n> Jens Lehmann wrote:\n>> Am 06.02.2011 21:45, schrieb Junio C Hamano:\n>>> Jens Lehmann <Jens.Lehmann@web.de> writes:\n> \n>>>> Yes, but isn't that exactly what the pull man-page says? Quote:\n>>>> \"Options meant for git pull itself and the underlying git merge\n>>>> must be given before the options meant for git fetch.\"\n>>>\n>>> Yes, it says that, and I think that was a weasely way to say \"the command\n>>> line parser in git-pull is broken\".\n> [...]\n>> (CCed Jonathan, as he is the author of the lines I quoted)\n> \n> They're from Junio. :)  See v1.5.4.5~26 (git-pull documentation: warn\n> about the option order, 2008-03-10).\n\nAnd I thought I could trust \"git blame -M -C\" ... ;-)\n\n> I also agree that (1) it would be very nice to find a way to fix this\n> and (2) until then, it seems best as a general principle not to\n> regress in those odd cases where we sort of fixed it.\n> \n> In other words, if we were adding --recurse-submodules today, I'd\n> agree that it should be treated like other fetch options, but we\n> already added the option and some people/scripts might be used to\n> the added flexibility, no?\n\nOk, even though that option was added only two months ago, somebody\ncould already use it. So that leaves option two:\n\n1) Drop the patch I proposed\n\n2) Document \"--[no-]recurse-submodules\" as \" as \"git pull\" options\n\n(And then I can later pass the same option to \"git merge\", which is\nmuch better than the solutions I came up with ;-)\n\nMaybe something like this?\n\n-------------8<--------------\nSubject: [PATCH] pull: Document the \"--[no-]recurse-submodules\" options\n\nIn commits be254a0ea9 and 7dce19d374 the handling of the new fetch options\n\"--[no-]recurse-submodules\" had been added to git-pull.sh. But they were\nnot documented as the pull options they now are, so let's fix that.\n\nSigned-off-by: Jens Lehmann <Jens.Lehmann@web.de>\n---\n Documentation/fetch-options.txt |    2 +-\n Documentation/git-pull.txt      |    4 ++++\n 2 files changed, 5 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt\nindex 695696d..ab0dbfc 100644\n--- a/Documentation/fetch-options.txt\n+++ b/Documentation/fetch-options.txt\n@@ -64,11 +64,11 @@ ifndef::git-pull[]\n \tdownloaded. The default behavior for a remote may be\n \tspecified with the remote.<name>.tagopt setting. See\n \tlinkgit:git-config[1].\n-endif::git-pull[]\n\n --[no-]recurse-submodules::\n \tThis option controls if new commits of all populated submodules should\n \tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n+endif::git-pull[]\n\n ifndef::git-pull[]\n --submodule-prefix=<path>::\ndiff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt\nindex 3046691..7d0f601 100644\n--- a/Documentation/git-pull.txt\n+++ b/Documentation/git-pull.txt\n@@ -84,6 +84,10 @@ must be given before the options meant for 'git fetch'.\n --verbose::\n \tPass --verbose to git-fetch and git-merge.\n\n+--[no-]recurse-submodules::\n+\tThis option controls if new commits of all populated submodules should\n+\tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n+\n Options related to merging\n ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n-- \n1.7.4.31.g5ae186.dirty\n"},{"id":"160587","messageId":"20110207074157.GA2736@elie","threadId":"26411","inReplyTo":"4D4F273C.8030003@web.de","subject":"Re: [PATCH] git pull: Remove option handling done by fetch","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-02-07T07:41:57Z","receivedAt":"2011-02-07T07:41:57Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Jens Lehmann wrote:\n\n> 2) Document \"--[no-]recurse-submodules\" as \" as \"git pull\" options\n>\n> (And then I can later pass the same option to \"git merge\", which is\n> much better than the solutions I came up with ;-)\n\nHmm. :)\n\n[...]\n> --- a/Documentation/git-pull.txt\n> +++ b/Documentation/git-pull.txt\n> @@ -84,6 +84,10 @@ must be given before the options meant for 'git fetch'.\n>  --verbose::\n>  \tPass --verbose to git-fetch and git-merge.\n> \n> +--[no-]recurse-submodules::\n> +\tThis option controls if new commits of all populated submodules should\n> +\tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n> +\n\nIs it worth mentioning that this does not (yet) automatically check\nout the new commits in submodules after a merge, or would such\ndocumentation be too likely to be forgotten and left stale in the\nfuture?\n"},{"id":"160620","messageId":"4D5047BD.6030304@web.de","threadId":"26411","inReplyTo":"20110207074157.GA2736@elie","subject":"[PATCH v2] pull: Document the \"--[no-]recurse-submodules\" options","fromName":"Jens Lehmann","fromEmail":"jens.lehmann@web.de","sentAt":"2011-02-07T19:27:57Z","receivedAt":"2011-02-07T19:27:57Z","isPatch":true,"sender":{"key":"jens.lehmann@web.de","avatar":"https://avatars.githubusercontent.com/u/135220?v=4"},"body":"In commits be254a0ea9 and 7dce19d374 the handling of the new fetch options\n\"--[no-]recurse-submodules\" had been added to git-pull.sh. But they were\nnot documented as the pull options they now are, so let's fix that.\n\nSigned-off-by: Jens Lehmann <Jens.Lehmann@web.de>\n---\n\nAm 07.02.2011 08:41, schrieb Jonathan Nieder:\n> Jens Lehmann wrote:\n>> --- a/Documentation/git-pull.txt\n>> +++ b/Documentation/git-pull.txt\n>> @@ -84,6 +84,10 @@ must be given before the options meant for 'git fetch'.\n>>  --verbose::\n>>  \tPass --verbose to git-fetch and git-merge.\n>>\n>> +--[no-]recurse-submodules::\n>> +\tThis option controls if new commits of all populated submodules should\n>> +\tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n>> +\n> \n> Is it worth mentioning that this does not (yet) automatically check\n> out the new commits in submodules after a merge, or would such\n> documentation be too likely to be forgotten and left stale in the\n> future?\n\nGood point, here is v2! (And I will add an updated description to the\nrelevant commits in my github repo, so we won't forget that later)\n\n Documentation/fetch-options.txt |    2 +-\n Documentation/git-pull.txt      |    9 +++++++++\n 2 files changed, 10 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt\nindex 695696d..ab0dbfc 100644\n--- a/Documentation/fetch-options.txt\n+++ b/Documentation/fetch-options.txt\n@@ -64,11 +64,11 @@ ifndef::git-pull[]\n \tdownloaded. The default behavior for a remote may be\n \tspecified with the remote.<name>.tagopt setting. See\n \tlinkgit:git-config[1].\n-endif::git-pull[]\n\n --[no-]recurse-submodules::\n \tThis option controls if new commits of all populated submodules should\n \tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n+endif::git-pull[]\n\n ifndef::git-pull[]\n --submodule-prefix=<path>::\ndiff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt\nindex 3046691..b33e6be 100644\n--- a/Documentation/git-pull.txt\n+++ b/Documentation/git-pull.txt\n@@ -84,6 +84,15 @@ must be given before the options meant for 'git fetch'.\n --verbose::\n \tPass --verbose to git-fetch and git-merge.\n\n+--[no-]recurse-submodules::\n+\tThis option controls if new commits of all populated submodules should\n+\tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n+\tThat might be necessary to get the data needed for merging submodule\n+\tcommits, a feature git learned in 1.7.3. Notice that the result of a\n+\tmerge will not be checked out in the submodule, \"git submodule update\"\n+\thas to be called afterwards to bring the work tree up to date with the\n+\tmerge result.\n+\n Options related to merging\n ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n-- \n1.7.4.47.g87a200\n"},{"id":"160647","messageId":"7vsjvzttbs.fsf@alter.siamese.dyndns.org","threadId":"26411","inReplyTo":"4D5047BD.6030304@web.de","subject":"Re: [PATCH v2] pull: Document the \"--[no-]recurse-submodules\" options","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-02-07T21:42:31Z","receivedAt":"2011-02-07T21:42:31Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jens Lehmann <Jens.Lehmann@web.de> writes:\n\n> diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt\n> index 695696d..ab0dbfc 100644\n> --- a/Documentation/fetch-options.txt\n> +++ b/Documentation/fetch-options.txt\n> @@ -64,11 +64,11 @@ ifndef::git-pull[]\n>  \tdownloaded. The default behavior for a remote may be\n>  \tspecified with the remote.<name>.tagopt setting. See\n>  \tlinkgit:git-config[1].\n> -endif::git-pull[]\n>\n>  --[no-]recurse-submodules::\n>  \tThis option controls if new commits of all populated submodules should\n>  \tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n> +endif::git-pull[]\n>\n>  ifndef::git-pull[]\n>  --submodule-prefix=<path>::\n\nHmph, why not enclose the three of them inside a single ifndef here?\n\n> diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt\n> index 3046691..b33e6be 100644\n> --- a/Documentation/git-pull.txt\n> +++ b/Documentation/git-pull.txt\n> @@ -84,6 +84,15 @@ must be given before the options meant for 'git fetch'.\n>  --verbose::\n>  \tPass --verbose to git-fetch and git-merge.\n>\n> +--[no-]recurse-submodules::\n> +\tThis option controls if new commits of all populated submodules should\n> +\tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n> +\tThat might be necessary to get the data needed for merging submodule\n> +\tcommits, a feature git learned in 1.7.3. Notice that the result of a\n> +\tmerge will not be checked out in the submodule, \"git submodule update\"\n> +\thas to be called afterwards to bring the work tree up to date with the\n> +\tmerge result.\n\nOk.\n"},{"id":"160652","messageId":"4D507136.2030505@web.de","threadId":"26411","inReplyTo":"7vsjvzttbs.fsf@alter.siamese.dyndns.org","subject":"[PATCH v3] pull: Document the \"--[no-]recurse-submodules\" options","fromName":"Jens Lehmann","fromEmail":"jens.lehmann@web.de","sentAt":"2011-02-07T22:24:54Z","receivedAt":"2011-02-07T22:24:54Z","isPatch":true,"sender":{"key":"jens.lehmann@web.de","avatar":"https://avatars.githubusercontent.com/u/135220?v=4"},"body":"In commits be254a0ea9 and 7dce19d374 the handling of the new fetch options\n\"--[no-]recurse-submodules\" had been added to git-pull.sh. But they were\nnot documented as the pull options they now are, so let's fix that.\n\nSigned-off-by: Jens Lehmann <Jens.Lehmann@web.de>\n---\n\nAm 07.02.2011 22:42, schrieb Junio C Hamano:\n> Hmph, why not enclose the three of them inside a single ifndef here?\n\nSure!\n\n Documentation/fetch-options.txt |    2 --\n Documentation/git-pull.txt      |    9 +++++++++\n 2 files changed, 9 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt\nindex 695696d..f37276e 100644\n--- a/Documentation/fetch-options.txt\n+++ b/Documentation/fetch-options.txt\n@@ -64,13 +64,11 @@ ifndef::git-pull[]\n \tdownloaded. The default behavior for a remote may be\n \tspecified with the remote.<name>.tagopt setting. See\n \tlinkgit:git-config[1].\n-endif::git-pull[]\n\n --[no-]recurse-submodules::\n \tThis option controls if new commits of all populated submodules should\n \tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n\n-ifndef::git-pull[]\n --submodule-prefix=<path>::\n \tPrepend <path> to paths printed in informative messages\n \tsuch as \"Fetching submodule foo\".  This option is used\ndiff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt\nindex 3046691..b33e6be 100644\n--- a/Documentation/git-pull.txt\n+++ b/Documentation/git-pull.txt\n@@ -84,6 +84,15 @@ must be given before the options meant for 'git fetch'.\n --verbose::\n \tPass --verbose to git-fetch and git-merge.\n\n+--[no-]recurse-submodules::\n+\tThis option controls if new commits of all populated submodules should\n+\tbe fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).\n+\tThat might be necessary to get the data needed for merging submodule\n+\tcommits, a feature git learned in 1.7.3. Notice that the result of a\n+\tmerge will not be checked out in the submodule, \"git submodule update\"\n+\thas to be called afterwards to bring the work tree up to date with the\n+\tmerge result.\n+\n Options related to merging\n ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n-- \n1.7.4.47.g87a200\n"}]}