{"thread":{"id":"5761","subject":"[PATCH 0/5] fetch & co: misc output cleanup","startedAt":"2006-09-29T18:05:01Z","lastAt":"2006-09-30T10:37:44Z","messageCount":12,"participants":["Santi Béjar","A Large Angry SCM","Santi","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":5},"messages":[{"id":"28001","messageId":"87r6xu1rci.fsf@gmail.com","threadId":"5761","inReplyTo":null,"subject":"[PATCH 0/5] fetch & co: misc output cleanup","fromName":"Santi Béjar","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T18:05:01Z","receivedAt":"2006-09-29T18:05:01Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"Hi *,\n\nthis patchset includes:\n\n      fetch: Reset remote refs list each time fetch_main is called\n      fetch & co: Use \"hash1..hash2\" instead of \"from hash1 to hash2\"\n      fetch & co: Use short sha1 in the output\n      fetch: Add output for the not fast forward case\n      fetch: Clean output\n\nThe first one is actually a bugfix (at least for me), but needed for the\nlast one.\n\n git-fetch.sh   |   19 ++++++++++++++-----\n git-merge.sh   |    2 +-\n git-resolve.sh |    2 +-\n 3 files changed, 16 insertions(+), 7 deletions(-)\n"},{"id":"28002","messageId":"87mz8i1rbf.fsf@gmail.com","threadId":"5761","inReplyTo":"87r6xu1rci.fsf@gmail.com","subject":"[PATCH 1/5] fetch: Reset remote refs list each time fetch_main is called","fromName":"Santi Béjar","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T18:05:40Z","receivedAt":"2006-09-29T18:05:40Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"\nThis prevents the fetch of the heads again in the second call of fetch_main.\n\nSigned-off-by: Santi Béjar <sbejar@gmail.com>\n---\n git-fetch.sh |    1 +\n 1 files changed, 1 insertions(+), 0 deletions(-)\n\ndiff --git a/git-fetch.sh b/git-fetch.sh\nindex bcc67ab..f1522bd 100755\n--- a/git-fetch.sh\n+++ b/git-fetch.sh\n@@ -257,6 +257,7 @@ fi\n fetch_main () {\n   reflist=\"$1\"\n   refs=\n+  rref=\n \n   for ref in $reflist\n   do\n-- \n1.4.2.1.g38049\n"},{"id":"28003","messageId":"87irj61rag.fsf@gmail.com","threadId":"5761","inReplyTo":"87r6xu1rci.fsf@gmail.com","subject":"[PATCH 2/5] fetch & co: Use \"hash1..hash2\" instead of \"from hash1 to hash2\"","fromName":"Santi Béjar","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T18:06:15Z","receivedAt":"2006-09-29T18:06:15Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"\nI find it shorter, easier to copy&paste and cleaner.\n\nSigned-off-by: Santi Béjar <sbejar@gmail.com>\n---\n git-fetch.sh   |    2 +-\n git-merge.sh   |    2 +-\n git-resolve.sh |    2 +-\n 3 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/git-fetch.sh b/git-fetch.sh\nindex f1522bd..08d86cd 100755\n--- a/git-fetch.sh\n+++ b/git-fetch.sh\n@@ -182,7 +182,7 @@ fast_forward_local () {\n \t\t;;\n \t    *,$local)\n \t\techo >&2 \"* $1: fast forward to $3\"\n-\t\techo >&2 \"  from $local to $2\"\n+\t\techo >&2 \"  $local..$2\"\n \t\tgit-update-ref -m \"$rloga: fast-forward\" \"$1\" \"$2\" \"$local\"\n \t\t;;\n \t    *)\ndiff --git a/git-merge.sh b/git-merge.sh\nindex 5b34b4d..fd587c5 100755\n--- a/git-merge.sh\n+++ b/git-merge.sh\n@@ -197,7 +197,7 @@ f,*)\n \t;;\n ?,1,\"$head\",*)\n \t# Again the most common case of merging one remote.\n-\techo \"Updating from $head to $1\"\n+\techo \"Updating $head..$1\"\n \tgit-update-index --refresh 2>/dev/null\n \tnew_head=$(git-rev-parse --verify \"$1^0\") &&\n \tgit-read-tree -u -v -m $head \"$new_head\" &&\ndiff --git a/git-resolve.sh b/git-resolve.sh\nindex 729ec65..6e4fb02 100755\n--- a/git-resolve.sh\n+++ b/git-resolve.sh\n@@ -46,7 +46,7 @@ case \"$common\" in\n \texit 0\n \t;;\n \"$head\")\n-\techo \"Updating from $head to $merge\"\n+\techo \"Updating $head..$merge\"\n \tgit-read-tree -u -m $head $merge || exit 1\n \tgit-update-ref -m \"resolve $merge_name: Fast forward\" \\\n \t\tHEAD \"$merge\" \"$head\"\n-- \n1.4.2.1.g38049\n"},{"id":"28004","messageId":"87ejtu1r9r.fsf@gmail.com","threadId":"5761","inReplyTo":"87r6xu1rci.fsf@gmail.com","subject":"[PATCH 3/5] fetch & co: Use short sha1 in the output","fromName":"Santi Béjar","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T18:06:40Z","receivedAt":"2006-09-29T18:06:40Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"\n... for brevity.\n\nSigned-off-by: Santi Béjar <sbejar@gmail.com>\n---\n git-fetch.sh   |    6 +++---\n git-merge.sh   |    2 +-\n git-resolve.sh |    2 +-\n 3 files changed, 5 insertions(+), 5 deletions(-)\n\ndiff --git a/git-fetch.sh b/git-fetch.sh\nindex 08d86cd..32553f8 100755\n--- a/git-fetch.sh\n+++ b/git-fetch.sh\n@@ -129,11 +129,11 @@ append_fetch_head () {\n     then\n \theadc_=$(git-rev-parse --verify \"$head_^0\") || exit\n \techo \"$headc_\t$not_for_merge_\t$note_\" >>\"$GIT_DIR/FETCH_HEAD\"\n-\t[ \"$verbose\" ] && echo >&2 \"* committish: $head_\"\n+\t[ \"$verbose\" ] && echo >&2 \"* committish: $(git-rev-parse --short $head_)\"\n \t[ \"$verbose\" ] && echo >&2 \"  $note_\"\n     else\n \techo \"$head_\tnot-for-merge\t$note_\" >>\"$GIT_DIR/FETCH_HEAD\"\n-\t[ \"$verbose\" ] && echo >&2 \"* non-commit: $head_\"\n+\t[ \"$verbose\" ] && echo >&2 \"* non-commit: $(git-rev-parse --short $head_)\"\n \t[ \"$verbose\" ] && echo >&2 \"  $note_\"\n     fi\n     if test \"$local_name_\" != \"\"\n@@ -182,7 +182,7 @@ fast_forward_local () {\n \t\t;;\n \t    *,$local)\n \t\techo >&2 \"* $1: fast forward to $3\"\n-\t\techo >&2 \"  $local..$2\"\n+\t\techo >&2 \"  $(git-rev-parse --short $local)..$(git-rev-parse --short $2)\"\n \t\tgit-update-ref -m \"$rloga: fast-forward\" \"$1\" \"$2\" \"$local\"\n \t\t;;\n \t    *)\ndiff --git a/git-merge.sh b/git-merge.sh\nindex fd587c5..49c46d5 100755\n--- a/git-merge.sh\n+++ b/git-merge.sh\n@@ -197,7 +197,7 @@ f,*)\n \t;;\n ?,1,\"$head\",*)\n \t# Again the most common case of merging one remote.\n-\techo \"Updating $head..$1\"\n+\techo \"Updating $(git-rev-parse --short $head)..$(git-rev-parse --short $1)\"\n \tgit-update-index --refresh 2>/dev/null\n \tnew_head=$(git-rev-parse --verify \"$1^0\") &&\n \tgit-read-tree -u -v -m $head \"$new_head\" &&\ndiff --git a/git-resolve.sh b/git-resolve.sh\nindex 6e4fb02..36b90e3 100755\n--- a/git-resolve.sh\n+++ b/git-resolve.sh\n@@ -46,7 +46,7 @@ case \"$common\" in\n \texit 0\n \t;;\n \"$head\")\n-\techo \"Updating $head..$merge\"\n+\techo \"Updating $(git-rev-parse --short $head)..$(git-rev-parse --short $merge)\"\n \tgit-read-tree -u -m $head $merge || exit 1\n \tgit-update-ref -m \"resolve $merge_name: Fast forward\" \\\n \t\tHEAD \"$merge\" \"$head\"\n-- \n1.4.2.1.g38049\n"},{"id":"28005","messageId":"87ac4i1r8o.fsf@gmail.com","threadId":"5761","inReplyTo":"87r6xu1rci.fsf@gmail.com","subject":"[PATCH 4/5] fetch: Add output for the not fast forward case","fromName":"Santi Béjar","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T18:07:19Z","receivedAt":"2006-09-29T18:07:19Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"\nUse the ... notation to be able to use this directly in \"git log\" to see\nhow the two non-fast-forward heads have diverged.\n\nSigned-off-by: Santi Béjar <sbejar@gmail.com>\n---\n git-fetch.sh |    1 +\n 1 files changed, 1 insertions(+), 0 deletions(-)\n\ndiff --git a/git-fetch.sh b/git-fetch.sh\nindex 32553f8..ee4f5bd 100755\n--- a/git-fetch.sh\n+++ b/git-fetch.sh\n@@ -190,6 +190,7 @@ fast_forward_local () {\n \t\t;;\n \t    esac || {\n \t\techo >&2 \"* $1: does not fast forward to $3;\"\n+\t\techo >&2 \"  $(git-rev-parse --short $local)...$(git-rev-parse --short $2)\"\n \t\tcase \",$force,$single_force,\" in\n \t\t*,t,*)\n \t\t\techo >&2 \"  forcing update.\"\n-- \n1.4.2.1.g38049\n"},{"id":"28006","messageId":"8764f61r74.fsf@gmail.com","threadId":"5761","inReplyTo":"87r6xu1rci.fsf@gmail.com","subject":"[PATCH 5/5] fetch: Clean output","fromName":"Santi Béjar","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T18:08:15Z","receivedAt":"2006-09-29T18:08:15Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"\nDo not show duplicated remote branch information and reformat the output as:\n\n$ git fetch -v   # the committish lines for the -v.\n* refs/heads/origin: fast forward to remote branch 'master' of ../git/\n  1ad7a06..bc1a580\n  committish: bc1a580\n* refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/;\n  7c733a8...5faa935\n  not updating.\n  forcing update.\n  committish: 5faa935\n* refs/heads/next: same as remote branch 'origin/next' of ../git/\n  committish: ce47b9f\n...\n* refs/tags/v1.4.2-rc4: storing tag 'v1.4.2-rc4' of ../git/\n  committish: 8c7a107\n\n$ git fetch -v origin refs/heads/master\n* committish: 695dffe\n  branch 'master' of ../git/\n\nSigned-off-by: Santi Béjar <sbejar@gmail.com>\n---\n git-fetch.sh |   15 +++++++++++----\n 1 files changed, 11 insertions(+), 4 deletions(-)\n\ndiff --git a/git-fetch.sh b/git-fetch.sh\nindex ee4f5bd..cc71612 100755\n--- a/git-fetch.sh\n+++ b/git-fetch.sh\n@@ -129,19 +129,26 @@ append_fetch_head () {\n     then\n \theadc_=$(git-rev-parse --verify \"$head_^0\") || exit\n \techo \"$headc_\t$not_for_merge_\t$note_\" >>\"$GIT_DIR/FETCH_HEAD\"\n-\t[ \"$verbose\" ] && echo >&2 \"* committish: $(git-rev-parse --short $head_)\"\n-\t[ \"$verbose\" ] && echo >&2 \"  $note_\"\n+\tcommittish=committish\n     else\n \techo \"$head_\tnot-for-merge\t$note_\" >>\"$GIT_DIR/FETCH_HEAD\"\n-\t[ \"$verbose\" ] && echo >&2 \"* non-commit: $(git-rev-parse --short $head_)\"\n-\t[ \"$verbose\" ] && echo >&2 \"  $note_\"\n+\tcommittish=non-commit\n     fi\n+    star_prefix=\"*\"\n     if test \"$local_name_\" != \"\"\n     then\n \t# We are storing the head locally.  Make sure that it is\n \t# a fast forward (aka \"reverse push\").\n \tfast_forward_local \"$local_name_\" \"$head_\" \"$note_\"\n+\texit=$?\n+\tstar_prefix=\" \"\n     fi\n+    if test \"$verbose\"\n+    then\n+\techo >&2 \"$star_prefix $committish: $(git-rev-parse --short $head_)\"\n+\t[ -z \"$local_name_\" ] && echo >&2 \"  $note_\"\n+    fi\n+    return ${exit:-0}\n }\n \n fast_forward_local () {\n-- \n1.4.2.1.g38049\n"},{"id":"28008","messageId":"451D6BDB.50900@gmail.com","threadId":"5761","inReplyTo":"87r6xu1rci.fsf@gmail.com","subject":"Re: [PATCH 0/5] fetch & co: misc output cleanup","fromName":"A Large Angry SCM","fromEmail":"gitzilla@gmail.com","sentAt":"2006-09-29T18:54:19Z","receivedAt":"2006-09-29T18:54:19Z","isPatch":true,"sender":{"key":"gitzilla@gmail.com","avatar":"https://gravatar.com/avatar/354625c442439908ff3dd99757dee330e29e9df7847472384faf7a00add247fb?d=mp&s=160"},"body":"Santi Béjar wrote:\n> this patchset includes:\n> \n>       fetch: Reset remote refs list each time fetch_main is called\n>       fetch & co: Use \"hash1..hash2\" instead of \"from hash1 to hash2\"\n>       fetch & co: Use short sha1 in the output\n>       fetch: Add output for the not fast forward case\n>       fetch: Clean output\n\nPlease do not make short ID output the default. That is, unless you can \nsomehow guarantee that the short ID reported today will _always_ be \nunambiguous even with future additions to the repository.\n"},{"id":"28013","messageId":"8aa486160609291348m411932aqfd1049c96ed624df@mail.gmail.com","threadId":"5761","inReplyTo":"451D6BDB.50900@gmail.com","subject":"Re: [PATCH 0/5] fetch & co: misc output cleanup","fromName":"Santi","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-29T20:48:17Z","receivedAt":"2006-09-29T20:48:17Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"2006/9/29, A Large Angry SCM <gitzilla@gmail.com>:\n> Santi Béjar wrote:\n> > this patchset includes:\n> >\n> >       fetch: Reset remote refs list each time fetch_main is called\n> >       fetch & co: Use \"hash1..hash2\" instead of \"from hash1 to hash2\"\n> >       fetch & co: Use short sha1 in the output\n> >       fetch: Add output for the not fast forward case\n> >       fetch: Clean output\n>\n> Please do not make short ID output the default. That is, unless you can\n> somehow guarantee that the short ID reported today will _always_ be\n> unambiguous even with future additions to the repository.\n>\n\nThere is not such guarantee. But the fetch output is to be use\nimmediately in git-log, etc. If you want these \"guarantees\" you must\nknow that you have to keep the long version.\n\nBy the way, is there a way to show all the commits,tags,... that\nabbreviate to a short hash? This way instead of just saying \"bad\nrevision\" we could show the list of possible revisions.\n\nAlso, git-log & co also output abbreviated hashes by default. So why\nnot for git-fetch?\n\nSanti\n"},{"id":"28015","messageId":"7v1wpumkhk.fsf@assigned-by-dhcp.cox.net","threadId":"5761","inReplyTo":"451D6BDB.50900@gmail.com","subject":"Re: [PATCH 0/5] fetch & co: misc output cleanup","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-29T21:27:35Z","receivedAt":"2006-09-29T21:27:35Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A Large Angry SCM <gitzilla@gmail.com> writes:\n\n> Santi Béjar wrote:\n>> this patchset includes:\n>>\n>>       fetch: Reset remote refs list each time fetch_main is called\n>>       fetch & co: Use \"hash1..hash2\" instead of \"from hash1 to hash2\"\n>>       fetch & co: Use short sha1 in the output\n>>       fetch: Add output for the not fast forward case\n>>       fetch: Clean output\n>\n> Please do not make short ID output the default. That is, unless you\n> can somehow guarantee that the short ID reported today will _always_\n> be unambiguous even with future additions to the repository.\n\nI would understand your worries of spitting out only abbreviated\nobject names if they appear in a document to be preserved for a\nlong term.  But we are talking about output to stderr to help\npeople see what happened in the operation they initiated a few\nmoments ago, and to help them use the output for cut&paste while\nit is still in the scrollbuffer of the terminal.\n\nShortening them would help A..B avoid crossing the line\nboundaries, which terminal emulators have trouble with cutting\nsometimes.  That benefit may outweigh the longer term ambiguity\nconcerns.\n\nThe only real-life situation I can imagine the program output is\npreserved in any longer term than immediate consumption for\ncut&paste is to paste it into a piece of e-mail (which is\narchived), to show exactly what the program said to the user.\nBut then it carries the timestamp and you should be able to\nfigure out what the abbreviation uniquely stood for back then if\nyou really cared.  If you are producing a document for longer\nterm storage, the program that produces such a document should\nbe doing its own rev-parse anyway (or maybe pass whatever it is\npiping through git-name-rev --stdin).\n\nI think it is Ok to always use the abbreviated form in the\nplaces Santi's patch touched, as long as people understand these\nmessages are not for long term storage.  We might want to use a\nbit longer abbreviation than the default (7 hexdigits).\n"},{"id":"28021","messageId":"7vpsdehzcs.fsf@assigned-by-dhcp.cox.net","threadId":"5761","inReplyTo":"8764f61r74.fsf@gmail.com","subject":"Re: [PATCH 5/5] fetch: Clean output","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-30T02:17:39Z","receivedAt":"2006-09-30T02:17:39Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Santi Béjar <sbejar@gmail.com> writes:\n\n> Do not show duplicated remote branch information and reformat the output as:\n>\n> $ git fetch -v   # the committish lines for the -v.\n> * refs/heads/origin: fast forward to remote branch 'master' of ../git/\n>   1ad7a06..bc1a580\n>   committish: bc1a580\n\nI am not quite sure about this --- it is not obvious what these\ntwo numbers represent anymore.  Also I think the last line\noutlived its usefulness (99% of the time refs are committish, so\nnoting exception is good but otherwise it is not interesting).\n\nI know you opted for minimum patch, but it might be a good time\nto polish the wording a bit while we are touching the general\nvicinity of the code.\n\nHow about saying something like:\n\n * refs/heads/origin: fast forward to remote branch 'master' of ../git/\n   old..new = 1ad7a06..bc1a580\n\n> * refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/;\n>   7c733a8...5faa935\n>   not updating.\n>   forcing update.\n>   committish: 5faa935\n\nThis is even more confusing.  Perhaps we would want to have two\ncases, depending on --force (and +).\n\n * refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/;\n   but forcing update anyway.  old...new = 7c733a8...5faa935\n\n * refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/;\n   not updating.  old...new = 7c733a8...5faa935\n"},{"id":"28027","messageId":"8aa486160609300242i6f52ee90o235e668a5d865fb7@mail.gmail.com","threadId":"5761","inReplyTo":"7vpsdehzcs.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 5/5] fetch: Clean output","fromName":"Santi","fromEmail":"sbejar@gmail.com","sentAt":"2006-09-30T09:42:33Z","receivedAt":"2006-09-30T09:42:33Z","isPatch":true,"sender":{"key":"santi@agolina.net","avatar":null},"body":"2006/9/30, Junio C Hamano <junkio@cox.net>:\n> Santi Béjar <sbejar@gmail.com> writes:\n>\n> > Do not show duplicated remote branch information and reformat the output as:\n> >\n> > $ git fetch -v   # the committish lines for the -v.\n> > * refs/heads/origin: fast forward to remote branch 'master' of ../git/\n> >   1ad7a06..bc1a580\n> >   committish: bc1a580\n>\n> I am not quite sure about this --- it is not obvious what these\n> two numbers represent anymore.  Also I think the last line\n> outlived its usefulness (99% of the time refs are committish, so\n> noting exception is good but otherwise it is not interesting).\n\nI agree in the case of updating a ref, but I would keep it otherwise\n(and even in this case only when -v is given).\n\n>\n> I know you opted for minimum patch, but it might be a good time\n> to polish the wording a bit while we are touching the general\n> vicinity of the code.\n>\n> How about saying something like:\n>\n>  * refs/heads/origin: fast forward to remote branch 'master' of ../git/\n>    old..new = 1ad7a06..bc1a580\n\nI like it.\n\n>\n> > * refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/;\n> >   7c733a8...5faa935\n> >   not updating.\n> >   forcing update.\n> >   committish: 5faa935\n>\n> This is even more confusing.  Perhaps we would want to have two\n> cases, depending on --force (and +).\n\nSorry, it was from two copy'n'paste. I did it in a new repository\n(without the +), then it stoped at this point (I suppose to force the\nuser to solve the problem). Then I put the + and did the copy'n'paste\nagain without deleting this extra line.\n\n>\n>  * refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/;\n>    but forcing update anyway.  old...new = 7c733a8...5faa935\n\nWith the old...new in a new line?\n\nSo at the end, something like this output?\n\n$ git fetch -v   # the committish lines for the -v.\n* refs/heads/origin: fast forward to remote branch 'master' of ../git/\n old..new: 1ad7a06..bc1a580\n* refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/\n old...new: 7c733a8...5faa935\n forcing update.\n* refs/heads/next: same as remote branch 'origin/next' of ../git/\n committish: ce47b9f\n...\n* refs/tags/v1.4.2-rc4: storing tag 'v1.4.2-rc4' of ../git/\n committish: 8c7a107\n\n$ git fetch -v origin refs/heads/master\n* committish: 695dffe\n branch 'master' of ../git/\n\nSanti\n"},{"id":"28028","messageId":"7vr6xtej2f.fsf@assigned-by-dhcp.cox.net","threadId":"5761","inReplyTo":"8aa486160609300242i6f52ee90o235e668a5d865fb7@mail.gmail.com","subject":"Re: [PATCH 5/5] fetch: Clean output","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-30T10:37:44Z","receivedAt":"2006-09-30T10:37:44Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Santi <sbejar@gmail.com> writes:\n\n> So at the end, something like this output?\n>\n> $ git fetch -v   # the committish lines for the -v.\n> * refs/heads/origin: fast forward to remote branch 'master' of ../git/\n> old..new: 1ad7a06..bc1a580\n> * refs/heads/pu: does not fast forward to remote branch 'pu' of ../git/\n> old...new: 7c733a8...5faa935\n> forcing update.\n> * refs/heads/next: same as remote branch 'origin/next' of ../git/\n> committish: ce47b9f\n> ...\n> * refs/tags/v1.4.2-rc4: storing tag 'v1.4.2-rc4' of ../git/\n> committish: 8c7a107\n>\n> $ git fetch -v origin refs/heads/master\n> * committish: 695dffe\n> branch 'master' of ../git/\n\nFor the last one, the second and third line feel backwards.\n\nMost cases in your summary (i.e. storing on a tracking branch or\ntag) in general look like:\n\n        * <local ref name>: <what happened and where it came from>\n\t<label>: <object names>\n\nwhere <label> (e.g. old..new) describes what <object names>\nmean.  So to be consistent, the <label> for \"same as\" case\n(i.e. storing what is fetched in a local ref, but it was already\nthe same) and \"storing anew\" case, we might want to say their\ntrue object types, not \"committish\".\n\nAlso we probably would want to \"s/remote branch/branch\" in the\n\"where from\" part, since we always say \"remote\" in fetch anyway.\n\nThen the last case where we do not use local tracking branch\nwould simply be something like:\n\n\t* fetched branch 'master' of ../git\n        commit: 695dffe\n\nHow about this?  Essentially the same as the above but with\nminor tweaks.\n\n1. the ones we store in our local ref (either branches or tags):\n\n 1a) fast-forward\n\n  * refs/heads/origin: fast forward to branch 'master' of ../git/\n    old..new: 1ad7a06..bc1a580\n\n 1b) same (only shown under -v)\n\n  * refs/heads/next: same as branch 'origin/next' of ../git/\n    commit: ce47b9f\n\n 1c) non-fast-forward, forced\n\n  * refs/heads/pu: forcing update to branch 'pu' of ../git/\n    old...new: 7c733a8...5faa935\n\n 1d) non-fast-forward, did not update because not forced\n\n  * refs/heads/po: does not fast-forward to branch 'po' of ../git/\n    old...new: 7c733a8...5faa935\n\n 1e) creating a new local ref to store\n\n  * refs/tags/v1.4.2-rc4: storing tag 'v1.4.2-rc4' of ../git/\n    tag: 8c7a107\n\n2. the ones we do not store in our local ref (only shown under -v):\n\n  * fetched branch 'master' of ../git\n    commit: 695dffe\n\nI think we should reword the \"what happened\" for 1d to clarify\nthat we did not touch refs/heads/po, but other than that I am\nreasonably happy about how they look consistent.\n\nBut please don't take the above too seriously.  As everybody\nshould be very well aware by now, I am very bad at UI designs.\n"}]}