{"thread":{"id":"24180","subject":"What's cooking in git.git (Jun 2010, #04; Wed, 23)","startedAt":"2010-06-23T22:09:32Z","lastAt":"2010-06-25T21:17:52Z","messageCount":24,"participants":["Junio C Hamano","Shawn O. Pearce","Ævar Arnfjörð Bjarmason","Nazri Ramliy","Tay Ray Chuan","Finn Arne Gangstad","Johannes Sixt","Eyvind Bernhardsen","Clément Poulain","Holger Hellmuth","Christian Couder","Santi Béjar","Michael J Gruber"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"144111","messageId":"7viq59e6zn.fsf@alter.siamese.dyndns.org","threadId":"24180","inReplyTo":null,"subject":"What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-06-23T22:09:32Z","receivedAt":"2010-06-23T22:09:32Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here 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\nI think I should start making noises about feature freeze for 1.7.2 by\nnow.  'next' is getting quite thin (and most of them look good ones),\nwhile topics in 'pu' are mostly the kind nobody gets hurt if we waited for\na cycle or two.\n\n--------------------------------------------------\n[New Topics]\n\n* ar/decorate-color (2010-06-23) 4 commits\n - Allow customizable commit decorations colors\n - log --decorate: Colorize commit decorations\n - log-tree.c: Use struct name_decoration's type for classifying decoration\n - commit.h: add 'type' to struct name_decoration\n\n* tc/checkout-B (2010-06-22) 3 commits\n - builtin/checkout: learn -B\n - builtin/checkout: change -b from an OPTION_STRING to a OPTION_SET_INT\n - add tests for checkout -b\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* bc/portable (2010-06-09) 7 commits\n  (merged to 'next' on 2010-06-13 at a423055)\n + Remove python 2.5'isms\n + Makefile: add PYTHON_PATH to GIT-BUILD-OPTIONS\n  (merged to 'next' on 2010-06-07 at 27a57c9)\n + t/aggregate-results: accomodate systems with small max argument list length\n + t/t7006: ignore return status of shell's unset builtin\n + t/t5150: remove space from sed script\n + git-request-pull.sh: remove -e switch to shell interpreter which breaks ksh\n + t/t5800: skip if python version is older than 2.5\n\n* bd/maint-unpack-trees-parawalk-fix (2010-06-10) 1 commit\n  (merged to 'next' on 2010-06-18 at 183c13e)\n + unpack-trees: Make index lookahead less pessimal\n\n* cc/cherry-pick-series (2010-06-02) 8 commits\n  (merged to 'next' on 2010-06-18 at 26c504f)\n + Documentation/revert: describe passing more than one commit\n + Documentation/cherry-pick: describe passing more than one commit\n + revert: add tests to check cherry-picking many commits\n + revert: allow cherry-picking more than one commit\n + revert: change help_msg() to take no argument\n + revert: refactor code into a do_pick_commit() function\n + revert: use run_command_v_opt() instead of execv_git_cmd()\n + revert: cleanup code for -x option\n (this branch is used by cc/cherry-pick-stdin.)\n\n* cc/maint-commit-reflog-msg (2010-06-12) 1 commit\n  (merged to 'next' on 2010-06-17 at 863be4d)\n + commit: use value of GIT_REFLOG_ACTION env variable as reflog message\n\n* eb/core-eol (2010-06-04) 4 commits\n  (merged to 'next' on 2010-06-17 at 66b0c9f)\n + Add \"core.eol\" config variable\n + Rename the \"crlf\" attribute \"text\"\n + Add per-repository eol normalization\n + Add tests for per-repository eol normalization\n (this branch uses fg/autocrlf.)\n\n* em/checkout-orphan (2010-06-10) 6 commits\n  (merged to 'next' on 2010-06-12 at 2f531d5)\n + log_ref_setup: don't return stack-allocated array\n  (merged to 'next' on 2010-06-07 at 23b4607)\n + bash completion: add --orphan to 'git checkout'\n + t3200: test -l with core.logAllRefUpdates options\n + checkout --orphan: respect -l option always\n + refs: split log_ref_write logic into log_ref_setup\n + Documentation: alter checkout --orphan description\n\n* fg/autocrlf (2010-05-12) 1 commit\n  (merged to 'next' on 2010-05-21 at 5f43b66)\n + autocrlf: Make it work also for un-normalized repositories\n (this branch is used by eb/core-eol.)\n\n* gs/usage-to-stdout (2010-06-12) 2 commits\n  (merged to 'next' on 2010-06-13 at e83c00f)\n + parseopt: wrap rev-parse --parseopt usage for eval consumption\n  (merged to 'next' on 2010-06-03 at c81c783)\n + print the usage string on stdout instead of stderr\n\n* gv/portable (2010-06-11) 20 commits\n  (merged to 'next' on 2010-06-13 at 1add99c)\n + test-lib: use DIFF definition from GIT-BUILD-OPTIONS\n  (merged to 'next' on 2010-06-07 at 1796035)\n + build: propagate $DIFF to scripts\n  (merged to 'next' on 2010-06-03 at 41ae9cb)\n + Makefile: Tru64 portability fix\n + Makefile: HP-UX 10.20 portability fixes\n + Makefile: HPUX11 portability fixes\n + Makefile: SunOS 5.6 portability fix\n + inline declaration does not work on AIX\n + Allow disabling \"inline\"\n + Some platforms lack socklen_t type\n + Make NO_{INET_NTOP,INET_PTON} configured independently\n + Makefile: some platforms do not have hstrerror anywhere\n + git-compat-util.h: some platforms with mmap() lack MAP_FAILED definition\n + test_cmp: do not use \"diff -u\" on platforms that lack one\n + fixup: do not unconditionally disable \"diff -u\"\n + tests: use \"test_cmp\", not \"diff\", when verifying the result\n + Do not use \"diff\" found on PATH while building and installing\n + enums: omit trailing comma for portability\n + Makefile: -lpthread may still be necessary when libc has only pthread stubs\n + Rewrite dynamic structure initializations to runtime assignment\n + Makefile: pass CPPFLAGS through to fllow customization\n\n* ic/maint-rebase-i-abort (2010-06-08) 1 commit\n  (merged to 'next' on 2010-06-17 at 7f5f430)\n + rebase -i: Abort cleanly if new base cannot be checked out\n\n* jc/maint-simpler-common-prefix (2010-06-16) 1 commit\n  (merged to 'next' on 2010-06-18 at 24fa283)\n + common_prefix: simplify and fix scanning for prefixes\n\n* jc/rev-list-ancestry-path (2010-06-04) 5 commits\n  (merged to 'next' on 2010-06-17 at b35488a)\n + revision: Turn off history simplification in --ancestry-path mode\n + revision: Fix typo in --ancestry-path error message\n + Documentation/rev-list-options.txt: Explain --ancestry-path\n + Documentation/rev-list-options.txt: Fix missing line in example history graph\n + revision: --ancestry-path\n\n* jk/maint-advice-empty-amend (2010-06-06) 1 commit\n  (merged to 'next' on 2010-06-17 at 12ff4cd)\n + commit: give advice on empty amend\n\n* jn/checkout-doc (2010-06-01) 2 commits\n  (merged to 'next' on 2010-06-13 at d01c620)\n + Documentation/checkout: clarify description\n  (merged to 'next' on 2010-06-07 at 93cc6a9)\n + Documentation/checkout: clarify description\n\n* jn/document-rebase-i-p-limitation (2010-05-31) 1 commit\n  (merged to 'next' on 2010-06-17 at a653a72)\n + rebase -i -p: document shortcomings\n\n* jn/gitweb-fastcgi (2010-06-05) 3 commits\n  (merged to 'next' on 2010-06-13 at 6d1fdd6)\n + gitweb: Run in FastCGI mode if gitweb script has .fcgi extension\n  (merged to 'next' on 2010-05-21 at cb1724f)\n + gitweb: Add support for FastCGI, using CGI::Fast\n + gitweb: Put all per-connection code in run() subroutine\n\n* jn/gitweb-return-or-exit-cleanup (2010-06-13) 1 commit\n  (merged to 'next' on 2010-06-18 at 44299d4)\n + gitweb: Return or exit after done serving request\n\n* js/async-thread (2010-06-11) 8 commits\n  (merged to 'next' on 2010-06-13 at bf7457c)\n + fast-import: die_nicely() back to vsnprintf (reverts part of ebaa79f)\n  (merged to 'next' on 2010-05-21 at 9d31940)\n + Enable threaded async procedures whenever pthreads is available\n  (merged to 'next' on 2010-05-04 at 2644e74)\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\n* js/maint-receive-pack-symref-alias (2010-06-16) 1 commit\n  (merged to 'next' on 2010-06-17 at ecb7fa5)\n + Merge branch 'tr/receive-pack-aliased-update-fix' into js/maint-receive-pack-symref-alias\n (this branch uses tr/receive-pack-aliased-update-fix.)\n\n* lt/extended-sha1-match-commit-with-regexp (2010-04-23) 1 commit\n  (merged to 'next' on 2010-06-17 at 9ba2ec9)\n + Make :/ accept a regex rather than a fixed pattern\n\n* mg/pretty-magic-space (2010-06-14) 1 commit\n  (merged to 'next' on 2010-06-18 at dd5a896)\n + pretty: Introduce ' ' modifier to add space if non-empty\n\n* rr/parse-date-refactor (2010-06-03) 1 commit\n  (merged to 'next' on 2010-06-17 at c55f72b)\n + Refactor parse_date for approxidate functions\n\n* sb/format-patch-signature (2010-06-15) 2 commits\n  (merged to 'next' on 2010-06-18 at 4aee846)\n + completion: Add --signature and format.signature\n + format-patch: Add a signature option (--signature)\n\n* sm/branch-broken-ref (2010-06-04) 2 commits\n  (merged to 'next' on 2010-06-17 at cb81c35)\n + branch: don't fail listing branches if one of the commits wasn't found\n + branch: exit status now reflects if branch listing finds an error\n\n* tc/commit-abbrev-fix (2010-06-12) 3 commits\n  (merged to 'next' on 2010-06-16 at b2df7f8)\n + commit::print_summary(): don't use format_commit_message()\n + t7502-commit: add summary output tests for empty and merge commits\n + t7502-commit: add tests for summary output\n\n* tc/maint-checkout-f-b (2010-06-21) 3 commits\n - builtin/checkout: Fix -f used with -b\n - t2018-checkout-branch.sh: \"checkout -f -b\" broken\n - add tests for checkout -b\n\n* tr/receive-pack-aliased-update-fix (2010-06-10) 1 commit\n  (merged to 'next' on 2010-06-14 at d3a3097)\n + check_aliased_update: strcpy() instead of strcat() to copy\n (this branch is used by js/maint-receive-pack-symref-alias.)\n\n--------------------------------------------------\n[Stalled -- would discard unless there are some movements soon]\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* ab/i18n (2010-06-15) 3 commits\n . Add initial C, Shell and Perl gettext translations\n . fixup! Add infrastructure\n . Add infrastructure for translating Git with gettext\n\nThe parts that touch other topics in flight probably need to be split into\nseparate patches; otherwise it is unmanageable.\n\n* ab/tap (2010-06-15) 5 commits\n . TAP: Make sure there's a newline before \"ok\" under harness\n . TAP: Say \"pass\" rather than \"ok\" on an empty line\n . We use TAP so the Perl test can run without scaffolding\n . Skip tests in a way that makes sense under TAP\n . Make test-lib.sh emit valid TAP format\n\nUpdated with a newer round but it seems to break \"make -j8 test\" when\nmerged to 'pu', hence ejected.  I was not sure why TAP is worth the\ntrouble, and I still am not sure.\n\n--------------------------------------------------\n[Cooking]\n\n* as/maint-completion-set-u-fix (2010-06-17) 1 commit\n - bash-completion: Fix __git_ps1 to work with \"set -u\"\n\nWill merge to 'next'; seemed sane.\n\n* zl/mailinfo-recode-patch (2010-06-14) 2 commits\n - add --recode-patch option to git-am\n - add --recode-patch option to git-mailinfo\n\nPerhaps another round is coming?\n\n* rr/svn-export (2010-06-10) 7 commits\n - Add LICENSE\n - Add SVN dump parser\n - Add infrastructure to write revisions in fast-export format\n - Add stream helper library\n - Add library for string-specific memory pool\n - Add cpp macro implementation of treaps\n - Add memory pool library\n\nI recall there was another round of re-roll planned for this one.\n\n* tr/rev-list-count (2010-06-17) 2 commits\n - bash completion: Support \"divergence from upstream\" messages in __git_ps1\n - rev-list: introduce --count option\n\nI'd like an Ack/Nack on the tip one from people involved in the completion\nscripts.\n\n* tr/send-email-8bit (2010-06-17) 1 commit\n  (merged to 'next' on 2010-06-23 at be75199)\n + send-email: ask about and declare 8bit mails\n\n* jl/maint-diff-ignore-submodules (2010-06-08) 2 commits\n  (merged to 'next' on 2010-06-23 at 057acb7)\n + Add optional parameters to the diff option \"--ignore-submodules\"\n + git diff: rename test that had a conflicting name\n\n* cp/textconv-cat-file (2010-06-09) 4 commits\n - [DONTMERGE] git gui: use textconv filter for diff and blame\n  (merged to 'next' on 2010-06-23 at eb6f216)\n + t/t8007: test textconv support for cat-file\n + textconv: support for cat_file\n + sha1_name: add get_sha1_with_context()\n (this branch uses ab/blame-textconv.)\n\nI'd need to prod Shawn to take a look at the tip one, as I shouldn't be\napplying it to my tree myself.\n\n* ab/blame-textconv (2010-06-07) 3 commits\n  (merged to 'next' on 2010-06-23 at a7da5af)\n + t/t8006: test textconv support for blame\n + textconv: support for blame\n + textconv: make the API public\n (this branch is used by cp/textconv-cat-file.)\n\n* jn/grep-open (2010-06-21) 7 commits\n  (merged to 'next' on 2010-06-22 at 8edca58)\n + t/t7811-grep-open.sh: remove broken/redundant creation of fake \"less\" script\n + t/t7811-grep-open.sh: ensure fake \"less\" is made executable\n + t/lib-pager.sh: remove unnecessary '^' from 'expr' regular expression\n  (merged to 'next' on 2010-06-18 at cf96ea8)\n + grep -O: allow optional argument specifying the pager (or editor)\n + grep: Add the option '--open-files-in-pager'\n + Unify code paths of threaded greps\n + grep: refactor grep_objects loop into its own function\n\n* pb/maint-perl-errmsg-no-dir (2010-06-18) 1 commit\n  (merged to 'next' on 2010-06-23 at 990ea67)\n + Git.pm: better error message\n\n* eb/double-convert-before-merge (2010-06-16) 1 commit\n - ll-merge: Normalize files before merging\n\nIf running git-to-worktree and then worktree-to-git _fixes_ something, it\nmeans that these are not roundtrip operations; there is something that is\nfundamentally wrong.  The commit log message doesn't help explaining it,\neither.\n\n* js/maint-am-rebase-invalid-author (2010-06-16) 1 commit\n  (merged to 'next' on 2010-06-23 at b345ad5)\n + am: use get_author_ident_from_commit instead of mailinfo when rebasing\n\n* ps/gitweb-soc (2010-06-02) 2 commits\n  (merged to 'next' on 2010-06-13 at 92245ae)\n + git-instaweb: Add option to reuse previous config file\n + Makefile: Use $(sharedir)/gitweb for target 'install-gitweb'\n\nIf we are going to have a configuration variable to control this, I\nstrongly suspect that --reuse-config should be renamed so that the\nvariable can be named more sanely and in line with whatever option\nthat replaces it.\n\n* cc/cherry-pick-stdin (2010-06-14) 3 commits\n - revert: do not rebuild argv on heap\n - revert: accept arbitrary rev-list options\n - t3508 (cherry-pick): futureproof against unmerged files\n\nWhat's the doneness of this one?\n\n* jn/show-num-walks (2010-06-01) 1 commit\n  (merged to 'next' on 2010-06-23 at e61649c)\n + DWIM 'git show -5' to 'git show --do-walk -5'\n\n* mg/rev-parse-lrbranches-locals (2010-05-14) 1 commit\n - revlist: Introduce --lrbranches and --locals revision specifiers\n (this branch uses mg/rev-parse-option-sifter-deprecation.)\n\nI am reluctant to merge a patch that introduces an unpronounceable\noption.\n\n* mg/rev-parse-option-sifter-deprecation (2010-05-14) 3 commits\n - t6018: make sure all tested symbolic names are different revs\n - t6018: add tests for rev-list's --branches and --tags\n - rev-parse: deprecate use as an option sifter\n (this branch is used by mg/rev-parse-lrbranches-locals.)\n\nI don't think these patches help anything.  Opinions?\n"},{"id":"144113","messageId":"20100623225457.GG14847@spearce.org","threadId":"24180","inReplyTo":"7veifxe63j.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] bash completion: Support \"divergence from upstream\" messages in __git_ps1","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2010-06-23T22:54:57Z","receivedAt":"2010-06-23T22:54:57Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n>\n> * tr/rev-list-count (2010-06-17) 2 commits\n>  - bash completion: Support \"divergence from upstream\" messages in __git_ps1\n>  - rev-list: introduce --count option\n>\n> I'd like an Ack/Nack on the tip one from people involved in the completion\n> scripts.\n\nTip commit Acked-by: Shawn O. Pearce <spearce@spearce.org>\n\n-- \nShawn.\n"},{"id":"144114","messageId":"AANLkTikXlb_4gSfOf3lk84cRglEvI-_-w9wATe1VWalF@mail.gmail.com","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-06-23T23:21:15Z","receivedAt":"2010-06-23T23:21:15Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Wed, Jun 23, 2010 at 22:09, Junio C Hamano <gitster@pobox.com> wrote:\n\n> * ab/i18n (2010-06-15) 3 commits\n>  . Add initial C, Shell and Perl gettext translations\n>  . fixup! Add infrastructure\n>  . Add infrastructure for translating Git with gettext\n>\n> The parts that touch other topics in flight probably need to be split into\n> separate patches; otherwise it is unmanageable.\n\nI've just submitted \"[PATCH v5] Add infrastructure for translating Git\nwith gettext\" (<1277332338-8486-1-git-send-email-avarab@gmail.com>)\nthat omits the \"Add initial C, Shell and Perl gettext translations\"\npatch. This'll greatly ease merging it with other topics.\n\nI can split it up further if you want, perhaps you'd like the changes\nto the Makefile to be in one seperate patch? Although I don't see how\nthat makes it easier to merge since you'd have to solve that conflict\nanyway, but perhaps your workflow is different from mine.\n\nTell me if I can do anything else to make it easier to merge it.\n\n> * ab/tap (2010-06-15) 5 commits\n>  . TAP: Make sure there's a newline before \"ok\" under harness\n>  . TAP: Say \"pass\" rather than \"ok\" on an empty line\n>  . We use TAP so the Perl test can run without scaffolding\n>  . Skip tests in a way that makes sense under TAP\n>  . Make test-lib.sh emit valid TAP format\n>\n> Updated with a newer round but it seems to break \"make -j8 test\" when\n> merged to 'pu', hence ejected.\n\nHow does it break under pu? I can't see any suspicious behavior when\nrunning it. I've run it with -j1 and -j8 in both next and pu and I get\nthe same test test-results/ every time.\n\n> I was not sure why TAP is worth the trouble, and I still am not\n> sure.\n\nCovered in comments to a previous \"What's cooking\" post.\n"},{"id":"144117","messageId":"AANLkTikjLN_c3W9JU1EkV52RREfTxqqF9YbPS-5biY3Z@mail.gmail.com","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Nazri Ramliy","fromEmail":"ayiehere@gmail.com","sentAt":"2010-06-24T00:44:34Z","receivedAt":"2010-06-24T00:44:34Z","isPatch":false,"sender":{"key":"ayiehere@gmail.com","avatar":"https://avatars.githubusercontent.com/u/164756?v=4"},"body":"On Thu, Jun 24, 2010 at 6:09 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> [New Topics]\n>\n> * ar/decorate-color (2010-06-23) 4 commits\n>  - Allow customizable commit decorations colors\n\nThis commit has some style violations. I've just sent a replacement patch, with\nan explanation of (and an apology for) the offences [1].\n\nnazri\n\n[1] http://mid.gmane.org/1277338876-21958-1-git-send-email-ayiehere@gmail.com\n"},{"id":"144118","messageId":"AANLkTik8SKa4OeMSOBDHzuNy73yg9vyM-leRG9SJa1TY@mail.gmail.com","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Tay Ray Chuan","fromEmail":"rctay89@gmail.com","sentAt":"2010-06-24T03:46:53Z","receivedAt":"2010-06-24T03:46:53Z","isPatch":false,"sender":{"key":"rctay89@gmail.com","avatar":"https://avatars.githubusercontent.com/u/61553?v=4"},"body":"Hi,\n\nOn Thu, Jun 24, 2010 at 6:09 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> [snip]\n> * tc/maint-checkout-f-b (2010-06-21) 3 commits\n>  - builtin/checkout: Fix -f used with -b\n>  - t2018-checkout-branch.sh: \"checkout -f -b\" broken\n>  - add tests for checkout -b\n\nIn case anyone is wondering, this series has been dropped in lieu of\n\"tc/checkout-B\".\n\n-- \nCheers,\nRay Chuan\n"},{"id":"144139","messageId":"20100624111757.GB3453@pvv.org","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Finn Arne Gangstad","fromEmail":"finnag@pvv.org","sentAt":"2010-06-24T11:17:57Z","receivedAt":"2010-06-24T11:17:57Z","isPatch":false,"sender":{"key":"finnag@pvv.org","avatar":"https://gravatar.com/avatar/b421ddd58c3f0f93aa473e17b98bb8d53c221fef741746bc8cb59fae4ec6d95e?d=mp&s=160"},"body":"On Wed, Jun 23, 2010 at 03:09:32PM -0700, Junio C Hamano wrote:\n\n> * eb/double-convert-before-merge (2010-06-16) 1 commit\n>  - ll-merge: Normalize files before merging\n> \n> If running git-to-worktree and then worktree-to-git _fixes_ something, it\n> means that these are not roundtrip operations; there is something that is\n> fundamentally wrong.  The commit log message doesn't help explaining it,\n> either.\n\nIf .gitattributes is different on the different sides, or if you\nenable autocrlf, the current repo contents may change after\ngit-to-worktree and worktree-to-git again. This is most easily seen if\nyou add some eol attributes, but also with clean/smudge filters, ident\nand so on.\n\nAssume you start out with a repo that has a lot of text files with\nCRLF checked in (A).\n\n  C----\n /     \\\nA---B---D\n\nB: Add \"* text=auto\" to .gitattributes and normalize all files to LF\nonly in repo\n\nD: try to merge C\n\nWithout this patch you will get a ridiculous number of lf/crlf\nconflicts when trying to merge C into D, since the repository contents\nfor C are \"wrong\" wrt the new .gitattributes file.\n\n- Finn Arne\n"},{"id":"144141","messageId":"4C2344C0.2010402@viscovery.net","threadId":"24180","inReplyTo":"20100624111757.GB3453@pvv.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2010-06-24T11:42:56Z","receivedAt":"2010-06-24T11:42:56Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 6/24/2010 13:17, schrieb Finn Arne Gangstad:\n> Assume you start out with a repo that has a lot of text files with\n> CRLF checked in (A).\n> \n>   C----\n>  /     \\\n> A---B---D\n> \n> B: Add \"* text=auto\" to .gitattributes and normalize all files to LF\n> only in repo\n> \n> D: try to merge C\n> \n> Without this patch you will get a ridiculous number of lf/crlf\n> conflicts when trying to merge C into D, since the repository contents\n> for C are \"wrong\" wrt the new .gitattributes file.\n\nWhat should happen when you have C checked out (i.e., you do not yet have\nthe updated .gitattributes in your worktree nor index) and merge B?\nCurrently, you get the identical conflicts, but I suspect that the patch\ndoes not help in this situation. IOW, it breaks the merge symmetry.\n\n-- Hannes\n"},{"id":"144142","messageId":"20100624115855.GA22684@pvv.org","threadId":"24180","inReplyTo":"4C2344C0.2010402@viscovery.net","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Finn Arne Gangstad","fromEmail":"finnag@pvv.org","sentAt":"2010-06-24T11:58:55Z","receivedAt":"2010-06-24T11:58:55Z","isPatch":false,"sender":{"key":"finnag@pvv.org","avatar":"https://gravatar.com/avatar/b421ddd58c3f0f93aa473e17b98bb8d53c221fef741746bc8cb59fae4ec6d95e?d=mp&s=160"},"body":"On Thu, Jun 24, 2010 at 01:42:56PM +0200, Johannes Sixt wrote:\n> Am 6/24/2010 13:17, schrieb Finn Arne Gangstad:\n> > Assume you start out with a repo that has a lot of text files with\n> > CRLF checked in (A).\n> > \n> >   C----\n> >  /     \\\n> > A---B---D\n> > \n> > B: Add \"* text=auto\" to .gitattributes and normalize all files to LF\n> > only in repo\n> > \n> > D: try to merge C\n> > \n> > Without this patch you will get a ridiculous number of lf/crlf\n> > conflicts when trying to merge C into D, since the repository contents\n> > for C are \"wrong\" wrt the new .gitattributes file.\n> \n> What should happen when you have C checked out (i.e., you do not yet have\n> the updated .gitattributes in your worktree nor index) and merge B?\n> Currently, you get the identical conflicts, but I suspect that the patch\n> does not help in this situation. IOW, it breaks the merge symmetry.\n\ngit merges .gitattributes early, so it will work any way you do the\nmerge I think? Each file in a merge is processed separately with\nwhatever .gitattributes file is active.\n\nIf you get a conflict in .gitattributes you may be in a slightly\ninteresting spot, but you will still get all the new attributes in the\nconflicted file, so in practice it should still work. git ignores the\nconflict markers in .gitattributes and moves on..\n\n- Finn Arne\n"},{"id":"144144","messageId":"71BD27DC-9CA7-40E8-8253-ABF61083E53C@gmail.com","threadId":"24180","inReplyTo":"4C2344C0.2010402@viscovery.net","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Eyvind Bernhardsen","fromEmail":"eyvind.bernhardsen@gmail.com","sentAt":"2010-06-24T12:23:09Z","receivedAt":"2010-06-24T12:23:09Z","isPatch":false,"sender":{"key":"eyvind.bernhardsen@gmail.com","avatar":"https://avatars.githubusercontent.com/u/106762?v=4"},"body":"On 24. juni 2010, at 13.42, Johannes Sixt wrote:\n\n> Am 6/24/2010 13:17, schrieb Finn Arne Gangstad:\n>> Assume you start out with a repo that has a lot of text files with\n>> CRLF checked in (A).\n>> \n>>  C----\n>> /     \\\n>> A---B---D\n>> \n>> B: Add \"* text=auto\" to .gitattributes and normalize all files to LF\n>> only in repo\n>> \n>> D: try to merge C\n>> \n>> Without this patch you will get a ridiculous number of lf/crlf\n>> conflicts when trying to merge C into D, since the repository contents\n>> for C are \"wrong\" wrt the new .gitattributes file.\n> \n> What should happen when you have C checked out (i.e., you do not yet have\n> the updated .gitattributes in your worktree nor index) and merge B?\n> Currently, you get the identical conflicts, but I suspect that the patch\n> does not help in this situation. IOW, it breaks the merge symmetry.\n\nI confess that I didn't expect this to work either, but it does: the merge completes without conflict.  This is even covered in the included test script (\"Check merging addition of text=auto\").\n\nI've cleaned the patch up a bit and added automatic delete/normalize conflict resolution.  Will submit a new version soon.\n-- \nEyvind Bernhardsen\n"},{"id":"144156","messageId":"4C23702F.8030707@viscovery.net","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2010-06-24T14:48:15Z","receivedAt":"2010-06-24T14:48:15Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 6/24/2010 0:09, schrieb Junio C Hamano:\n> * cp/textconv-cat-file (2010-06-09) 4 commits\n>  - [DONTMERGE] git gui: use textconv filter for diff and blame\n\nThis git-gui patch needs a fixup.\n\n-- Hannes\n\ndiff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl\nindex b02d2e5..c628750 100644\n--- a/git-gui/lib/diff.tcl\n+++ b/git-gui/lib/diff.tcl\n@@ -280,7 +280,7 @@ proc start_show_diff {cont_info {add_opts {}}} {\n \t\t\tlappend cmd diff-files\n \t\t}\n \t}\n-\tif {![is_config_false gui.textconv] && [git-version >ñ.6.1]} {\n+\tif {![is_config_false gui.textconv] && [git-version >= 1.6.1]} {\n \t\tlappend cmd --textconv\n \t}\n"},{"id":"144159","messageId":"4C237AE7.8000003@ira.uka.de","threadId":"24180","inReplyTo":"4C23702F.8030707@viscovery.net","subject":"git log --objects","fromName":"Holger Hellmuth","fromEmail":"hellmuth@ira.uka.de","sentAt":"2010-06-24T15:33:59Z","receivedAt":"2010-06-24T15:33:59Z","isPatch":false,"sender":{"key":"hellmuth@ira.uka.de","avatar":null},"body":"Shouldn't 'git log --objects' print out a list of all objects in the\nfile tree of the commits it lists?\n\nI tried git log with lots of other parameters, for example '-p' and\nnever saw any difference to the normal output and definitely no list of\nhash ids.\n"},{"id":"144158","messageId":"451c6e73ede877b1ae32a86396d47072@ensimag.fr","threadId":"24180","inReplyTo":"4C23702F.8030707@viscovery.net","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Clément Poulain","fromEmail":"clement.poulain@ensimag.imag.fr","sentAt":"2010-06-24T15:41:14Z","receivedAt":"2010-06-24T15:41:14Z","isPatch":false,"sender":{"key":"clement.poulain@ensimag.imag.fr","avatar":null},"body":"> Am 6/24/2010 0:09, schrieb Junio C Hamano:\n>> * cp/textconv-cat-file (2010-06-09) 4 commits\n>>  - [DONTMERGE] git gui: use textconv filter for diff and blame\n> \n> This git-gui patch needs a fixup.\n\nI wonder where do this come from.\nIt's seems to be OK there:\nhttp://mid.gmane.org/1276102929-31712-4-git-send-email-clement.poulain@ensimag.imag.fr\ndoesn't it ?\n\nRegards\n"},{"id":"144194","messageId":"7veifwchb6.fsf@alter.siamese.dyndns.org","threadId":"24180","inReplyTo":"20100624111757.GB3453@pvv.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-06-24T20:21:49Z","receivedAt":"2010-06-24T20:21:49Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Finn Arne Gangstad <finnag@pvv.org> writes:\n\n> On Wed, Jun 23, 2010 at 03:09:32PM -0700, Junio C Hamano wrote:\n>\n>> * eb/double-convert-before-merge (2010-06-16) 1 commit\n>>  - ll-merge: Normalize files before merging\n>> \n>> If running git-to-worktree and then worktree-to-git _fixes_ something, it\n>> means that these are not roundtrip operations; there is something that is\n>> fundamentally wrong.  The commit log message doesn't help explaining it,\n>> either.\n>\n> If .gitattributes is different on the different sides, or if you\n> enable autocrlf, the current repo contents may change after\n> git-to-worktree and worktree-to-git again.\n\nIOW, g2w-then-w2g may not be an identity function.\n\nIf we were to encourage use of this codepath to wider audiences, we may\nneed to have a document for people who write smudge/clean filters.  In\norder for the result to be stable, applying g2w-then-w2g once again on top\nof the result of running g2w-then-w2g on anything should be no-op, no?\n"},{"id":"144205","messageId":"40D1B374-E80A-4BA2-B3A2-142E8256C23E@gmail.com","threadId":"24180","inReplyTo":"7veifwchb6.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Eyvind Bernhardsen","fromEmail":"eyvind.bernhardsen@gmail.com","sentAt":"2010-06-24T20:51:03Z","receivedAt":"2010-06-24T20:51:03Z","isPatch":false,"sender":{"key":"eyvind.bernhardsen@gmail.com","avatar":"https://avatars.githubusercontent.com/u/106762?v=4"},"body":"On 24. juni 2010, at 22.21, Junio C Hamano wrote:\n\n> Finn Arne Gangstad <finnag@pvv.org> writes:\n> \n>> If .gitattributes is different on the different sides, or if you\n>> enable autocrlf, the current repo contents may change after\n>> git-to-worktree and worktree-to-git again.\n> \n> IOW, g2w-then-w2g may not be an identity function.\n> \n> If we were to encourage use of this codepath to wider audiences, we may\n> need to have a document for people who write smudge/clean filters.  In\n> order for the result to be stable, applying g2w-then-w2g once again on top\n> of the result of running g2w-then-w2g on anything should be no-op, no?\n\nHm.  Isn't that already a requirement?  If a clean filter doesn't clean to something normalized, simply touching a file could result in spurious differences (much like pre-safe-autocrlf autocrlf).  I could well be missing something here, though.\n-- \nEyvind\n"},{"id":"144215","messageId":"7vtyosnj23.fsf@alter.siamese.dyndns.org","threadId":"24180","inReplyTo":"40D1B374-E80A-4BA2-B3A2-142E8256C23E@gmail.com","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-06-24T22:48:36Z","receivedAt":"2010-06-24T22:48:36Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> writes:\n\n> On 24. juni 2010, at 22.21, Junio C Hamano wrote:\n>\n>> Finn Arne Gangstad <finnag@pvv.org> writes:\n>> \n>>> If .gitattributes is different on the different sides, or if you\n>>> enable autocrlf, the current repo contents may change after\n>>> git-to-worktree and worktree-to-git again.\n>> \n>> IOW, g2w-then-w2g may not be an identity function.\n>> \n>> If we were to encourage use of this codepath to wider audiences, we may\n>> need to have a document for people who write smudge/clean filters.  In\n>> order for the result to be stable, applying g2w-then-w2g once again on top\n>> of the result of running g2w-then-w2g on anything should be no-op, no?\n>\n> Hm.  Isn't that already a requirement?  If a clean filter doesn't clean\n> to something normalized, simply touching a file could result in spurious\n> differences (much like pre-safe-autocrlf autocrlf).  I could well be\n> missing something here, though.\n\nA natural expectation would be that g2w-then-w2g is an identity function,\nI think.  But the \"feature\" under discussion in this thread depends on\nthat g2w-then-w2g is _not_ a noop (otherwise it wouldn't do us any good).\n\nIOW, we are suggesting authors of clean/smudge to make their g2w-then-w2g\nperform more than just a round-trip but actively _clean things up_, aren't\nwe?  I don't think we have documented that suggestion, and I actually\nthink we might even have said that g2w-then-w2g should be a no-op\nsomewhere in the documentation.\n"},{"id":"144222","messageId":"201006250427.10060.chriscool@tuxfamily.org","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Christian Couder","fromEmail":"chriscool@tuxfamily.org","sentAt":"2010-06-25T02:27:09Z","receivedAt":"2010-06-25T02:27:09Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"On Thursday 24 June 2010 00:09:32 Junio C Hamano wrote:\n> \n> * cc/cherry-pick-stdin (2010-06-14) 3 commits\n>  - revert: do not rebuild argv on heap\n>  - revert: accept arbitrary rev-list options\n>  - t3508 (cherry-pick): futureproof against unmerged files\n> \n> What's the doneness of this one?\n\nWith the documentation fix I just posted, I think it is finished.\n\nThanks,\nChristian.\n"},{"id":"144225","messageId":"4C244658.9020704@viscovery.net","threadId":"24180","inReplyTo":"7veifwchb6.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2010-06-25T06:02:00Z","receivedAt":"2010-06-25T06:02:00Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 6/24/2010 22:21, schrieb Junio C Hamano:\n> Finn Arne Gangstad <finnag@pvv.org> writes:\n>> If .gitattributes is different on the different sides, or if you\n>> enable autocrlf, the current repo contents may change after\n>> git-to-worktree and worktree-to-git again.\n> \n> IOW, g2w-then-w2g may not be an identity function.\n> \n> If we were to encourage use of this codepath to wider audiences, we may\n> need to have a document for people who write smudge/clean filters.  In\n> order for the result to be stable, applying g2w-then-w2g once again on top\n> of the result of running g2w-then-w2g on anything should be no-op, no?\n\nI think this is implicit to some degree in the documentation,\ngitattributes(5):\n\n  The content filtering is done to massage the content into a shape that\n  is more convenient for the platform, filesystem, and the user to use.\n  [...] the intent is that if someone unsets the filter driver\n  definition, or does not have the appropriate filter program, the\n  project should still be usable.\n\n>From this I read that the content of the repository can only be in a\ncanonical shape; hence, the only thing that a clean filter can do is to\ngenerate the canonical shape of the data. This is, by definition, an\nidempotent operation (i.e., g2w(g2w(x)) == g2w(x)).\n\n(I'm talking only about clean filters because any pair of smudge+clean\nfilters where the clean filter cannot undo the effect of the smudge filter\nwould be noticed immediately and be considered broken without being\nmentioned explicitly in the documentation.)\n\n-- Hannes\n"},{"id":"144226","messageId":"20100625074623.GA4734@pvv.org","threadId":"24180","inReplyTo":"7veifwchb6.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Finn Arne Gangstad","fromEmail":"finnag@pvv.org","sentAt":"2010-06-25T07:46:23Z","receivedAt":"2010-06-25T07:46:23Z","isPatch":false,"sender":{"key":"finnag@pvv.org","avatar":"https://gravatar.com/avatar/b421ddd58c3f0f93aa473e17b98bb8d53c221fef741746bc8cb59fae4ec6d95e?d=mp&s=160"},"body":"On Thu, Jun 24, 2010 at 01:21:49PM -0700, Junio C Hamano wrote:\n> >\n> > If .gitattributes is different on the different sides, or if you\n> > enable autocrlf, the current repo contents may change after\n> > git-to-worktree and worktree-to-git again.\n> \n> IOW, g2w-then-w2g may not be an identity function.\n\nAbsolutely, pretty much by definition this cannot be the case (and is\nnot the case for any of the built-in filters like eol, autocrlf,\nident), since you have no control of what you have in the repository\nbefore you enable the filter.\n\nWhat we assume though is that g2w(g2w(x)) == g2w(x). I think it is\nvery hard to come up with a reasonable case for a filter where that is\nnot the case.\n\n> If we were to encourage use of this codepath to wider audiences, we may\n> need to have a document for people who write smudge/clean filters.  In\n> order for the result to be stable, applying g2w-then-w2g once again on top\n> of the result of running g2w-then-w2g on anything should be no-op, no?\n\nThis _has_ to work, otherwise you would get dirty contents after a\ncheckout, and that would be horrible.\n\nSo, the follolwing should be true:\n\ng2w(x) == g2w(g2w(x))\nA -> g2w() -> B -> g2w() -> B ... \n\nw2g(g2w(x)) == w2g(g2w(w2g(g2w(x))))\nX -> g2w() -> w2g() -> Y -> g2w() -> w2g() -> Y ...\n\nRunning w2g() twice should also be the same as running it once. \nI thought nothing in git required it as such, but in the case of a\nmissing smudge filter git will call w2g() on something that is already\ncleaned. I think the clean/smudge guidelines should be:\n\n  \"Both clean and smudge filters should be idempotent; running them\n   multiple times should not alter the contents further.\"\n\n- Finn Arne\n"},{"id":"144230","messageId":"20100625084332.GC4734@pvv.org","threadId":"24180","inReplyTo":"7vtyosnj23.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Finn Arne Gangstad","fromEmail":"finnag@pvv.org","sentAt":"2010-06-25T08:43:32Z","receivedAt":"2010-06-25T08:43:32Z","isPatch":false,"sender":{"key":"finnag@pvv.org","avatar":"https://gravatar.com/avatar/b421ddd58c3f0f93aa473e17b98bb8d53c221fef741746bc8cb59fae4ec6d95e?d=mp&s=160"},"body":"On Thu, Jun 24, 2010 at 03:48:36PM -0700, Junio C Hamano wrote:\n\n> A natural expectation would be that g2w-then-w2g is an identity function,\n> I think.  But the \"feature\" under discussion in this thread depends on\n> that g2w-then-w2g is _not_ a noop (otherwise it wouldn't do us any good).\n\nThis is a natural expecation for subsequent runs. The first time you\nrun it though, it makes more sense (and all built in filters act this\nway) to change the file to its canonical form instead. If it already\nis in its canonical form, you expect no further change.\n\n> IOW, we are suggesting authors of clean/smudge to make their g2w-then-w2g\n> perform more than just a round-trip but actively _clean things up_, aren't\n> we?  I don't think we have documented that suggestion, and I actually\n> think we might even have said that g2w-then-w2g should be a no-op\n> somewhere in the documentation.\n\nIt's not that we suggest they should clean things up, it is that they\nALREADY clean things up. It's hard to make a reasonable filter that\ndoesn't. And git should (and can!) give you some assistance in\nhandling cleanup-related changes if you have such a filter.\n\nTo make a non-normalizing filter, both of these would have to be true:\n1. g2w then g2w again would change the file even more\n2. w2g on something that was run twice through g2w would be equivalent\n   to running it through g2w once.. e.g. w2g(g2w(g2w(x))) == g2w(x),\n   can't think of any resaonable scenario.\n\nIf you somehow manage to make a filter where w2g(g2w(x)) == x for all\nx, the patch under discussion will not create any problems. I've never\nseen such a filter though.\n\n- Finn Arne\n"},{"id":"144234","messageId":"AANLkTim_93FIAoz5_EPpRspCNUpMD30yk56enwcejglg@mail.gmail.com","threadId":"24180","inReplyTo":"4C237AE7.8000003@ira.uka.de","subject":"Re: git log --objects","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2010-06-25T10:06:18Z","receivedAt":"2010-06-25T10:06:18Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"On Thu, Jun 24, 2010 at 5:33 PM, Holger Hellmuth <hellmuth@ira.uka.de> wrote:\n> Shouldn't 'git log --objects' print out a list of all objects in the\n> file tree of the commits it lists?\n\nIn fact --objects prints all objects reachable from the given commits\n(or between commits if $commit1..$commit2)\n\n>\n> I tried git log with lots of other parameters, for example '-p' and\n> never saw any difference to the normal output and definitely no list of\n> hash ids.\n\nI think --objects, --objects-edge, --unpacked are for \"git rev-list\".\nSo they should not be listed in git-log man page.\n\nHTH,\nSanti\n"},{"id":"144235","messageId":"AANLkTil8zpoBSOih2sVQV33_GxPao4why3EOGGvPxE-u@mail.gmail.com","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-06-25T10:30:56Z","receivedAt":"2010-06-25T10:30:56Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Wed, Jun 23, 2010 at 22:09, Junio C Hamano <gitster@pobox.com> wrote:\n> Here are the topics that have been cooking.\n\nHere are topics that I've submitted that haven't made it into a\n\"What's cooking\" post, but which I consider ready for inclusion.\n\nSince I'm not sure whether they've been rejected, ignored or just\nforgotten I'm listing them here. It'd be nice to get an update on\ntheir status so I can act appropriately on my end.\n\n * git-am: Ignore whitespace before patches\n   (<1273944188-9472-1-git-send-email-avarab@gmail.com>)\n\n  Junio commented:\n\n    Actually cut-and-paste is often a major source of whitespace breakage\n    (including tabs silently being expanded), and I personally think a patch\n    like this to encourage the practice is going in a wrong direction.\n\n  my reply:\n\n    What it does is enable the GMail -> download -> git-am workflow. GMail\n    (and doubtless countless other) E-Mail providers introduce whitespace\n    at the beginning of raw E-Mail messages, while otherwise leaving them\n    intact.\n\n  That patch just makes git-am smarter while harming nothing. Given\n  the fuzzy behavior of E-Mail programs I think it should be included,\n  and generally that patch detection should try harder before failing.\n\n\n * Remove editor-specific droppings from .gitignore\n   (<1274061883-18043-1-git-send-email-avarab@gmail.com>).\n\n   Micro-cleanup that removes the (as far as I can see) only case\n   where .gitignore isn't ignoring something generated by the build\n   system. Context:\n\n      On Mon, May 17, 2010 at 01:35, Jonathan Nieder <jrnieder@gmail.com> wrote:\n      > Michael J Gruber wrote:\n      >\n      >> Does the git build process call format-patch? No! The .gitignore we\n      >> distribute is meant for things the build process creates\n      >\n      > Ah, true. I seem to remember a thread long ago about whether to\n      > include editor droppings in .gitignore, but I can’t find it in\n      > the git or lkml archive.\n      >\n      > git’s .gitignore does not include .*.swp, \\#*#, *~, indeed.\n\n      Thanks both of you, I stand corrected. Anyway, I guess this is a bug\n      then. It's the only thing ignored by Git's various .gitignore files\n      that isn't created by the build system.\n\n   The patch was acked by Michael J Gruber <git@drmicha.warpmail.net>.\n\n * perl libs: perl -w + use warnings is redundant\n   (<1274460741-9674-1-git-send-email-avarab@gmail.com>).\n\n   A minor cleanup of our Perl code, uses lexical warnings instead of\n   global warnings in code that's known to require Perl 5.6.0 or\n   later. Doesn't change behavior but uses the recommended Perl form.\n\n * sha1_file: Show the the type and path to corrupt objects\n   (<1276174021-9544-1-git-send-email-avarab@gmail.com>).\n\n   Make the error message for git-cat-file's (and other blog accessor\n   functions) more specific. From the commit message:\n\n      Change the error message that's displayed when we encounter corrupt\n      objects to be more specific. We now print the type (loose or packed)\n      of corrupted objects, along with the full path to the file in\n      question.\n\n      Before:\n\n         $ git cat-file blob 909ef997367880aaf2133bafa1f1a71aa28e09df\n         fatal: object 909ef997367880aaf2133bafa1f1a71aa28e09df is corrupted\n\n      After:\n\n         $ git cat-file blob 909ef997367880aaf2133bafa1f1a71aa28e09df\n         fatal: loose object 909ef997367880aaf2133bafa1f1a71aa28e09df\n(stored in .git/objects/90/9ef997367880aaf2133bafa1f1a71aa28e09df) is\ncorrupted\n\n      Knowing the path helps to quickly analyze what's wrong:\n\n         $ file .git/objects/90/9ef997367880aaf2133bafa1f1a71aa28e09df\n         .git/objects/90/9ef997367880aaf2133bafa1f1a71aa28e09df: empty\n"},{"id":"144242","messageId":"4C24B291.1040108@drmicha.warpmail.net","threadId":"24180","inReplyTo":"7viq59e6zn.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2010-06-25T13:43:45Z","receivedAt":"2010-06-25T13:43:45Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Junio C Hamano venit, vidit, dixit 24.06.2010 00:09:\n> \n> * mg/rev-parse-lrbranches-locals (2010-05-14) 1 commit\n>  - revlist: Introduce --lrbranches and --locals revision specifiers\n>  (this branch uses mg/rev-parse-option-sifter-deprecation.)\n> \n> I am reluctant to merge a patch that introduces an unpronounceable\n> option.\n\nWhile I could tell you how to pronounce it, I actually was about to\nsuggest dropping this patch! I don't like the name lrbranches, we have\ntwo names (heads/branches) for local branch heads already, and couldn't\ncome up with a better name, available name meaning \"all branch heads\".\n\n> \n> * mg/rev-parse-option-sifter-deprecation (2010-05-14) 3 commits\n>  - t6018: make sure all tested symbolic names are different revs\n>  - t6018: add tests for rev-list's --branches and --tags\n>  - rev-parse: deprecate use as an option sifter\n>  (this branch is used by mg/rev-parse-lrbranches-locals.)\n> \n> I don't think these patches help anything.  Opinions?\n\nThey helped the patch which is going to get dropped...\n\nBesides that: The two test patches improve the tests. t6018 gives the\nimpression to test something which it doesn't (because some symbolic\nnames point to the same rev, so it doesn't test whether rev-parse really\nresolves all of them), and was lacking coverage for --branches and\n--tags. So I think those two are independent improvements.\n\nAbout the \"deprecation/discouragement notice\" for rev-parse I don't\nknow. rev-parse is not completely in sync with all rev-list options, and\ndoesn't mean to be if I understood correctly. I know that now. As long\nas nobody cares, nobody cares...\n\nCheers,\nMichael\n"},{"id":"144263","messageId":"CFE3DCC1-E80A-4EF3-964B-E791D3224F06@gmail.com","threadId":"24180","inReplyTo":"7vtyosnj23.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Eyvind Bernhardsen","fromEmail":"eyvind.bernhardsen@gmail.com","sentAt":"2010-06-25T19:43:57Z","receivedAt":"2010-06-25T19:43:57Z","isPatch":false,"sender":{"key":"eyvind.bernhardsen@gmail.com","avatar":"https://avatars.githubusercontent.com/u/106762?v=4"},"body":"On 25. juni 2010, at 00.48, Junio C Hamano wrote:\n\n> Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> writes:\n> \n>> Hm.  Isn't that already a requirement?  If a clean filter doesn't clean\n>> to something normalized, simply touching a file could result in spurious\n>> differences (much like pre-safe-autocrlf autocrlf).  I could well be\n>> missing something here, though.\n> \n> A natural expectation would be that g2w-then-w2g is an identity function,\n> I think.  But the \"feature\" under discussion in this thread depends on\n> that g2w-then-w2g is _not_ a noop (otherwise it wouldn't do us any good).\n\nWell, it assumes that g2w does not smudge already smudged data (or that w2g can clean up after double smudging), but when the assumption fails you end up with the same merge conflict you would get without this series.  Is it important that _all_ filters support merging?\n\n> IOW, we are suggesting authors of clean/smudge to make their g2w-then-w2g\n> perform more than just a round-trip but actively _clean things up_, aren't\n> we?  I don't think we have documented that suggestion, and I actually\n> think we might even have said that g2w-then-w2g should be a no-op\n> somewhere in the documentation.\n\nI think it's worth documenting that a well-written (\"normalizing\", as Finn Arne said) filter allows automatic merging of filtered and unfiltered data.  I'll see what I can come up with.\n-- \nEyvind\n"},{"id":"144265","messageId":"7vaaqike0v.fsf@alter.siamese.dyndns.org","threadId":"24180","inReplyTo":"CFE3DCC1-E80A-4EF3-964B-E791D3224F06@gmail.com","subject":"Re: What's cooking in git.git (Jun 2010, #04; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-06-25T21:17:52Z","receivedAt":"2010-06-25T21:17:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> writes:\n\n> I think it's worth documenting that a well-written (\"normalizing\", as\n> Finn Arne said) filter allows automatic merging of filtered and\n> unfiltered data.  I'll see what I can come up with.\n\nThanks, both.\n"}]}