{"thread":{"id":"19266","subject":"What's cooking in git.git (May 2009, #01; Sat, 09)","startedAt":"2009-05-10T06:53:29Z","lastAt":"2009-05-11T09:35:50Z","messageCount":3,"participants":["Junio C Hamano","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"113448","messageId":"7vk54p30uu.fsf@alter.siamese.dyndns.org","threadId":"19266","inReplyTo":null,"subject":"What's cooking in git.git (May 2009, #01; Sat, 09)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-05-10T06:53:29Z","receivedAt":"2009-05-10T06:53:29Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Following the recent tradition after a feature release, I've rewound and\nrebuilt 'next' on top of 'master'.\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 branches, but I am still\nholding onto them.\n\nThe topics list the commits in reverse chronological order.  The topics\nmeant to be merged to the maintenance series have \"maint-\" in their names.\n\n----------------------------------------------------------------\n[New Topics]\n\n* mt/submodule-reference (Mon May 4 22:30:01 2009 +0300) 1 commit\n + Add --reference option to git submodule.\n\n* rr/forbid-bs-in-ref (Fri May 8 07:32:37 2009 +0200) 1 commit\n + Disallow '\\' in ref names\n\n* jk/maint-add-empty (Tue Apr 28 23:21:01 2009 -0400) 1 commit\n - add: don't complain when adding empty project root\n\n* lt/maint-diff-reduce-lstat (Sat May 9 15:11:17 2009 -0700) 2 commits\n + Teach 'git checkout' to preload the index contents\n + Avoid unnecessary 'lstat()' calls in 'get_stat_data()'\n\n* jk/maint-1.6.0-trace-argv (Fri May 8 05:06:15 2009 -0400) 1 commit\n + fix GIT_TRACE segfault with shell-quoted aliases\n\n* hv/sample-update (Fri May 8 17:22:30 2009 +0200) 1 commit\n + Extend sample update hook, disable modifying of existing tags\n\n* rs/grep-parseopt (Thu May 7 21:46:48 2009 +0200) 5 commits\n + grep: use parseopt\n + grep: remove global variable builtin_grep\n + parseopt: add PARSE_OPT_NODASH\n + parseopt: add OPT_NUMBER_CALLBACK\n + parseopt: add OPT_NEGBIT\n\n* do/maint-merge-recursive-fix (Sat May 9 14:49:59 2009 -0700) 1 commit\n + merge-recursive: never leave index unmerged while recursing\n\n* np/push-delta (Fri May 1 16:56:47 2009 -0400) 1 commit\n + allow OFS_DELTA objects during a push\n\n* jm/format-patch-no-auto-n-when-k-is-given (Sat May 9 10:12:01 2009 +0200) 1 commit\n + format-patch let -k override a config-specified format.numbered\n\n* da/mergetool-lib (Sat May 2 01:57:21 2009 -0700) 1 commit\n - mergetool--lib: specialize diff options for emerge and ecmerge\n\n* jk/no-no-no-empty-directory (Fri May 8 01:01:17 2009 -0400) 2 commits\n + parseopt: add OPT_NEGBIT\n + parseopt: add OPT_NEGBIT\n\n* fl/git-pm (Thu May 7 15:41:28 2009 +0200) 2 commits\n + Git.pm: Always set Repository to absolute path if autodetecting\n + Git.pm: Set GIT_WORK_TREE if we set GIT_DIR\n\n----------------------------------------------------------------\n[Will merge to \"master\" soon]\n\n\n----------------------------------------------------------------\n[Stalled and may need help and prodding to go forward]\n\n* ps/blame (Thu Mar 12 21:30:03 2009 +1100) 1 commit\n - blame.c: start libifying the blame infrastructure\n\nA few minor point remains in this initial one.  I hate to do these minor\nfix-ups myself, but I may end up doing so...\n\n* jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit\n - Allow --date=local --date=other-format to work as expected\n\nThe one I posted had a few corner-case bugs that was caught with the test\nsuite; this one has them fixed.  People did not like the UI so it is kept\nout of 'next'\n\n* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit\n - git-merge-file: allow converting the results for the work tree\n\nThis is a feature waiting for a user.\n\nWe did not give scripted Porcelains a way to say \"this temporary file I am\nusing for merging is for this path, so use the core.autocrlf and attributes\nrules for that final path\".  Instead, merge-file simply wrote out the\ndata in the canonical repository representation.\n\nrerere has the same issue, but it is a lot worse.  It reads the three\nfiles (preimage, postimage and thisimage) from the work tree in the work\ntree representation, merges them without converting them to the canonical\nrepresentation first but inserts the conflict markers with the canonical\nrepresentation and writes the resulting mess out.  It needs to be fixed to\nread with convert_to_git(), merge them while they are still in the\ncanonical representation and possibly add conflict markers, and then write\nthe results out after convert_to_working_tree().  It also needs to write\nin binary mode as well.\n\n* db/foreign-scm (Tue Mar 24 23:04:12 2009 -0400) 3 commits\n - Add option for using a foreign VCS\n - Document details of transport function APIs\n - Allow late reporting of fetched hashes\n\n* js/notes (Tue Apr 14 00:03:36 2009 +0200) 15 commits\n - Documentation: fix 'linkgit' macro in \"git-notes.txt\"\n - tests: fix \"export var=val\"\n - notes: refuse to edit notes outside refs/notes/\n - t3301: use test_must_fail instead of !\n - t3301: fix confusing quoting in test for valid notes ref\n - notes: use GIT_EDITOR and core.editor over VISUAL/EDITOR\n - notes: only clean up message file when editing\n - handle empty notes gracefully\n - git notes show: test empty notes\n - git-notes: fix printing of multi-line notes\n - notes: fix core.notesRef documentation\n - Add an expensive test for git-notes\n - Speed up git notes lookup\n - Add a script to edit/inspect notes\n - Introduce commit notes\n\n* hv/cvsps-tests (Sun Apr 5 01:40:50 2009 -0700) 8 commits\n - t/t9600: remove exit after test_done\n - cvsimport: extend testcase about patchset order to contain\n   branches\n - cvsimport: add test illustrating a bug in cvsps\n - Add a test of \"git cvsimport\"'s handling of tags and branches\n - Add some tests of git-cvsimport's handling of vendor branches\n - Test contents of entire cvsimported \"master\" tree contents\n - Use CVS's -f option if available (ignore user's ~/.cvsrc file)\n - Start a library for cvsimport-related tests\n\n----------------------------------------------------------------\n[Actively cooking]\n\n* cc/bisect (Fri Apr 24 08:29:01 2009 +0200) 10 commits\n - am: simplify \"sq\" function by using \"git rev-parse --sq-quote\"\n - bisect: use \"git rev-parse --sq-quote\" instead of a custom \"sq\"\n   function\n - rev-parse: add --sq-quote to shell quote arguments\n - rev-list: remove stringed output flag from \"show_bisect_vars\"\n - bisect--helper: remove \"--next-vars\" option as it is now useless\n - bisect: use \"git bisect--helper --next-exit\" in \"git-bisect.sh\"\n - bisect--helper: add \"--next-exit\" to output bisect results\n - bisect: move common bisect functionality to \"bisect_common\"\n - rev-list: refactor printing bisect vars\n - rev-list: make \"estimate_bisect_steps\" non static\n\n* mh/show-branch-color (Sat Apr 25 13:46:14 2009 +0200) 2 commits\n + bash completion: show-branch color support\n + show-branch: color the commit status signs\n\n* ac/graph-horizontal-line (Tue Apr 21 08:47:01 2009 -0400) 1 commit\n + graph API: Use horizontal lines for more compact graphs\n\n* ar/merge-one-file-diag (Wed Apr 29 23:40:50 2009 +0200) 1 commit\n - Clarify kind of conflict in merge-one-file helper\n\n* mh/diff-stat-color (Sat Apr 25 00:06:47 2009 +0200) 1 commit\n - diff: do not color --stat output like patch context\n\n* rc/http-push (Sat Apr 25 00:35:57 2009 +0800) 3 commits\n - http-push: send out fetch requests on queue\n - t5540-http-push: test fetching of packed objects\n - t5540-http-push: test fetching of loose objects\n\n* ae/anon-fetch-info (Fri Apr 17 10:20:11 2009 +0200) 1 commit\n + fetch: Strip usernames from url's before storing them\n\n* ar/unlink-err (Wed Apr 29 23:24:52 2009 +0200) 3 commits\n - print unlink(2) errno in copy_or_link_directory\n - replace direct calls to unlink(2) with unlink_or_warn\n - Introduce an unlink(2) wrapper which gives warning if unlink\n   failed\n\n* ph/submodule-rebase (Fri Apr 24 09:06:38 2009 +1000) 1 commit\n - git-submodule: add support for --rebase.\n\n* mw/send-email (Mon Apr 13 13:23:52 2009 -0500) 6 commits\n - send-email: Remove superfluous `my $editor = ...'\n - send-email: 'References:' should only reference what is sent\n - send-email: Handle \"GIT:\" rather than \"GIT: \" during --compose\n - Docs: send-email: --smtp-server-port can take symbolic ports\n - Docs: send-email: Refer to CONFIGURATION section for\n   sendemail.multiedit\n - Docs: send-email: Put options back into alphabetical order\n\nOnly partially queued, but this is not 1.6.3 material and we are not in a\nhurry.\n\n* js/add-edit (Mon Apr 27 19:51:42 2009 +0200) 2 commits\n + t3702: fix reliance on SHELL_PATH being '/bin/sh'\n + git-add: introduce --edit (to edit the diff vs. the index)\n\n* cc/replace (Tue Apr 14 00:36:59 2009 +0200) 13 commits\n - Documentation: add documentation for \"git replace\"\n - Add git-replace to .gitignore\n - builtin-replace: use \"usage_msg_opt\" to give better error messages\n - parse-options: add new function \"usage_msg_opt\"\n - builtin-replace: teach \"git replace\" to actually replace\n - Add new \"git replace\" command\n - environment: add global variable to disable replacement\n - mktag: call \"check_sha1_signature\" with the replacement sha1\n - replace_object: add a test case\n - object: call \"check_sha1_signature\" with the replacement sha1\n - sha1_file: add a \"read_sha1_file_repl\" function\n - replace_object: add mechanism to replace objects found in\n   \"refs/replace/\"\n - refs: add a \"for_each_replace_ref\" function\n\nI suspect an attempt to replace an object that is directly listed on the\ncommand line would not work very well with this series.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit\n - receive-pack: default receive.denyDeleteCurrent to refuse\n\n* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit\n - Refuse updating the current branch in a non-bare repository via\n   push\n\nThese are for 1.7.0, but the messages when they trigger together may need\nto be rethought.\n"},{"id":"113485","messageId":"7vab5kwuoz.fsf@alter.siamese.dyndns.org","threadId":"19266","inReplyTo":"7vk54p30uu.fsf@alter.siamese.dyndns.org","subject":"(revised) What's cooking in git.git (May 2009, #01; Sat, 09)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-05-10T20:48:28Z","receivedAt":"2009-05-10T20:48:28Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I forgot to give short description on the status of each notable topic\nbefore sending this message out last night.  Here is a revised one.\n\n-- >8 --\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 branches, but I am still\nholding onto them.\n\nThe topics list the commits in reverse chronological order.  The topics\nmeant to be merged to the maintenance series have \"maint-\" in their names.\n\n----------------------------------------------------------------\n[New Topics]\n\n* mt/submodule-reference (Mon May 4 22:30:01 2009 +0300) 1 commit\n + Add --reference option to git submodule.\n\n* rr/forbid-bs-in-ref (Fri May 8 07:32:37 2009 +0200) 1 commit\n + Disallow '\\' in ref names\n\nThis retroactively forbids use of what people could have been using\nhappily, which, strictly speaking, is a no-no, but makes sense in the\nlonger term.\n\n* jk/maint-add-empty (Tue Apr 28 23:21:01 2009 -0400) 1 commit\n - add: don't complain when adding empty project root\n\nWhen you say \"git add .\" in an empty directory, you get \"No path matches\n''\", instead of \"No path matches '.'\", and this \"fixes\" it by hiding the\nerror and making the command silently succeed.  Strictly speaking it\nintroduces inconsistency, but I think an empty directory is so\nuninteresting special case that not signalling it as an error is Ok.\n\nWill merge to 'next'.\n\n* lt/maint-diff-reduce-lstat (Sat May 9 15:11:17 2009 -0700) 2 commits\n + Teach 'git checkout' to preload the index contents\n + Avoid unnecessary 'lstat()' calls in 'get_stat_data()'\n\n* jk/maint-1.6.0-trace-argv (Fri May 8 05:06:15 2009 -0400) 1 commit\n + fix GIT_TRACE segfault with shell-quoted aliases\n\n* hv/sample-update (Fri May 8 17:22:30 2009 +0200) 1 commit\n + Extend sample update hook, disable modifying of existing tags\n\n* rs/grep-parseopt (Thu May 7 21:46:48 2009 +0200) 5 commits\n + grep: use parseopt\n + grep: remove global variable builtin_grep\n + parseopt: add PARSE_OPT_NODASH\n + parseopt: add OPT_NUMBER_CALLBACK\n + parseopt: add OPT_NEGBIT\n\n* do/maint-merge-recursive-fix (Sat May 9 14:49:59 2009 -0700) 1 commit\n + merge-recursive: never leave index unmerged while recursing\n\n* np/push-delta (Fri May 1 16:56:47 2009 -0400) 1 commit\n + allow OFS_DELTA objects during a push\n\n* jm/format-patch-no-auto-n-when-k-is-given (Sat May 9 10:12:01 2009 +0200) 1 commit\n + format-patch let -k override a config-specified format.numbered\n\n* da/mergetool-lib (Sat May 2 01:57:21 2009 -0700) 1 commit\n - mergetool--lib: specialize diff options for emerge and ecmerge\n\n* jk/no-no-no-empty-directory (Fri May 8 01:01:17 2009 -0400) 2 commits\n + parseopt: add OPT_NEGBIT\n + parseopt: add OPT_NEGBIT\n\nI somehow botched the commit log message of the top one; it is about\nfixing \"ls-files --no-empty-directory\".\n\n* fl/git-pm (Thu May 7 15:41:28 2009 +0200) 2 commits\n + Git.pm: Always set Repository to absolute path if autodetecting\n + Git.pm: Set GIT_WORK_TREE if we set GIT_DIR\n\n----------------------------------------------------------------\n[Will merge to \"master\" soon]\n\n\n----------------------------------------------------------------\n[Stalled and may need help and prodding to go forward]\n\n* ps/blame (Thu Mar 12 21:30:03 2009 +1100) 1 commit\n - blame.c: start libifying the blame infrastructure\n\nA few minor point remains in this initial one.  I hate to do these minor\nfix-ups myself, but I may end up doing so...\n\n* jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit\n - Allow --date=local --date=other-format to work as expected\n\nThe one I posted had a few corner-case bugs that was caught with the test\nsuite; this one has them fixed.  People did not like the UI so it is kept\nout of 'next'\n\n* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit\n - git-merge-file: allow converting the results for the work tree\n\nThis is a feature waiting for a user.\n\nWe did not give scripted Porcelains a way to say \"this temporary file I am\nusing for merging is for this path, so use the core.autocrlf and attributes\nrules for that final path\".  Instead, merge-file simply wrote out the\ndata in the canonical repository representation.\n\nrerere has the same issue, but it is a lot worse.  It reads the three\nfiles (preimage, postimage and thisimage) from the work tree in the work\ntree representation, merges them without converting them to the canonical\nrepresentation first but inserts the conflict markers with the canonical\nrepresentation and writes the resulting mess out.  It needs to be fixed to\nread with convert_to_git(), merge them while they are still in the\ncanonical representation and possibly add conflict markers, and then write\nthe results out after convert_to_working_tree().  It also needs to write\nin binary mode as well.\n\n* db/foreign-scm (Tue Mar 24 23:04:12 2009 -0400) 3 commits\n - Add option for using a foreign VCS\n - Document details of transport function APIs\n - Allow late reporting of fetched hashes\n\n* js/notes (Tue Apr 14 00:03:36 2009 +0200) 15 commits\n - Documentation: fix 'linkgit' macro in \"git-notes.txt\"\n - tests: fix \"export var=val\"\n - notes: refuse to edit notes outside refs/notes/\n - t3301: use test_must_fail instead of !\n - t3301: fix confusing quoting in test for valid notes ref\n - notes: use GIT_EDITOR and core.editor over VISUAL/EDITOR\n - notes: only clean up message file when editing\n - handle empty notes gracefully\n - git notes show: test empty notes\n - git-notes: fix printing of multi-line notes\n - notes: fix core.notesRef documentation\n - Add an expensive test for git-notes\n - Speed up git notes lookup\n - Add a script to edit/inspect notes\n - Introduce commit notes\n\n* hv/cvsps-tests (Sun Apr 5 01:40:50 2009 -0700) 8 commits\n - t/t9600: remove exit after test_done\n - cvsimport: extend testcase about patchset order to contain\n   branches\n - cvsimport: add test illustrating a bug in cvsps\n - Add a test of \"git cvsimport\"'s handling of tags and branches\n - Add some tests of git-cvsimport's handling of vendor branches\n - Test contents of entire cvsimported \"master\" tree contents\n - Use CVS's -f option if available (ignore user's ~/.cvsrc file)\n - Start a library for cvsimport-related tests\n\n----------------------------------------------------------------\n[Actively cooking]\n\n* cc/bisect (Fri Apr 24 08:29:01 2009 +0200) 10 commits\n - am: simplify \"sq\" function by using \"git rev-parse --sq-quote\"\n - bisect: use \"git rev-parse --sq-quote\" instead of a custom \"sq\"\n   function\n - rev-parse: add --sq-quote to shell quote arguments\n - rev-list: remove stringed output flag from \"show_bisect_vars\"\n - bisect--helper: remove \"--next-vars\" option as it is now useless\n - bisect: use \"git bisect--helper --next-exit\" in \"git-bisect.sh\"\n - bisect--helper: add \"--next-exit\" to output bisect results\n - bisect: move common bisect functionality to \"bisect_common\"\n - rev-list: refactor printing bisect vars\n - rev-list: make \"estimate_bisect_steps\" non static\n\nWill merge to 'next'.\n\n* mh/show-branch-color (Sat Apr 25 13:46:14 2009 +0200) 2 commits\n + bash completion: show-branch color support\n + show-branch: color the commit status signs\n\n* ac/graph-horizontal-line (Tue Apr 21 08:47:01 2009 -0400) 1 commit\n + graph API: Use horizontal lines for more compact graphs\n\n* ar/merge-one-file-diag (Wed Apr 29 23:40:50 2009 +0200) 1 commit\n - Clarify kind of conflict in merge-one-file helper\n\nWill merge to 'next'.\n\n* mh/diff-stat-color (Sat Apr 25 00:06:47 2009 +0200) 1 commit\n - diff: do not color --stat output like patch context\n\nWill merge to 'next'.\n\n* rc/http-push (Sat Apr 25 00:35:57 2009 +0800) 3 commits\n - http-push: send out fetch requests on queue\n - t5540-http-push: test fetching of packed objects\n - t5540-http-push: test fetching of loose objects\n\n* ae/anon-fetch-info (Fri Apr 17 10:20:11 2009 +0200) 1 commit\n + fetch: Strip usernames from url's before storing them\n\n* ar/unlink-err (Wed Apr 29 23:24:52 2009 +0200) 3 commits\n - print unlink(2) errno in copy_or_link_directory\n - replace direct calls to unlink(2) with unlink_or_warn\n - Introduce an unlink(2) wrapper which gives warning if unlink\n   failed\n\nWill merge to 'next'.\n\n* ph/submodule-rebase (Fri Apr 24 09:06:38 2009 +1000) 1 commit\n - git-submodule: add support for --rebase.\n\nWill merge to 'next'.\n\n* mw/send-email (Mon Apr 13 13:23:52 2009 -0500) 6 commits\n - send-email: Remove superfluous `my $editor = ...'\n - send-email: 'References:' should only reference what is sent\n - send-email: Handle \"GIT:\" rather than \"GIT: \" during --compose\n - Docs: send-email: --smtp-server-port can take symbolic ports\n - Docs: send-email: Refer to CONFIGURATION section for\n   sendemail.multiedit\n - Docs: send-email: Put options back into alphabetical order\n\nOnly partially queued, but this is not 1.6.3 material and we are not in a\nhurry.\n\nWill merge to 'next'.\n\n* js/add-edit (Mon Apr 27 19:51:42 2009 +0200) 2 commits\n + t3702: fix reliance on SHELL_PATH being '/bin/sh'\n + git-add: introduce --edit (to edit the diff vs. the index)\n\n* cc/replace (Tue Apr 14 00:36:59 2009 +0200) 13 commits\n - Documentation: add documentation for \"git replace\"\n - Add git-replace to .gitignore\n - builtin-replace: use \"usage_msg_opt\" to give better error messages\n - parse-options: add new function \"usage_msg_opt\"\n - builtin-replace: teach \"git replace\" to actually replace\n - Add new \"git replace\" command\n - environment: add global variable to disable replacement\n - mktag: call \"check_sha1_signature\" with the replacement sha1\n - replace_object: add a test case\n - object: call \"check_sha1_signature\" with the replacement sha1\n - sha1_file: add a \"read_sha1_file_repl\" function\n - replace_object: add mechanism to replace objects found in\n   \"refs/replace/\"\n - refs: add a \"for_each_replace_ref\" function\n\nI suspect an attempt to replace an object that is directly listed on the\ncommand line would not work very well with this series.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit\n - receive-pack: default receive.denyDeleteCurrent to refuse\n\n* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit\n - Refuse updating the current branch in a non-bare repository via\n   push\n\nThese are for 1.7.0, but the messages when they trigger together may need\nto be rethought.  Will start merging them to 'next' shortly.\n"},{"id":"113527","messageId":"20090511093550.GB5685@coredump.intra.peff.net","threadId":"19266","inReplyTo":"7vab5kwuoz.fsf@alter.siamese.dyndns.org","subject":"Re: (revised) What's cooking in git.git (May 2009, #01; Sat, 09)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-05-11T09:35:50Z","receivedAt":"2009-05-11T09:35:50Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sun, May 10, 2009 at 01:48:28PM -0700, Junio C Hamano wrote:\n\n> * jk/maint-add-empty (Tue Apr 28 23:21:01 2009 -0400) 1 commit\n>  - add: don't complain when adding empty project root\n> \n> When you say \"git add .\" in an empty directory, you get \"No path matches\n> ''\", instead of \"No path matches '.'\", and this \"fixes\" it by hiding the\n> error and making the command silently succeed.  Strictly speaking it\n> introduces inconsistency, but I think an empty directory is so\n> uninteresting special case that not signalling it as an error is Ok.\n> \n> Will merge to 'next'.\n\nActually, it is less invasive than that. It _already_ silently ignores\nempty directories, like \"mkdir foo && git add foo\". And because of the\nway we chdir to the project root, that is equivalent to \"mkdir foo && cd\nfoo && git add .\".\n\nThis just extends the behavior to the project root (\"mkdir foo && cd foo\n&& git init && git add .\"). So arguably it is reducing inconsistency. :)\n\n> * jk/no-no-no-empty-directory (Fri May 8 01:01:17 2009 -0400) 2 commits\n>  + parseopt: add OPT_NEGBIT\n>  + parseopt: add OPT_NEGBIT\n> \n> I somehow botched the commit log message of the top one; it is about\n> fixing \"ls-files --no-empty-directory\".\n\nToo bad it is not possible to rewind 'next'. ;)\n\n> * jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit\n>  - Allow --date=local --date=other-format to work as expected\n> \n> The one I posted had a few corner-case bugs that was caught with the test\n> suite; this one has them fixed.  People did not like the UI so it is kept\n> out of 'next'\n\nThis one has been sitting for a while. I was one of the complainers. If\nthere is interest, I can rework it according to our previous discussion\n(but I'm beginning to wonder if anybody actually cares about this\npatch).\n\n-Peff\n"}]}