{"thread":{"id":"2783","subject":"[PATCH 8/17] Documentation/git-cherry-pick: Add --replay and --no-commit.","startedAt":"2005-12-08T23:28:05Z","lastAt":"2005-12-09T20:38:20Z","messageCount":12,"participants":["Nikolai Weibull","Junio C Hamano","Peter Eriksen"],"isPatch":true,"patchVersion":1,"patchTotal":17},"messages":[{"id":"13377","messageId":"11340844851758-git-send-email-mailing-lists.git@rawuncut.elitemail.org","threadId":"2783","inReplyTo":"1134084485683-git-send-email-mailing-lists.git@rawuncut.elitemail.org","subject":"[PATCH 8/17] Documentation/git-cherry-pick: Add --replay and --no-commit.","fromName":"Nikolai Weibull","fromEmail":"mailing-lists.git@rawuncut.elitemail.org","sentAt":"2005-12-08T23:28:05Z","receivedAt":"2005-12-08T23:28:05Z","isPatch":true,"sender":{"key":"mailing-lists.git@rawuncut.elitemail.org","avatar":null},"body":"Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>\n\n---\n\n Documentation/git-cherry-pick.txt |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ne0a7bc3c18f904afade2da6146aeba4c5aa68340\ndiff --git a/Documentation/git-cherry-pick.txt b/Documentation/git-cherry-pick.txt\nindex a7a883b..744f2c9 100644\n--- a/Documentation/git-cherry-pick.txt\n+++ b/Documentation/git-cherry-pick.txt\n@@ -24,7 +24,7 @@ OPTIONS\n \tWith this option, `git-cherry-pick` will let you edit the commit\n \tmessage prior committing.\n \n--r::\n+-r|--replay::\n \tUsually the command appends which commit was\n \tcherry-picked after the original commit message when\n \tmaking a commit.  This option, '--replay', causes it to\n@@ -32,7 +32,7 @@ OPTIONS\n \twhen you are reordering the patches in your private tree\n \tbefore publishing.\n \n--n::\n+-n|--no-commit::\n \tUsually the command automatically creates a commit with\n \ta commit log message stating which commit was\n \tcherry-picked.  This flag applies the change necessary\n-- \n0.99.9l\n"},{"id":"13382","messageId":"1134084485683-git-send-email-mailing-lists.git@rawuncut.elitemail.org","threadId":"2783","inReplyTo":"1134084485869-git-send-email-mailing-lists.git@rawuncut.elitemail.org","subject":"[PATCH 7/17] Documentation/git-cvsimport.txt: Fix a slight glitch in description heading.","fromName":"Nikolai Weibull","fromEmail":"mailing-lists.git@rawuncut.elitemail.org","sentAt":"2005-12-08T23:28:05Z","receivedAt":"2005-12-08T23:28:05Z","isPatch":true,"sender":{"key":"mailing-lists.git@rawuncut.elitemail.org","avatar":null},"body":"Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>\n\n---\n\n Documentation/git-cvsimport.txt |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\n98723ba21e0ffdbfc183a2b878938ab17744317d\ndiff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt\nindex 88bd3b0..f89b251 100644\n--- a/Documentation/git-cvsimport.txt\n+++ b/Documentation/git-cvsimport.txt\n@@ -60,7 +60,7 @@ the old cvs2git tool.\n +\n If you need to pass multiple options, separate them with a comma.\n \n--P:: <cvsps-output-file>\n+-P <cvsps-output-file>::\n \tInstead of calling cvsps, read the provided cvsps output file. Useful\n \tfor debugging or when cvsps is being handled outside cvsimport.\n \n-- \n0.99.9l\n"},{"id":"13386","messageId":"1134084485869-git-send-email-mailing-lists.git@rawuncut.elitemail.org","threadId":"2783","inReplyTo":"1134084485547-git-send-email-mailing-lists.git@rawuncut.elitemail.org","subject":"[PATCH 6/17] Document the [<head>...] and -- arguments to git-prune.","fromName":"Nikolai Weibull","fromEmail":"mailing-lists.git@rawuncut.elitemail.org","sentAt":"2005-12-08T23:28:05Z","receivedAt":"2005-12-08T23:28:05Z","isPatch":true,"sender":{"key":"mailing-lists.git@rawuncut.elitemail.org","avatar":null},"body":"The documentation for git-prune was lacking descriptions of the head\narguments and the -- option.\n\nSigned-off-by: Nikolai Weibull <nikolai@bitwi.se>\n\n---\n\n Documentation/git-prune.txt |   10 +++++++++-\n 1 files changed, 9 insertions(+), 1 deletions(-)\n\nb4491eee9b9e371f4c9ea65c93be998a4f37498c\ndiff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt\nindex 3367c9b..04cea76 100644\n--- a/Documentation/git-prune.txt\n+++ b/Documentation/git-prune.txt\n@@ -8,7 +8,7 @@ git-prune - Prunes all unreachable objec\n \n SYNOPSIS\n --------\n-'git-prune' [-n]\n+'git-prune' [-n] [--] [<head>...]\n \n DESCRIPTION\n -----------\n@@ -26,7 +26,15 @@ OPTIONS\n -n::\n \tDo not remove anything; just report what it would\n \tremove.\n+--::\n+\tDo not interpret any more arguments as options.\n \n+<head>...::\n+        The heads to look for unreachable objects in.  This is\n+        relative to $GIT_DIR (e.g., \"HEAD\", \"refs/heads/master\").\n+        When unspecified, all heads are updated to match the\n+        remote repository.\n+        \n \n Author\n ------\n-- \n0.99.9l\n"},{"id":"13387","messageId":"1134084485547-git-send-email-mailing-lists.git@rawuncut.elitemail.org","threadId":"2783","inReplyTo":"11340844853670-git-send-email-mailing-lists.git@rawuncut.elitemail.org","subject":"[PATCH 5/17] Documentation/git-verify-pack.txt: added documentation for --.","fromName":"Nikolai Weibull","fromEmail":"mailing-lists.git@rawuncut.elitemail.org","sentAt":"2005-12-08T23:28:05Z","receivedAt":"2005-12-08T23:28:05Z","isPatch":true,"sender":{"key":"mailing-lists.git@rawuncut.elitemail.org","avatar":null},"body":"The -- option has been added to the documentation of git-verify-pack.\n\nSigned-off-by: Nikolai Weibull <nikolai@bitwi.se>\n\n---\n\n Documentation/git-verify-pack.txt |    4 +++-\n 1 files changed, 3 insertions(+), 1 deletions(-)\n\nab7a137fa6d4629578c0d2b580189d58d556fa13\ndiff --git a/Documentation/git-verify-pack.txt b/Documentation/git-verify-pack.txt\nindex cd74ffd..d032280 100644\n--- a/Documentation/git-verify-pack.txt\n+++ b/Documentation/git-verify-pack.txt\n@@ -8,7 +8,7 @@ git-verify-pack - Validate packed git ar\n \n SYNOPSIS\n --------\n-'git-verify-pack' [-v] <pack>.idx ...\n+'git-verify-pack' [-v] [--] <pack>.idx ...\n \n \n DESCRIPTION\n@@ -25,6 +25,8 @@ OPTIONS\n -v::\n \tAfter verifying the pack, show list of objects contained\n \tin the pack.\n+--::\n+\tDo not interpret any more arguments as options.\n \n OUTPUT FORMAT\n -------------\n-- \n0.99.9l\n"},{"id":"13391","messageId":"11340844853670-git-send-email-mailing-lists.git@rawuncut.elitemail.org","threadId":"2783","inReplyTo":"11340844852030-git-send-email-mailing-lists.git@rawuncut.elitemail.org","subject":"[PATCH 4/17] Documentation/git-commit.txt: Add long options and -- to documentation.","fromName":"Nikolai Weibull","fromEmail":"mailing-lists.git@rawuncut.elitemail.org","sentAt":"2005-12-08T23:28:05Z","receivedAt":"2005-12-08T23:28:05Z","isPatch":true,"sender":{"key":"mailing-lists.git@rawuncut.elitemail.org","avatar":null},"body":"Added the following long options to documentation:\n\n* --all\n* --signoff\n* --verify\n* --no-verify\n* --edit\n\nAlso added documentation for the -- option for terminating option parsing.\n\nSigned-off-by: Nikolai Weibull <nikolai@bitwi.se>\n\n---\n\n Documentation/git-commit.txt |   18 ++++++++++++------\n 1 files changed, 12 insertions(+), 6 deletions(-)\n\nf0cc0137f124e36fd31acb8d0d543bdc84923586\ndiff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt\nindex 1edc278..b92cf48 100644\n--- a/Documentation/git-commit.txt\n+++ b/Documentation/git-commit.txt\n@@ -7,7 +7,7 @@ git-commit - Record your changes\n \n SYNOPSIS\n --------\n-'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] [-e] <file>...\n+'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] [-e] [--] <file>...\n \n DESCRIPTION\n -----------\n@@ -22,7 +22,7 @@ information.\n \n OPTIONS\n -------\n--a::\n+-a|--all::\n \tUpdate all paths in the index file.\n \n -c or -C <commit>::\n@@ -39,23 +39,29 @@ OPTIONS\n -m <msg>::\n \tUse the given <msg> as the commit message.\n \n--s::\n+-s|--signoff::\n \tAdd Signed-off-by line at the end of the commit message.\n \n--v::\n+-v|--verify::\n \tLook for suspicious lines the commit introduces, and\n \tabort committing if there is one.  The definition of\n \t'suspicious lines' is currently the lines that has\n \ttrailing whitespaces, and the lines whose indentation\n \thas a SP character immediately followed by a TAB\n-\tcharacter.\n+\tcharacter.  This is the default.\n \n--e::\n+-n|--no-verify::\n+\tThe opposite of `--verify`.\n+\n+-e|--edit::\n \tThe message taken from file with `-F`, command line with\n \t`-m`, and from file with `-C` are usually used as the\n \tcommit log message unmodified.  This option lets you\n \tfurther edit the message taken from these sources.\n \n+--::\n+\tDo not interpret any more arguments as options.\n+\n <file>...::\n \tUpdate specified paths in the index file before committing.\n \n-- \n0.99.9l\n"},{"id":"13392","messageId":"7v4q5jb149.fsf@assigned-by-dhcp.cox.net","threadId":"2783","inReplyTo":"1134084485869-git-send-email-mailing-lists.git@rawuncut.elitemail.org","subject":"Re: [PATCH 6/17] Document the [<head>...] and -- arguments to git-prune.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-12-08T23:49:42Z","receivedAt":"2005-12-08T23:49:42Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nikolai Weibull <mailing-lists.git@rawuncut.elitemail.org> writes:\n\n> The documentation for git-prune was lacking descriptions of the head\n> arguments and the -- option.\n>\n> +<head>...::\n> +        The heads to look for unreachable objects in.  This is\n> +        relative to $GIT_DIR (e.g., \"HEAD\", \"refs/heads/master\").\n> +        When unspecified, all heads are updated to match the\n> +        remote repository.\n\n? updated to match???\n\nAll others look very good.  Thanks for taking time to do this;\nvery much appreciated.\n"},{"id":"13393","messageId":"7vzmnb9m7w.fsf@assigned-by-dhcp.cox.net","threadId":"2783","inReplyTo":"7v4q5jb149.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 6/17] Document the [<head>...] and -- arguments to git-prune.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-12-08T23:56:51Z","receivedAt":"2005-12-08T23:56:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <junkio@cox.net> writes:\n\n> Nikolai Weibull <mailing-lists.git@rawuncut.elitemail.org> writes:\n>\n>> The documentation for git-prune was lacking descriptions of the head\n>> arguments and the -- option.\n>>\n>> +<head>...::\n>> +        The heads to look for unreachable objects in.  This is\n>> +        relative to $GIT_DIR (e.g., \"HEAD\", \"refs/heads/master\").\n>> +        When unspecified, all heads are updated to match the\n>> +        remote repository.\n>\n> ? updated to match???\n\nCome to think of it, why would anybody want to pass heads\nexplicitly?  It seems to me that it would allow you to _lose_\nobjects referenced only from omitted branches...\n"},{"id":"13394","messageId":"7voe3r9krf.fsf@assigned-by-dhcp.cox.net","threadId":"2783","inReplyTo":"7vzmnb9m7w.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 6/17] Document the [<head>...] and -- arguments to git-prune.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-12-09T00:28:20Z","receivedAt":"2005-12-09T00:28:20Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <junkio@cox.net> writes:\n\n> Come to think of it, why would anybody want to pass heads\n> explicitly?  It seems to me that it would allow you to _lose_\n> objects referenced only from omitted branches...\n\nNot replacing but always including our own refs may be more\ndesirable (and unarguably much safer), but at the same time I\nhave a suspicion that that might be forbidding a useful usage I\nhaven't thought of, so...\n\n---\ndiff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt\nindex 3367c9b..05c8d49 100644\n--- a/Documentation/git-prune.txt\n+++ b/Documentation/git-prune.txt\n@@ -8,7 +8,7 @@ git-prune - Prunes all unreachable objec\n \n SYNOPSIS\n --------\n-'git-prune' [-n]\n+'git-prune' [-n] [--] [<head>...]\n \n DESCRIPTION\n -----------\n@@ -27,6 +27,34 @@ OPTIONS\n \tDo not remove anything; just report what it would\n \tremove.\n \n+--::\n+\tDo not interpret any more arguments as options.\n+\n+<head>...::\n+\tInstead of keeping objects\n+\treachable from any of our references, keep objects\n+\treachable from only listed <head>s.\n++\n+Note that the explicitly named <head>s are *not* appended to the\n+default set of references, but they replace them.  In general you\n+would want to say `git prune $(git-rev-parse --all) extra1\n+extra2` to keep chains of commits leading to extra1, extra2,\n+... in addition to what are reachable from your own refs.\n+Saying `git prune extra1 extra2` would *lose* objects reachable\n+only from the usual refs, which is usually not what you want.\n+\n+\n+EXAMPLE\n+-------\n+\n+To prune objects not used by your repository and another that\n+borrows from your repository via its\n+`.git/objects/info/alternates`:\n+\n+------------\n+$ git prune $(git-rev-parse --all) \\\n+  $(cd ../another && $(git-rev-parse --all))\n+------------\n \n Author\n ------\n"},{"id":"13397","messageId":"20051209005025.GA8932@puritan.petwork","threadId":"2783","inReplyTo":"7vzmnb9m7w.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 6/17] Document the [<head>...] and -- arguments to git-prune.","fromName":"Nikolai Weibull","fromEmail":"mailing-lists.git@rawuncut.elitemail.org","sentAt":"2005-12-09T00:50:25Z","receivedAt":"2005-12-09T00:50:25Z","isPatch":true,"sender":{"key":"mailing-lists.git@rawuncut.elitemail.org","avatar":null},"body":"Junio C Hamano wrote:\n\n> Junio C Hamano <junkio@cox.net> writes:\n\n> > Nikolai Weibull <mailing-lists.git@rawuncut.elitemail.org> writes:\n\n> > > The documentation for git-prune was lacking descriptions of the head\n> > > arguments and the -- option.\n> > >\n> > > +<head>...::\n> > > +        The heads to look for unreachable objects in.  This is\n> > > +        relative to $GIT_DIR (e.g., \"HEAD\", \"refs/heads/master\").\n> > > +        When unspecified, all heads are updated to match the\n> > > +        remote repository.\n\n> > ? updated to match???\n\n> Come to think of it, why would anybody want to pass heads explicitly?\n> It seems to me that it would allow you to _lose_ objects referenced\n> only from omitted branches...\n \nSorry.  I have no idea why I pasted in that description.  How about:\n\n<head>...::\n        A head to use for an unreachability trace.\n\n(This mimics the description of <object> in git-fsck-objects.)\n\n        nikolai\n\n-- \nNikolai Weibull: now available free of charge at http://bitwi.se/!\nBorn in Chicago, IL USA; currently residing in Gothenburg, Sweden.\nmain(){printf(&linux[\"\\021%six\\012\\0\"],(linux)[\"have\"]+\"fun\"-97);}\n"},{"id":"13404","messageId":"7vmzja91gp.fsf_-_@assigned-by-dhcp.cox.net","threadId":"2783","inReplyTo":"7voe3r9krf.fsf@assigned-by-dhcp.cox.net","subject":"[RFC/PATCH] git-prune: never lose objects reachable from our refs.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-12-09T07:25:10Z","receivedAt":"2005-12-09T07:25:10Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Explicit <head> arguments to git-prune replaces, instead of\nextends, the list of heads used for reachability analysis by\nfsck-objects.  By giving a subset of heads by mistake, objects\nreachable only from other heads can be removed, resulting in a\ncorrupted repository.\n\nThis commit stops replacing the list of heads, and makes the\ncommand line arguments to add to them instead for safety.\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\n\n---\n\n * I think this is preferable in general than leaving the\n   end-user tool too sharp-edged and dangerous.\n\n Documentation/git-prune.txt |   27 +++++++++------------------\n git-prune.sh                |    6 +++++-\n 2 files changed, 14 insertions(+), 19 deletions(-)\n\n2b86976bfd6e42609692d57fffaef72bd985c23a\ndiff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt\nindex 05c8d49..f694fcb 100644\n--- a/Documentation/git-prune.txt\n+++ b/Documentation/git-prune.txt\n@@ -13,10 +13,11 @@ SYNOPSIS\n DESCRIPTION\n -----------\n \n-This runs `git-fsck-objects --unreachable` using the heads\n-specified on the command line (or `$GIT_DIR/refs/heads/\\*` and\n-`$GIT_DIR/refs/tags/\\*` if none is specified), and prunes all\n-unreachable objects from the object database.  In addition, it\n+This runs `git-fsck-objects --unreachable` using all the refs\n+available in `$GIT_DIR/refs`, optionally with additional set of\n+objects specified on the command line, and prunes all\n+objects unreachable from any of these head objects from the object database.\n+In addition, it\n prunes the unpacked objects that are also found in packs by\n running `git prune-packed`.\n \n@@ -31,29 +32,19 @@ OPTIONS\n \tDo not interpret any more arguments as options.\n \n <head>...::\n-\tInstead of keeping objects\n+\tIn addition to objects\n \treachable from any of our references, keep objects\n-\treachable from only listed <head>s.\n-+\n-Note that the explicitly named <head>s are *not* appended to the\n-default set of references, but they replace them.  In general you\n-would want to say `git prune $(git-rev-parse --all) extra1\n-extra2` to keep chains of commits leading to extra1, extra2,\n-... in addition to what are reachable from your own refs.\n-Saying `git prune extra1 extra2` would *lose* objects reachable\n-only from the usual refs, which is usually not what you want.\n-\n+\treachable from listed <head>s.\n \n EXAMPLE\n -------\n \n-To prune objects not used by your repository and another that\n+To prune objects not used by your repository nor another that\n borrows from your repository via its\n `.git/objects/info/alternates`:\n \n ------------\n-$ git prune $(git-rev-parse --all) \\\n-  $(cd ../another && $(git-rev-parse --all))\n+$ git prune $(cd ../another && $(git-rev-parse --all))\n ------------\n \n Author\ndiff --git a/git-prune.sh b/git-prune.sh\nindex 1fd8c73..7e7f0ad 100755\n--- a/git-prune.sh\n+++ b/git-prune.sh\n@@ -16,7 +16,11 @@ do\n done\n \n sync\n-git-fsck-objects --full --cache --unreachable \"$@\" |\n+case \"$#\" in\n+0) git-fsck-objects --full --cache --unreachable ;;\n+*) git-fsck-objects --full --cache --unreachable $(git-rev-parse --all) \"$@\" ;;\n+esac |\n+\n sed -ne '/unreachable /{\n     s/unreachable [^ ][^ ]* //\n     s|\\(..\\)|\\1/|p\n-- \n0.99.9.GIT\n"},{"id":"13422","messageId":"20051209193922.GA31228@ebar091.ebar.dtu.dk","threadId":"2783","inReplyTo":"7vmzja91gp.fsf_-_@assigned-by-dhcp.cox.net","subject":"Re: [RFC/PATCH] git-prune: never lose objects reachable from our refs.","fromName":"Peter Eriksen","fromEmail":"s022018@student.dtu.dk","sentAt":"2005-12-09T19:39:22Z","receivedAt":"2005-12-09T19:39:22Z","isPatch":true,"sender":{"key":"s022018@student.dtu.dk","avatar":null},"body":"On Thu, Dec 08, 2005 at 11:25:10PM -0800, Junio C Hamano wrote:\n> Explicit <head> arguments to git-prune replaces, instead of\n> extends, the list of heads used for reachability analysis by\n> fsck-objects.  By giving a subset of heads by mistake, objects\n> reachable only from other heads can be removed, resulting in a\n> corrupted repository.\n> \n> This commit stops replacing the list of heads, and makes the\n> command line arguments to add to them instead for safety.\n\nShouldn't the first sentence be \"Explicit <head> arguments to git-prune\nextends, instead of replaces,...\", that is, interchange the words \nextends and replaces?  Did I miss something?\n\nPeter\n"},{"id":"13423","messageId":"7vvexy2egz.fsf@assigned-by-dhcp.cox.net","threadId":"2783","inReplyTo":"20051209193922.GA31228@ebar091.ebar.dtu.dk","subject":"Re: [RFC/PATCH] git-prune: never lose objects reachable from our refs.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-12-09T20:38:20Z","receivedAt":"2005-12-09T20:38:20Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Peter Eriksen\" <s022018@student.dtu.dk> writes:\n\n> On Thu, Dec 08, 2005 at 11:25:10PM -0800, Junio C Hamano wrote:\n>> Explicit <head> arguments to git-prune replaces, instead of\n>> extends, the list of heads used for reachability analysis by\n>> fsck-objects.  By giving a subset of heads by mistake, objects\n>> reachable only from other heads can be removed, resulting in a\n>> corrupted repository.\n>> \n>> This commit stops replacing the list of heads, and makes the\n>> command line arguments to add to them instead for safety.\n>\n> Shouldn't the first sentence be \"Explicit <head> arguments to git-prune\n> extends, instead of replaces,...\", that is, interchange the words \n> extends and replaces?  Did I miss something?\n\nSorry, what I meant was: \"before this proposed change, it\nreplaces instead of extends --- which means DANGER.  This\nproposed change is to make things safer\".\n"}]}