{"thread":{"id":"22947","subject":"What's cooking in git.git (Mar 2010, #02; Sun, 07)","startedAt":"2010-03-07T22:49:53Z","lastAt":"2010-03-10T19:59:42Z","messageCount":6,"participants":["Junio C Hamano","SZEDER Gábor","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"136369","messageId":"7vk4tnd9wu.fsf@alter.siamese.dyndns.org","threadId":"22947","inReplyTo":null,"subject":"What's cooking in git.git (Mar 2010, #02; Sun, 07)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-07T22:49:53Z","receivedAt":"2010-03-07T22:49:53Z","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, #02; Sun, 07)\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\nLet's start quieting things down on 'next' front.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* mw/maint-gcc-warns-unused-write (2010-01-30) 1 commit\n  (merged to 'next' on 2010-03-04 at 17716c0)\n + run-command.c: fix build warnings on Ubuntu\n\n* gb/maint-submodule-env (2010-02-25) 5 commits\n  (merged to 'next' on 2010-02-25 at 8c22d03)\n + is_submodule_modified(): clear environment properly\n + submodules: ensure clean environment when operating in a submodule\n + shell setup: clear_local_git_env() function\n + rev-parse: --local-env-vars option\n + Refactor list of of repo-local env vars\n (this branch is used by jl/submodule-diff-dirtiness.)\n\n* jc/fetch-param (2010-02-24) 3 commits\n  (merged to 'next' on 2010-02-25 at e95e252)\n + fetch --all/--multiple: keep all the fetched branch information\n + builtin-fetch --all/--multi: propagate options correctly\n + t5521: fix and modernize\n\n* jk/maint-push-tracking-wo-remote (2010-02-24) 1 commit\n  (merged to 'next' on 2010-02-25 at da946ba)\n + push: fix segfault for odd config\n\n* mb/shortlog-nongit-stdin (2010-02-24) 1 commit\n  (merged to 'next' on 2010-02-25 at d17bb74)\n + shortlog: warn the user when there is no input\n\n* fn/maint-mkdtemp-compat (2010-02-25) 1 commit\n  (merged to 'next' on 2010-02-25 at 2899a47)\n + Fix gitmkdtemp: correct test for mktemp() return value\n\n* ml/maint-grep-doc (2010-02-25) 4 commits\n  (merged to 'next' on 2010-03-02 at a75dfe0)\n + grep docs: document --no-index option\n  (merged to 'next' on 2010-02-25 at ec1faf8)\n + grep docs: --cached and <tree>... are incompatible\n + grep docs: use AsciiDoc literals consistently\n + grep docs: pluralize \"Example\" section\n\n* as/maint-expire (2010-02-26) 2 commits\n  (merged to 'next' on 2010-03-02 at 4015ae4)\n + reflog: honor gc.reflogexpire=never\n + prune: honor --expire=never\n\n* il/loosen-remote-helper-names (2010-02-23) 1 commit\n  (merged to 'next' on 2010-02-25 at 5c22a39)\n + Allow '+', '-' and '.' in remote helper names\n\n* jk/maint-add--interactive-delete (2010-02-22) 1 commit\n  (merged to 'next' on 2010-02-24 at 908cef8)\n + add-interactive: fix bogus diff header line ordering\n\n* js/runtime-prefix-trace-not-warn (2010-02-23) 1 commit\n  (merged to 'next' on 2010-02-24 at 8d9d305)\n + Print RUNTIME_PREFIX warning only when GIT_TRACE is set\n\n* jc/maint-fix-mailinfo-strip (2010-02-19) 1 commit\n  (merged to 'next' on 2010-02-24 at 621fa3d)\n + mailinfo: do not strip leading spaces even for a header line\n\n* ne/pack-local-doc (2010-02-24) 3 commits\n  (merged to 'next' on 2010-02-25 at 75cfba5)\n + pack-objects documentation: Fix --honor-pack-keep as well.\n + pack-objects documentation: reword \"objects that appear in the standard input\"\n + Documentation: pack-objects: Clarify --local's semantics.\n\n* mm/mkstemps-mode-for-packfiles (2010-02-22) 6 commits\n  (merged to 'next' on 2010-02-24 at 31b5903)\n + Use git_mkstemp_mode instead of plain mkstemp to create object files\n + git_mkstemps_mode: don't set errno to EINVAL on exit.\n + Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.\n + git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.\n + Move gitmkstemps to path.c\n + Add a testcase for ACL with restrictive umask.\n\n* nd/root-git (2010-02-14) 5 commits\n  (merged to 'next' on 2010-02-25 at bff4955)\n + Add test for using Git at root of file system\n + Support working directory located at root\n + Move offset_1st_component() to path.c\n + init-db, rev-parse --git-dir: do not append redundant slash\n + make_absolute_path(): Do not append redundant slash\n\n--------------------------------------------------\n[New Topics]\n\n* jl/submodule-diff-dirtiness (2010-03-05) 2 commits\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\nThe tip one may want to use flag bits from places different from \"format\",\nbut otherwise I found the basic idea reasonably sound.\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-06) 6 commits\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\nPerhaps later we would want to enable async-by-thread on all threading\ncapable platforms, if only to make sure we use the same code on major\nplatforms to reduce chances of platform specific bugs.\n\n* nd/setup (2010-03-07) 18 commits\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 (this branch uses lt/deepen-builtin-source.)\n\n--------------------------------------------------\n[Stalled]\n\n* sd/log-decorate (2010-02-17) 3 commits\n - log.decorate: usability fixes\n - Add `log.decorate' configuration variable.\n - git_config_maybe_bool()\n\nProbably ready for 'next', except that people need to be warned about\nhaving to update their scripts to explicitly pass --no-decorate to keep\nthem working.  A good idea to disable this when --pretty was given, just\nlike notes are disabled by default, was floated.\n\n* pb/log-first-parent-p-m (2010-02-10) 1 commit\n  (merged to 'next' on 2010-02-17 at 2f8e5ae)\n + git log -p -m: document -m and honor --first-parent\n\nNeeds tests but otherwise looked fine.  We might want to teach \"-m trumps\nimplicit --cc\" to \"git show\", but that is a totally separate topic.\n\nI actually care about this \"log -p --first-parent\" very much, but if Pasky\nis counting on that and procrastinating until I write the tests myself, he\nis in for a disappointment.  I don't have that much free time these days.\nHelp is appreciated.\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--------------------------------------------------\n[Cooking]\n\n* sd/format-patch-to (2010-02-17) 1 commit\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; it seems we will have updates to add --no-{cc,to,...}\nto both format-patch and send-email but that is more or less independent clean-up.\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 - 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 - color: allow multiple attributes\n\nAs the output we generate is bounded, there is no need for checking\noverflows as long as we count the maximum correctly.\n\n* jc/maint-add-ignored-dir (2010-02-28) 3 commits\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\nNot quite happy, but will merge to 'next' anyway.\n\n* ml/color-grep (2010-03-07) 3 commits\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\nPerhaps unoptimize the \"reset\" bit?  Other than that looked Ok.\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* 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* bw/union-merge-refactor (2010-03-01) 4 commits\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* mg/test-svn-info (2010-03-03) 2 commits\n - t9119-git-svn-info.sh: test with svn 1.6.* as well\n - git-svn: req_svn when needed\n\n* jh/maint-submodule-status-in-void (2010-03-03) 1 commit\n - submodule summary: do not fail before the first commit\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\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\nThis is a painful one to keep out of 'master' for a long time, as any\ntopic with new builtin commands will need evil merges to adjust to it.\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\n* tr/notes-display (2010-02-23) 11 commits\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-roll planned.\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\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\nNot quite happy, but will merge to 'master' shortly anyway.\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-01-19) 5 commits\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"},{"id":"136380","messageId":"7vk4tnw4nz.fsf@alter.siamese.dyndns.org","threadId":"22947","inReplyTo":"7vk4tnd9wu.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #02; Sun, 07)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-08T09:20:32Z","receivedAt":"2010-03-08T09:20:32Z","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> [Stalled]\n>\n> * sd/log-decorate (2010-02-17) 3 commits\n>  - log.decorate: usability fixes\n>  - Add `log.decorate' configuration variable.\n>  - git_config_maybe_bool()\n>\n> Probably ready for 'next', except that people need to be warned about\n> having to update their scripts to explicitly pass --no-decorate to keep\n> them working.  A good idea to disable this when --pretty was given, just\n> like notes are disabled by default, was floated.\n\nAfter thinking about this a bit more, I do not think it is a good idea to\ndisable configured decoration when an explicit --pretty is given.  A patch\nto do so would be a trivial two-liner:\n\ndiff --git a/builtin-log.c b/builtin-log.c\nindex 0afba31..d4090f1 100644\n--- a/builtin-log.c\n+++ b/builtin-log.c\n@@ -85,6 +85,10 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix,\n \t\tif (rev->diffopt.nr_paths != 1)\n \t\t\tusage(\"git logs can only follow renames on one pathname at a time\");\n \t}\n+\n+\tif (rev->pretty_given)\n+\t\tdecoration_style = 0;\n+\n \tfor (i = 1; i < argc; i++) {\n \t\tconst char *arg = argv[i];\n \t\tif (!strcmp(arg, \"--decorate\")) {\n\nbut there is one big difference between notes and decoration.  Decorations\nare designed to be a small, one-per-ref tokens that would sit well on a\nline that already has other essential informations, while notes are a lot\nlouder \"in your face\" annotations that occupy line(s) on their own.\n\nSo I think we are better off without the above patch.  Unless somebody\npoints out flaws in my thinking, I am planning to merge this to 'next'\nshortly.\n"},{"id":"136386","messageId":"20100308122325.GA20032@neumann","threadId":"22947","inReplyTo":"7vk4tnd9wu.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #02; Sun, 07)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2010-03-08T12:23:25Z","receivedAt":"2010-03-08T12:23:25Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Sun, Mar 07, 2010 at 02:49:53PM -0800, Junio C Hamano wrote:\n> * sg/bash-completion (2010-02-23) 4 commits\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> \n> Perhaps rename _git_frotz -> _git_complete_frotz?  I dunno.\n\nPreparations for a review next week takes up all my time; will reroll\nafter it's over.\n"},{"id":"136477","messageId":"20100309231306.GD25265@sigill.intra.peff.net","threadId":"22947","inReplyTo":"7vk4tnw4nz.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #02; Sun, 07)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-03-09T23:13:07Z","receivedAt":"2010-03-09T23:13:07Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Mar 08, 2010 at 01:20:32AM -0800, Junio C Hamano wrote:\n\n> After thinking about this a bit more, I do not think it is a good idea to\n> disable configured decoration when an explicit --pretty is given.  A patch\n> to do so would be a trivial two-liner:\n> [...]\n> but there is one big difference between notes and decoration.  Decorations\n> are designed to be a small, one-per-ref tokens that would sit well on a\n> line that already has other essential informations, while notes are a lot\n> louder \"in your face\" annotations that occupy line(s) on their own.\n\nTrue, but turning off configured decorations also helps scripts. I think\nwe can all agree that normal \"git log\" is not supposed to be consumed by\nscripts, but should \"git log --pretty=raw\" turn off configured\ndecorations?\n\nWith the current code, gitk (which calls \"log --pretty=raw\") barfs on a\nrepository with log.decorate turned on.\n\n-Peff\n"},{"id":"136484","messageId":"7vvdd5t2lf.fsf@alter.siamese.dyndns.org","threadId":"22947","inReplyTo":"20100309231306.GD25265@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (Mar 2010, #02; Sun, 07)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-03-10T00:58:04Z","receivedAt":"2010-03-10T00:58:04Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Mon, Mar 08, 2010 at 01:20:32AM -0800, Junio C Hamano wrote:\n>\n>> After thinking about this a bit more, I do not think it is a good idea to\n>> disable configured decoration when an explicit --pretty is given.  A patch\n>> to do so would be a trivial two-liner:\n>> [...]\n>> but there is one big difference between notes and decoration.  Decorations\n>> are designed to be a small, one-per-ref tokens that would sit well on a\n>> line that already has other essential informations, while notes are a lot\n>> louder \"in your face\" annotations that occupy line(s) on their own.\n>\n> True, but turning off configured decorations also helps scripts. I think\n> we can all agree that normal \"git log\" is not supposed to be consumed by\n> scripts, but should \"git log --pretty=raw\" turn off configured\n> decorations?\n>\n> With the current code, gitk (which calls \"log --pretty=raw\") barfs on a\n> repository with log.decorate turned on.\n\nYuck.  Do you mean we would need _at least_ something like this?  I am\nundecided if we should limit to FMT_RAW if that is the case, though.\nReading from \"git log --pretty=raw\" is just as unkosher as reading from\n\"git log --pretty=oneline\", but a bigger question is do we still have\nenough plumbing support to replace them, or Porcelain \"log\" has advanced\ntoo much too quickly, leaving plumbing \"rev-list\" behind.\n\nI can obviously rip the configuration variable support out.\n\nSteven, what do you want to do?\n\n builtin-log.c |    2 ++\n 1 files changed, 2 insertions(+), 0 deletions(-)\n\ndiff --git a/builtin-log.c b/builtin-log.c\nindex 0afba31..29a59b0 100644\n--- a/builtin-log.c\n+++ b/builtin-log.c\n@@ -77,6 +77,8 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix,\n \n \tif (!rev->show_notes_given && !rev->pretty_given)\n \t\trev->show_notes = 1;\n+\tif (rev->pretty_given && rev->commit_format == CMIT_FMT_RAW)\n+\t\tdecoration_style = 0;\n \n \tif (rev->diffopt.pickaxe || rev->diffopt.filter)\n \t\trev->always_show_header = 0;\n"},{"id":"136537","messageId":"20100310195941.GA32387@sigill.intra.peff.net","threadId":"22947","inReplyTo":"7vvdd5t2lf.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2010, #02; Sun, 07)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-03-10T19:59:42Z","receivedAt":"2010-03-10T19:59:42Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Mar 09, 2010 at 04:58:04PM -0800, Junio C Hamano wrote:\n\n> > With the current code, gitk (which calls \"log --pretty=raw\") barfs on a\n> > repository with log.decorate turned on.\n> \n> Yuck.  Do you mean we would need _at least_ something like this?  I am\n\nYeah, your patch fixes the problem.\n\n> undecided if we should limit to FMT_RAW if that is the case, though.\n> Reading from \"git log --pretty=raw\" is just as unkosher as reading from\n> \"git log --pretty=oneline\", but a bigger question is do we still have\n> enough plumbing support to replace them, or Porcelain \"log\" has advanced\n> too much too quickly, leaving plumbing \"rev-list\" behind.\n\nIt looks like the switch to \"git log\" in gitk came from c961b22 (gitk:\nUse git log and add support for --left-right, 2007-07-09), which in\nturn comes from:\n\n  http://article.gmane.org/gmane.comp.version-control.git/51977\n\nIt looks like rev-list supports --left-right properly now (not sure if\nit did back then or not), so if that was the only reason, it could\nprobably switch back.\n\nI seem to recall there are other reasons to use \"log\" in a script, but I\ncan't remember any off the top of my head.\n\n-Peff\n"}]}