{"thread":{"id":"22979","subject":"What's cooking in git.git (Mar 2010, #03; Wed, 10)","startedAt":"2010-03-11T03:21:07Z","lastAt":"2010-03-12T16:40:54Z","messageCount":7,"participants":["Junio C Hamano","Johan Herland","Nguyen Thai Ngoc Duy","Thomas Rast"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"136553","messageId":"7v7hpj4k7w.fsf@alter.siamese.dyndns.org","threadId":"22979","inReplyTo":null,"subject":"What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-11T03:21:07Z","receivedAt":"2010-03-11T03:21:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"What's cooking in git.git (Mar 2010, #03; Wed, 10)\n--------------------------------------------------\n\nHere are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' while commits prefixed with '+' are in 'next'.  The ones\nmarked with '.' do not appear in any of the integration branches, but I am\nstill holding onto them.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* sh/am-keep-cr (2010-02-27) 4 commits\n  (merged to 'next' on 2010-03-02 at ffe3c5e)\n + git-am: Add tests for `--keep-cr`, `--no-keep-cr` and `am.keepcr`\n + git-am: Add am.keepcr and --no-keep-cr to override it\n + git-am: Add command line parameter `--keep-cr` passing it to git-mailsplit\n + documentation: 'git-mailsplit --keep-cr' is not hidden anymore\n\n* sd/init-template (2010-03-02) 5 commits\n  (merged to 'next' on 2010-03-02 at 2d87e3f)\n + wrap-for-bin: do not export an empty GIT_TEMPLATE_DIR\n + t/t0001-init.sh: add test for 'init with init.templatedir set'\n + init: having keywords without value is not a global error.\n + Add a \"TEMPLATE DIRECTORY\" section to git-init[1].\n + Add `init.templatedir` configuration variable.\n\n* lt/deepen-builtin-source (2010-02-22) 1 commit\n  (merged to 'next' on 2010-02-25 at 320aa74)\n + Move 'builtin-*' into a 'builtin/' subdirectory\n (this branch is used by nd/setup.)\n\n* cp/add-u-pathspec (2010-02-09) 2 commits\n  (merged to 'next' on 2010-02-24 at 2f3f2bc)\n + test for add with non-existent pathspec\n + git add -u: die on unmatched pathspec\n\n--------------------------------------------------\n[Stalled]\n\n* js/rebase-origin-x (2010-02-05) 1 commit\n - [RFC w/o test and incomplete] rebase: add -x option to record original commit name\n\nI retract my objection against the idea of -x; needs polishing before\nmoving forward.\n\n* sd/log-decorate (2010-02-17) 3 commits\n  (merged to 'next' on 2010-03-08 at 58a6fba)\n + log.decorate: usability fixes\n + Add `log.decorate' configuration variable.\n + git_config_maybe_bool()\n\nNeeds squelching the configuration setting when \"--pretty=raw\" is given,\nat least, or possibly when any \"--pretty\" is explicitly given.\n\n--------------------------------------------------\n[Cooking]\n\n* pb/log-first-parent-p-m (2010-03-09) 5 commits\n - show --first-parent/-m: do not default to --cc\n - show -c: show patch text\n - revision: introduce setup_revision_opt\n - t4013: add tests for log -p -m --first-parent\n  (merged to 'next' on 2010-02-17 at 2f8e5ae)\n + git log -p -m: document -m and honor --first-parent\n\nI said 'We might want to teach \"-m trumps implicit --cc\" to \"git show\"',\nand that is what I did near the tip.  Comments?\n\n* jl/submodule-diff-dirtiness (2010-03-08) 2 commits\n  (merged to 'next' on 2010-03-08 at 33f7a57)\n + git status: Show detailed dirty status of submodules in long format\n  (merged to 'next' on 2010-03-04 at 58b2645)\n + git diff --submodule: Show detailed dirty status of submodules\n\n* cc/cherry-pick-ff (2010-03-06) 7 commits\n  (merged to 'next' on 2010-03-07 at 5589b26)\n + rebase -i: use new --ff cherry-pick option\n + cherry-pick: add a no-op --no-ff option to future proof scripts\n + Documentation: describe new cherry-pick --ff option\n + cherry-pick: add tests for new --ff option\n + revert: add --ff option to allow fast forward when cherry-picking\n + builtin/merge: make checkout_fast_forward() non static\n + parse-options: add parse_options_concat() to concat options\n\n* js/async-thread (2010-03-09) 7 commits\n - Enable threaded async procedures whenever pthreads is available\n - Dying in an async procedure should only exit the thread, not the process.\n - Reimplement async procedures using pthreads\n - Windows: more pthreads functions\n - Fix signature of fcntl() compatibility dummy\n - Make report() from usage.c public as vreportf() and use it.\n - Modernize t5530-upload-pack-error.\n\nThe last one is probably unsafe for 'next' until somebody goes and vets\nthe callees that are invoked via this interface (any possible breakages\nare already inflicted on Windows people, though).\n\n* nd/setup (2010-03-08) 21 commits\n - index-pack: use RUN_SETUP_GENTLY\n - index-pack: trust the prefix returned by setup_git_directory_gently()\n - worktree setup: calculate prefix even if no worktree is found\n - merge-file: use RUN_SETUP_GENTLY\n - var: use RUN_SETUP_GENTLY\n - ls-remote: use RUN_SETUP_GENTLY\n - help: use RUN_SETUP_GENTLY\n - diff: use RUN_SETUP_GENTLY\n - bundle: use RUN_SETUP_GENTLY\n - apply: use RUN_SETUP_GENTLY\n - verify-pack: use RUN_SETUP_GENTLY\n - check-ref-format: use RUN_SETUP_GENTLY\n - mailinfo: use RUN_SETUP_GENTLY\n - archive: use RUN_SETUP_GENTLY\n - builtin: USE_PAGER should not be used without RUN_SETUP*\n - grep: use RUN_SETUP_GENTLY\n - shortlog: use RUN_SETUP_GENTLY\n - hash-object: use RUN_SETUP_GENTLY\n - config: use RUN_SETUP_GENTLY\n - builtin: Support RUN_SETUP_GENTLY to set up repository early if found\n - builtin: introduce startup_info struct\n\n* sd/format-patch-to (2010-03-07) 4 commits\n  (merged to 'next' on 2010-03-08 at 739b8cd)\n + send-email: add --no-cc, --no-to, and --no-bcc\n + format-patch: add --no-cc, --no-to, and --no-add-headers\n + format-patch: use a string_list for headers\n  (merged to 'next' on 2010-03-07 at ef7a18d)\n + Add 'git format-patch --to=' option and 'format.to' configuration variable.\n\nSquashed tests by Stephen in.\nI think this is ready for 'master'.  Comments?\n\n* bg/apply-fix-blank-at-eof (2010-03-06) 5 commits\n  (merged to 'next' on 2010-03-07 at daec679)\n + t3417: Add test cases for \"rebase --whitespace=fix\"\n + t4124: Add additional tests of --whitespace=fix\n + apply: Allow blank context lines to match beyond EOF\n + apply: Remove the quick rejection test\n + apply: Don't unnecessarily update line lengths in the preimage\n\n* sg/bash-completion (2010-02-23) 4 commits\n  (merged to 'next' on 2010-03-08 at bc59860)\n + bash: completion for gitk aliases\n + bash: support user-supplied completion scripts for aliases\n + bash: support user-supplied completion scripts for user's git commands\n + bash: improve aliased command recognition\n\nPerhaps rename _git_frotz -> _git_complete_frotz?  I dunno.\n\n* fl/askpass (2010-03-04) 2 commits\n  (merged to 'next' on 2010-03-07 at 5ab370a)\n + git-core: Support retrieving passwords with GIT_ASKPASS\n + git-svn: Support retrieving passwords with GIT_ASKPASS\n\n* jc/color-attrs (2010-02-27) 1 commit\n  (merged to 'next' on 2010-03-08 at ba02883)\n + color: allow multiple attributes\n\n* jc/maint-add-ignored-dir (2010-02-28) 3 commits\n  (merged to 'next' on 2010-03-08 at a51762e)\n + builtin-add: fix exclude handling\n + tests for \"git add ignored-dir/file\" without -f\n + t0050: mark non-working test as such\n\nJeff came up with a simpler fix than the one at the tip, and we may want\nto replace it with his, and possibly teach globbing to the logic later.\n\n* ml/color-grep (2010-03-07) 3 commits\n  (merged to 'next' on 2010-03-08 at 24d1eb4)\n + grep: Colorize selected, context, and function lines\n + grep: Colorize filename, line number, and separator\n + Add GIT_COLOR_BOLD_* and GIT_COLOR_BG_*\n\n* sb/notes-parse-opt (2010-02-27) 1 commit\n - notes: rework subcommands and parse options\n (this branch uses early parts of jh/notes and tr/notes-display.)\n\n* bw/union-merge-refactor (2010-03-01) 4 commits\n  (merged to 'next' on 2010-03-10 at b917078)\n + merge-file: add option to select union merge favor\n + merge-file: add option to specify the marker size\n  (merged to 'next' on 2010-03-07 at 9d1eff6)\n + refactor merge flags into xmparam_t\n + make union merge an xdl merge favor\n\n* jh/maint-submodule-status-in-void (2010-03-09) 2 commits\n - git submodule summary: Handle HEAD as argument when on an unborn branch\n  (merged to 'next' on 2010-03-08 at 0697bf4)\n + submodule summary: do not fail before the first commit\n\nThere are still more fix-ups comming?\n\n* ld/push-porcelain (2010-02-26) 4 commits\n  (merged to 'next' on 2010-03-02 at d15bb1e)\n + git-push: add tests for git push --porcelain\n + git-push: make git push --porcelain print \"Done\"\n + git-push: send \"To <remoteurl>\" messages to the standard output in --porcelain mode\n + git-push: fix an advice message so it goes to stderr\n\nI think this is ready for 'master'.  Comments?\n\n* tc/http-cleanup (2010-03-02) 7 commits\n  (merged to 'next' on 2010-03-07 at e92db25)\n + remote-curl: init walker only when needed\n + remote-curl: use http_fetch_ref() instead of walker wrapper\n + http: init and cleanup separately from http-walker\n + http-walker: cleanup more thoroughly\n + http-push: remove \"|| 1\" to enable verbose check\n + t554[01]-http-push: refactor, add non-ff tests\n + t5541-http-push: check that ref is unchanged for non-ff test\n\nI think this is ready for 'master'.  Comments?\n\n* tr/notes-display (2010-03-10) 13 commits\n - git-notes(1): add a section about the meaning of history\n - notes: track whether notes_trees were changed at all\n - notes: add shorthand --ref to override GIT_NOTES_REF\n - commit --amend: copy notes to the new commit\n - rebase: support automatic notes copying\n - notes: implement helpers needed for note copying during rewrite\n - notes: implement 'git notes copy --stdin'\n - rebase -i: invoke post-rewrite hook\n - rebase: invoke post-rewrite hook\n - commit --amend: invoke post-rewrite hook\n - Documentation: document post-rewrite hook\n - Support showing notes from more than one notes tree\n - test-lib: unset GIT_NOTES_REF to stop it from influencing tests\n (this branch uses early parts of jh/notes; is used by sb/notes-parse-opt.)\n\nRe-rolled.  I think this is ready for 'next'.  Comments?\n\n* cw/test-lib-relicense (2010-02-22) 1 commit\n . test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.\n\nAck-collection stopped at the last three names.  I am hoping Carl can take\nit from there without my keeping an eye on it.\n\n* tc/transport-verbosity (2010-02-24) 10 commits\n  (merged to 'next' on 2010-03-07 at 898d6dd)\n + transport: update flags to be in running order\n + fetch and pull: learn --progress\n + push: learn --progress\n + transport->progress: use flag authoritatively\n + clone: support multiple levels of verbosity\n + push: support multiple levels of verbosity\n + fetch: refactor verbosity option handling into transport.[ch]\n + Documentation/git-push: put --quiet before --verbose\n + Documentation/git-pull: put verbosity options before merge/fetch ones\n + Documentation/git-clone: mention progress in -v\n\nI think this is ready for 'master'.  Comments?\n\n* jh/notes (2010-03-04) 33 commits\n  (merged to 'next' on 2010-03-04 at 3bb921f)\n + Documentation: fix a few typos in git-notes.txt\n  (merged to 'next' on 2010-02-24 at c88263d)\n + notes: fix malformed tree entry\n + builtin-notes: Minor (mostly parse_options-related) fixes\n  (merged to 'next' on 2010-02-21 at 75fc451)\n + builtin-notes: Add \"copy\" subcommand for copying notes between objects\n + builtin-notes: Misc. refactoring of argc and exit value handling\n + builtin-notes: Add -c/-C options for reusing notes\n + builtin-notes: Refactor handling of -F option to allow combining -m and -F\n + builtin-notes: Deprecate the -m/-F options for \"git notes edit\"\n + builtin-notes: Add \"append\" subcommand for appending to note objects\n + builtin-notes: Add \"add\" subcommand for adding notes to objects\n + builtin-notes: Add --message/--file aliases for -m/-F options\n + builtin-notes: Add \"list\" subcommand for listing note objects\n + Documentation: Generalize git-notes docs to 'objects' instead of 'commits'\n + builtin-notes: Add \"prune\" subcommand for removing notes for missing objects\n + Notes API: prune_notes(): Prune notes that belong to non-existing objects\n + t3305: Verify that removing notes triggers automatic fanout consolidation\n + builtin-notes: Add \"remove\" subcommand for removing existing notes\n + Teach builtin-notes to remove empty notes\n + Teach notes code to properly preserve non-notes in the notes tree\n + t3305: Verify that adding many notes with git-notes triggers increased fanout\n + t3301: Verify successful annotation of non-commits\n + Builtin-ify git-notes\n + Refactor notes concatenation into a flexible interface for combining notes\n + Notes API: Allow multiple concurrent notes trees with new struct notes_tree\n + Notes API: write_notes_tree(): Store the notes tree in the database\n + Notes API: for_each_note(): Traverse the entire notes tree with a callback\n + Notes API: get_note(): Return the note annotating the given object\n + Notes API: remove_note(): Remove note objects from the notes tree structure\n + Notes API: add_note(): Add note objects to the internal notes tree structure\n + Notes API: init_notes(): Initialize the notes tree from the given notes ref\n + Add tests for checking correct handling of $GIT_NOTES_REF and core.notesRef\n + Notes API: get_commit_notes() -> format_note() + remove the commit restriction\n + Minor cosmetic fixes to notes.c\n (this branch shares commits with sb/notes-parse-opt and tr/notes-display.)\n\nReady for 'master'.\n\n* cc/reset-keep (2010-03-09) 6 commits\n  (merged to 'next' on 2010-03-08 at 015ef4b)\n + Documentation: improve description of \"git reset --keep\"\n  (merged to 'next' on 2010-03-07 at 5237d8e)\n + reset: disallow using --keep when there are unmerged entries\n + reset: disallow \"reset --keep\" outside a work tree\n + Documentation: reset: describe new \"--keep\" option\n + reset: add test cases for \"--keep\" option\n + reset: add option \"--keep\" to \"git reset\"\n\nI think this is ready for 'master'.  Comments?\n"},{"id":"136576","messageId":"201003111209.10445.johan@herland.net","threadId":"22979","inReplyTo":"7v7hpj4k7w.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Johan Herland","fromEmail":"johan@herland.net","sentAt":"2010-03-11T11:09:10Z","receivedAt":"2010-03-11T11:09:10Z","isPatch":false,"sender":{"key":"johan@herland.net","avatar":"https://avatars.githubusercontent.com/u/547031?v=4"},"body":"On Thursday 11 March 2010, Junio C Hamano wrote:\n> [Cooking]\n> \n> * sb/notes-parse-opt (2010-02-27) 1 commit\n>  - notes: rework subcommands and parse options\n>  (this branch uses early parts of jh/notes and tr/notes-display.)\n\nThe latest iteration of this looked good to me, but it might need a re-roll \nonce tr/notes-display is set in stone/'next'.\n\n> * tr/notes-display (2010-03-10) 13 commits\n>  - git-notes(1): add a section about the meaning of history\n>  - notes: track whether notes_trees were changed at all\n>  - notes: add shorthand --ref to override GIT_NOTES_REF\n>  - commit --amend: copy notes to the new commit\n>  - rebase: support automatic notes copying\n>  - notes: implement helpers needed for note copying during rewrite\n>  - notes: implement 'git notes copy --stdin'\n>  - rebase -i: invoke post-rewrite hook\n>  - rebase: invoke post-rewrite hook\n>  - commit --amend: invoke post-rewrite hook\n>  - Documentation: document post-rewrite hook\n>  - Support showing notes from more than one notes tree\n>  - test-lib: unset GIT_NOTES_REF to stop it from influencing tests\n>  (this branch uses early parts of jh/notes; is used by\n> sb/notes-parse-opt.)\n> \n> Re-rolled.  I think this is ready for 'next'.  Comments?\n\nI just reviewed it, and it looks good to me.\n\n\n...Johan\n\n-- \nJohan Herland, <johan@herland.net>\nwww.herland.net\n"},{"id":"136578","messageId":"7v1vfr2h01.fsf@alter.siamese.dyndns.org","threadId":"22979","inReplyTo":"201003111209.10445.johan@herland.net","subject":"Re: What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-11T12:13:34Z","receivedAt":"2010-03-11T12:13:34Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johan Herland <johan@herland.net> writes:\n\n>> * tr/notes-display (2010-03-10) 13 commits\n>> ...\n>> Re-rolled.  I think this is ready for 'next'.  Comments?\n>\n> I just reviewed it, and it looks good to me.\n\nThanks.  There still are a few niggles as you pointed out (e.g. I share\nthe feeling that the auto-initialization should go and be replaced with a\nBUG()), but most of them are minor and not showstopper, I think.\n\nThomas, I am Ok with a replacement series, or incremental updates on top\nof what we have now.  Please let me know which way you prefer.\n"},{"id":"136636","messageId":"fcaeb9bf1003112041m7c8b4012j187d9a0c2537acbb@mail.gmail.com","threadId":"22979","inReplyTo":"7v7hpj4k7w.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2010-03-12T04:41:04Z","receivedAt":"2010-03-12T04:41:04Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Thu, Mar 11, 2010 at 10:21 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> * ld/push-porcelain (2010-02-26) 4 commits\n>  (merged to 'next' on 2010-03-02 at d15bb1e)\n>  + git-push: add tests for git push --porcelain\n>  + git-push: make git push --porcelain print \"Done\"\n>  + git-push: send \"To <remoteurl>\" messages to the standard output in --porcelain mode\n>  + git-push: fix an advice message so it goes to stderr\n\n\"diff -q\" in t5516, \"add tests for git push --porcelain\" is not\nsuported on Solaris. test_cmp should be used instead.\n-- \nDuy\n"},{"id":"136638","messageId":"7vtysmt7wo.fsf@alter.siamese.dyndns.org","threadId":"22979","inReplyTo":"fcaeb9bf1003112041m7c8b4012j187d9a0c2537acbb@mail.gmail.com","subject":"Re: What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-12T05:40:07Z","receivedAt":"2010-03-12T05:40:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:\n\n> \"diff -q\" in t5516, \"add tests for git push --porcelain\" is not\n> suported on Solaris. test_cmp should be used instead.\n\nHeh, t9400 also uses it.  Nobody has ever tested cvsserver on Solaris?\n\n-- >8 --\nSubject: t9400: Use test_cmp when appropriate\n\nConsistently using test_cmp would make debugging test scripts far easier,\nas output from them run under \"-v\" option becomes readable.\n\nBesides, some platforms' \"diff\" implementations lack \"-q\" option.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n\n * meant for 'maint'.\n\n t/t9400-git-cvsserver-server.sh |   24 ++++++++++++------------\n 1 files changed, 12 insertions(+), 12 deletions(-)\n\ndiff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh\nindex 4327eb8..daef2d6 100755\n--- a/t/t9400-git-cvsserver-server.sh\n+++ b/t/t9400-git-cvsserver-server.sh\n@@ -226,7 +226,7 @@ test_expect_success 'gitcvs.ext.enabled = true' \\\n   'GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.ext.enabled true &&\n    GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.enabled false &&\n    GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork2 master >cvs.log 2>&1 &&\n-   diff -q cvswork cvswork2'\n+   test_cmp cvswork cvswork2'\n \n rm -fr cvswork2\n test_expect_success 'gitcvs.ext.enabled = false' \\\n@@ -247,7 +247,7 @@ test_expect_success 'gitcvs.dbname' \\\n   'GIT_DIR=\"$SERVERDIR\" git config --bool gitcvs.ext.enabled true &&\n    GIT_DIR=\"$SERVERDIR\" git config gitcvs.dbname %Ggitcvs.%a.%m.sqlite &&\n    GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork2 master >cvs.log 2>&1 &&\n-   diff -q cvswork cvswork2 &&\n+   test_cmp cvswork cvswork2 &&\n    test -f \"$SERVERDIR/gitcvs.ext.master.sqlite\" &&\n    cmp \"$SERVERDIR/gitcvs.master.sqlite\" \"$SERVERDIR/gitcvs.ext.master.sqlite\"'\n \n@@ -257,7 +257,7 @@ test_expect_success 'gitcvs.ext.dbname' \\\n    GIT_DIR=\"$SERVERDIR\" git config gitcvs.ext.dbname %Ggitcvs1.%a.%m.sqlite &&\n    GIT_DIR=\"$SERVERDIR\" git config gitcvs.dbname %Ggitcvs2.%a.%m.sqlite &&\n    GIT_CONFIG=\"$git_config\" cvs -Q co -d cvswork2 master >cvs.log 2>&1 &&\n-   diff -q cvswork cvswork2 &&\n+   test_cmp cvswork cvswork2 &&\n    test -f \"$SERVERDIR/gitcvs1.ext.master.sqlite\" &&\n    test ! -f \"$SERVERDIR/gitcvs2.ext.master.sqlite\" &&\n    cmp \"$SERVERDIR/gitcvs.master.sqlite\" \"$SERVERDIR/gitcvs1.ext.master.sqlite\"'\n@@ -282,7 +282,7 @@ test_expect_success 'cvs update (create new file)' \\\n    cd cvswork &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update &&\n    test \"$(echo $(grep testfile1 CVS/Entries|cut -d/ -f2,3,5))\" = \"testfile1/1.1/\" &&\n-   diff -q testfile1 ../testfile1'\n+   test_cmp testfile1 ../testfile1'\n \n cd \"$WORKDIR\"\n test_expect_success 'cvs update (update existing file)' \\\n@@ -293,7 +293,7 @@ test_expect_success 'cvs update (update existing file)' \\\n    cd cvswork &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update &&\n    test \"$(echo $(grep testfile1 CVS/Entries|cut -d/ -f2,3,5))\" = \"testfile1/1.2/\" &&\n-   diff -q testfile1 ../testfile1'\n+   test_cmp testfile1 ../testfile1'\n \n cd \"$WORKDIR\"\n #TODO: cvsserver doesn't support update w/o -d\n@@ -322,7 +322,7 @@ test_expect_success 'cvs update (subdirectories)' \\\n    (for dir in A A/B A/B/C A/D E; do\n       filename=\"file_in_$(echo $dir|sed -e \"s#/# #g\")\" &&\n       if test \"$(echo $(grep -v ^D $dir/CVS/Entries|cut -d/ -f2,3,5))\" = \"$filename/1.1/\" &&\n-           diff -q \"$dir/$filename\" \"../$dir/$filename\"; then\n+\ttest_cmp \"$dir/$filename\" \"../$dir/$filename\"; then\n         :\n       else\n         echo >failure\n@@ -349,7 +349,7 @@ test_expect_success 'cvs update (re-add deleted file)' \\\n    cd cvswork &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update &&\n    test \"$(echo $(grep testfile1 CVS/Entries|cut -d/ -f2,3,5))\" = \"testfile1/1.4/\" &&\n-   diff -q testfile1 ../testfile1'\n+   test_cmp testfile1 ../testfile1'\n \n cd \"$WORKDIR\"\n test_expect_success 'cvs update (merge)' \\\n@@ -366,7 +366,7 @@ test_expect_success 'cvs update (merge)' \\\n    cd cvswork &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update &&\n    test \"$(echo $(grep merge CVS/Entries|cut -d/ -f2,3,5))\" = \"merge/1.1/\" &&\n-   diff -q merge ../merge &&\n+   test_cmp merge ../merge &&\n    ( echo Line 0; cat merge ) >merge.tmp &&\n    mv merge.tmp merge &&\n    cd \"$WORKDIR\" &&\n@@ -377,7 +377,7 @@ test_expect_success 'cvs update (merge)' \\\n    cd cvswork &&\n    sleep 1 && touch merge &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update &&\n-   diff -q merge ../expected'\n+   test_cmp merge ../expected'\n \n cd \"$WORKDIR\"\n \n@@ -402,13 +402,13 @@ test_expect_success 'cvs update (conflict merge)' \\\n    git push gitcvs.git >/dev/null &&\n    cd cvswork &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update &&\n-   diff -q merge ../expected.C'\n+   test_cmp merge ../expected.C'\n \n cd \"$WORKDIR\"\n test_expect_success 'cvs update (-C)' \\\n   'cd cvswork &&\n    GIT_CONFIG=\"$git_config\" cvs -Q update -C &&\n-   diff -q merge ../merge'\n+   test_cmp merge ../merge'\n \n cd \"$WORKDIR\"\n test_expect_success 'cvs update (merge no-op)' \\\n@@ -420,7 +420,7 @@ test_expect_success 'cvs update (merge no-op)' \\\n     cd cvswork &&\n     sleep 1 && touch merge &&\n     GIT_CONFIG=\"$git_config\" cvs -Q update &&\n-    diff -q merge ../merge'\n+    test_cmp merge ../merge'\n \n cd \"$WORKDIR\"\n test_expect_success 'cvs update (-p)' '\n"},{"id":"136640","messageId":"7vhbomt7be.fsf@alter.siamese.dyndns.org","threadId":"22979","inReplyTo":"7vtysmt7wo.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-12T05:52:53Z","receivedAt":"2010-03-12T05:52:53Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Subject: t9400: Use test_cmp when appropriate\n\nAnd this is an obvious follow-up.\n\n-- >8 --\nSubject: t5516: Use test_cmp when appropriate\n\nConsistently using test_cmp would make debugging test scripts far easier,\nas output from them run under \"-v\" option becomes readable.\n\nBesides, some platforms' \"diff\" implementations lack \"-q\" option.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n t/t5516-fetch-push.sh |    6 +++---\n 1 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh\nindex 11adb0b..2de98e6 100755\n--- a/t/t5516-fetch-push.sh\n+++ b/t/t5516-fetch-push.sh\n@@ -672,7 +672,7 @@ test_expect_success 'push --porcelain' '\n \t\ttest \"z$r\" = \"z$the_commit\" &&\n \t\ttest 1 = $(git for-each-ref refs/remotes/origin | wc -l)\n \t) &&\n-\tdiff -q .git/foo .git/bar\n+\ttest_cmp .git/foo .git/bar\n '\n \n test_expect_success 'push --porcelain bad url' '\n@@ -692,7 +692,7 @@ test_expect_success 'push --porcelain rejected' '\n \techo >>.git/foo \"!\trefs/heads/master:refs/heads/master\t[remote rejected] (branch is currently checked out)\" &&\n \n \ttest_must_fail git push >.git/bar --porcelain  testrepo refs/heads/master:refs/heads/master &&\n-\tdiff -q .git/foo .git/bar\n+\ttest_cmp .git/foo .git/bar\n '\n \n test_expect_success 'push --porcelain --dry-run rejected' '\n@@ -707,7 +707,7 @@ test_expect_success 'push --porcelain --dry-run rejected' '\n \techo >>.git/foo \"Done\" &&\n \n \ttest_must_fail git push >.git/bar --porcelain  --dry-run testrepo refs/heads/master^:refs/heads/master &&\n-\tdiff -q .git/foo .git/bar\n+\ttest_cmp .git/foo .git/bar\n '\n \n test_done\n"},{"id":"136662","messageId":"201003121740.55042.trast@student.ethz.ch","threadId":"22979","inReplyTo":"7v1vfr2h01.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #03; Wed, 10)","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2010-03-12T16:40:54Z","receivedAt":"2010-03-12T16:40:54Z","isPatch":false,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"Junio C Hamano wrote:\n> Johan Herland <johan@herland.net> writes:\n> \n> >> * tr/notes-display (2010-03-10) 13 commits\n> >> ...\n> >> Re-rolled.  I think this is ready for 'next'.  Comments?\n> >\n> > I just reviewed it, and it looks good to me.\n> \n> Thanks.  There still are a few niggles as you pointed out (e.g. I share\n> the feeling that the auto-initialization should go and be replaced with a\n> BUG()), but most of them are minor and not showstopper, I think.\n> \n> Thomas, I am Ok with a replacement series, or incremental updates on top\n> of what we have now.  Please let me know which way you prefer.\n\nI'll send a replacement shortly :-)\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"}]}