{"thread":{"id":"11850","subject":"What's cooking in git.git (topics)","startedAt":"2008-02-03T10:59:13Z","lastAt":"2008-03-08T09:38:08Z","messageCount":50,"participants":["Junio C Hamano","Johannes Schindelin","Jakub Narebski","Jeff King","Lars Hjemli","Matthias Kestenholz","Brandon Casey","Shawn O. Pearce"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"67208","messageId":"7v7ihmuwzi.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":null,"subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-03T10:59:13Z","receivedAt":"2008-02-03T10:59:13Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been kept out of 'master'.\nCommits prefixed with '-' are only in 'pu' while commits\nprefixed with '+' are in 'next'.\n\nThe topics list the commits in reverse chronological order.\n\nI'd like to get post-release fixes to 'maint' first, tag 1.5.4.1\nand merge that to 'master', and then start merging things from\n'next' to 'master'.\n\nMy wish is to have small but short release cycle for 1.5.5 and\nleave bigger ones cooking for 1.6.0.\n\n----------------------------------------------------------------\n[Requests for Comments]\n\n* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit\n - git-send-email: Generalize auto-cc recipient mechanism.\n\nThis came after 1.5.4-rc cycle started and was placed on hold.\nI do not recall if there was any objection to it.\n\n* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits\n - gitignore: lazily find dtype\n - gitignore(5): Allow \"foo/\" in ignore list to match directory \"foo\"\n\nThis is redone after we had discussion on the list to properly\nmake \"foo/\" match only with directories and \"foo\" with both\nfiles and directories without unnecessary lstat(2) calls.\n\n* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits\n - core.whitespace: cr-at-eol\n - git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n - builtin-apply.c: pass ws_rule down to match_fragment()\n - builtin-apply.c: move copy_wsfix() function a bit higher.\n - builtin-apply.c: do not feed copy_wsfix() leading '+'\n - builtin-apply.c: simplify calling site to apply_line()\n - builtin-apply.c: clean-up apply_one_fragment()\n - builtin-apply.c: mark common context lines in lineinfo structure.\n - builtin-apply.c: optimize match_beginning/end processing a bit.\n - builtin-apply.c: make it more line oriented\n - builtin-apply.c: push match-beginning/end logic down\n - builtin-apply.c: restructure \"offset\" matching\n - builtin-apply.c: refactor small part that matches context\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n - Optimize rename detection for a huge diff\n\nMicro-optimization whose real world benefit is not proven.\n\n----------------------------------------------------------------\n[Will merge to 'master' after 1.5.4.1]\n\n* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n + git-name-rev: add a --(no-)undefined option.\n + git-describe: Add a --match option to limit considered tags.\n\n* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits\n + lazy index hashing\n + Create pathname-based hash-table lookup into index\n + read-cache.c: introduce is_racy_timestamp() helper\n + read-cache.c: fix a couple more CE_REMOVE conversion\n + Also use unpack_trees() in do_diff_cache()\n + Make run_diff_index() use unpack_trees(), not read_tree()\n + Avoid running lstat(2) on the same cache entry.\n + index: be careful when handling long names\n + Make on-disk index representation separate from in-core one\n\nThis is about reducing number of lstat(2) calls during complex\noperations, and optimizing \"do we have this in the index\"\nqueries.  Most likely this will be the first series to be merged\nto 'master'.\n\n----------------------------------------------------------------\n[Actively cooking]\n\n* jk/builtin-alias (Sun Feb 3 01:48:29 2008 -0800) 2 commits\n - Revert \"Support builtin aliases\"\n + Support builtin aliases\n\nWill revert from 'next', as mentioned in the previous issue of this\nmessage.\n\n----------------------------------------------------------------\n[Questionable]\n\n* jc/setup (Fri Feb 1 03:13:10 2008 -0800) 3 commits\n - git-add: adjust to the get_pathspec() changes.\n - Make blame accept absolute paths\n - setup: sanitize absolute and funny paths in get_pathspec()\n\nI suspect this would need to be rethought so that it will return\nthe same number of paths and make the caller choose what to do\nwith paths outside the repository.  This is very unfortunate.\n\nIdeally, all of git commands that use get_pathspec() should work\non paths inside work tree and barf on paths outside work tree,\nand in that sense the series as I did was fine.  But we have\nbolted-on-hack commands that want to see and act on paths that\nare outside of the work tree; filtering the paths outside the\nwork tree in get_pathspec() would break them.\n\nIf we redo this series that way, git-ls-files (especially with\nits --error-unmatch), git-clean, and git-add should detect the\npaths outside the work tree themselves and complain, without\nrelying on get_pathspec() to do the barfing for them.\n\n* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n - Authentication support for pserver\n\nThis needs careful security audit and a fix to its password\ndatabase format.  Plaintext in .git/config is not acceptable.\n\n----------------------------------------------------------------\n[On hold]\n\n* js/remote (Wed Dec 5 19:02:15 2007 +0000) 4 commits\n - Make git-remote a builtin\n - Test \"git remote show\" and \"git remote prune\"\n - parseopt: add flag to stop on first non option\n - path-list: add functions to work with unsorted lists\n\nI might have carefully looked at this in the past but I do not\nrecall if there were issues.  Need re-reviewing and help from\nthe list is appreciated.\n\n* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n - git-remote: make add -f guess HEAD, as clone does\n\nLikewise.\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.  Please resubmit for discussion and application.\nWhatever the name and UI is, selective removal of stash is a\nnice thing to have for 1.5.5.\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits\n - PARK: Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n - expose a helper function peel_to_type().\n - merge-recursive: split low-level merge functions out.\n\nMeant to avoid merge_recursive() during cherry-pick and revert,\nso that D/F conflicts can be redone right, but I got busy and\nthis has unfortunately stalled.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit\n - Make \"diff\" Porcelain output paths as relative to subdirectory.\n\n* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n - PARK: show-symref protocol extension.\n\n\n----------------------------------------------------------------\n\nIssues that I have looked at, but unprocessed, unconcluded\nand/or lack enough discussions to proceed.\n\n* \"git-apply --whitespace=fix\" context adjustment\n  $gmane/72248\n\n* pretty.c optimization (Marco)\n  $gmane/72260\n\n* zlib abstraction (Marco)\n  $gmane/72262\n\n* revision.c::limit_list() breakage (Jeff King)\n  $gmane/72324\n  t/t6009\n\n* synopsys: use {} instead of () for grouping alternatives (Jari Aalto)\n  $gmane/72243\n\n* A symref file for \".git/\" (Lars Hjemli)\n  $gmane/72244\n\n* safecrlf (Steffen Prohaska)\n  $gmane/72285\n\n* git-send-email unechoed interactive password (Michael Witten)\n  $gmane/72220\n\n* compat/qsort (Brian Downing)\n  $gmane/72311\n\n* unified \"user's choice brower\" (Christian Couder)\n  $gmane/72226\n\n* \"[alias] st = status\" and \"cd .git && git st\" (Jeff King)\n  $gmane/72327\n"},{"id":"67264","messageId":"alpine.LSU.1.00.0802032138420.7372@racer.site","threadId":"11850","inReplyTo":"7v7ihmuwzi.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-02-03T21:43:01Z","receivedAt":"2008-02-03T21:43:01Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sun, 3 Feb 2008, Junio C Hamano wrote:\n\n> [On hold]\n> \n> * js/remote (Wed Dec 5 19:02:15 2007 +0000) 4 commits\n>  - Make git-remote a builtin\n>  - Test \"git remote show\" and \"git remote prune\"\n>  - parseopt: add flag to stop on first non option\n>  - path-list: add functions to work with unsorted lists\n> \n> I might have carefully looked at this in the past but I do not\n> recall if there were issues.  Need re-reviewing and help from\n> the list is appreciated.\n\nYou said that the test suit fails on one of your machines, and I looked at \nit with valgrind.  There was an odd problem accessing free()d memory, and \nI decided to come back to it after 1.5.4.\n\nSo please let me rework it first, before you re-review it.\n\n> * synopsys: use {} instead of () for grouping alternatives (Jari Aalto)\n>   $gmane/72243\n\nPersonally, I do not think the current form merits any change.\n\nCiao,\nDscho\n"},{"id":"67493","messageId":"7vodavd9qw.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7v7ihmuwzi.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-05T09:37:43Z","receivedAt":"2008-02-05T09:37:43Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been kept out of 'master'.\nCommits prefixed with '-' are only in 'pu' while commits\nprefixed with '+' are in 'next'.\n\nThe topics list the commits in reverse chronological order.\n\nI'd like to get post-release fixes to 'maint' first, tag 1.5.4.1\nand merge that to 'master', and then start merging things from\n'next' to 'master'.\n\nMy wish is to have small but short release cycle for 1.5.5 and\nleave bigger ones cooking for 1.6.0.\n\n----------------------------------------------------------------\n[New Topics]\n\n* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit\n + Make error messages from cherry-pick/revert more sensible\n\nBjörn Steinbrink reported and then tested this.  Is queued in\n'next' but will push it out to 'master' after 1.5.4.1.\n\n* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n + Documentation/SubmittingPatches: discuss first then submit\n + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n   Subject header\n\nThese I think are sensible but they did not see much discussion,\nso they are parked here for now.\n\n* cc/browser (Sat Feb 2 07:32:56 2008 +0100) 4 commits\n - instaweb: use 'git-web--browse' to launch browser.\n - Rename 'git-help--browse.sh' to 'git-web--browse.sh'.\n - help--browse: add '--config' option to check a config option for a\n   browser.\n - help: make 'git-help--browse' usable outside 'git-help'.\n\nChristian Couder consolidated the logic to pick user's favorite\nbrowser between instaweb and help.\n\n* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits\n + git-send-email: Better handling of EOF\n + git-send-email: SIG{TERM,INT} handlers\n + git-send-email: ssh/login style password requests\n\nFor 'master' post 1.5.4.1.\n\n* db/no-separate-ls-remote-connection (Mon Feb 4 13:26:23 2008 -0500) 1 commit\n + Reduce the number of connects when fetching\n\nLooked reasonably clean and correct.  Will park in 'next' just\nin case, but I think this is ready for 'master' post 1.5.4.1.\n\n* bd/qsort (Sat Feb 2 19:11:30 2008 -0600) 1 commit\n - compat: Add simplified merge sort implementation from glibc\n\nMore reasonable qsort(3) than Microsoft by Brian Downing; I\nalready did the \"de-gcc-ism\" pointed out on the list but Brian\nsaid he would reroll the patch, so I've parked it in 'pu' for\nnow.  If Brian is Ok with the version here, we could move it to\n'next'.\n\n----------------------------------------------------------------\n[Requests for Comments]\n\n* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit\n + git-send-email: Generalize auto-cc recipient mechanism.\n\nThis came after 1.5.4-rc cycle started and was placed on hold.\nI do not recall if there was any objection to it.\n\n* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits\n + gitignore: lazily find dtype\n + gitignore(5): Allow \"foo/\" in ignore list to match directory \"foo\"\n\nThis is redone after we had discussion on the list to properly\nmake \"foo/\" match only with directories and \"foo\" with both\nfiles and directories without unnecessary lstat(2) calls.\n\n* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits\n + core.whitespace: cr-at-eol\n + git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n + builtin-apply.c: pass ws_rule down to match_fragment()\n + builtin-apply.c: move copy_wsfix() function a bit higher.\n + builtin-apply.c: do not feed copy_wsfix() leading '+'\n + builtin-apply.c: simplify calling site to apply_line()\n + builtin-apply.c: clean-up apply_one_fragment()\n + builtin-apply.c: mark common context lines in lineinfo structure.\n + builtin-apply.c: optimize match_beginning/end processing a bit.\n + builtin-apply.c: make it more line oriented\n + builtin-apply.c: push match-beginning/end logic down\n + builtin-apply.c: restructure \"offset\" matching\n + builtin-apply.c: refactor small part that matches context\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n - Optimize rename detection for a huge diff\n\nMicro-optimization whose real world benefit is not proven.\n\n----------------------------------------------------------------\n[Will merge to 'master' after 1.5.4.1]\n\n* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n + git-name-rev: add a --(no-)undefined option.\n + git-describe: Add a --match option to limit considered tags.\n\n* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits\n + lazy index hashing\n + Create pathname-based hash-table lookup into index\n + read-cache.c: introduce is_racy_timestamp() helper\n + read-cache.c: fix a couple more CE_REMOVE conversion\n + Also use unpack_trees() in do_diff_cache()\n + Make run_diff_index() use unpack_trees(), not read_tree()\n + Avoid running lstat(2) on the same cache entry.\n + index: be careful when handling long names\n + Make on-disk index representation separate from in-core one\n\nThis is about reducing number of lstat(2) calls during complex\noperations, and optimizing \"do we have this in the index\"\nqueries.  Most likely this will be the first series to be merged\nto 'master'.\n\n----------------------------------------------------------------\n[Dropped]\n\n* jk/builtin-alias (Sun Feb 3 01:48:29 2008 -0800) 2 commits\n + Revert \"Support builtin aliases\"\n + Support builtin aliases\n\nReverted from 'next'.\n\n* js/remote (Wed Dec 5 19:02:15 2007 +0000) 4 commits\n\nDropped per author's request, waiting for a respin.\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits\n + builtin-mv: minimum fix to avoid losing files\n + git-add: adjust to the get_pathspec() changes.\n + Make blame accept absolute paths\n + setup: sanitize absolute and funny paths in get_pathspec()\n\n----------------------------------------------------------------\n[Questionable]\n\n* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n - Authentication support for pserver\n\nThis needs careful security audit and a fix to its password\ndatabase format.  Plaintext in .git/config is not acceptable.\n\n----------------------------------------------------------------\n[On Hold]\n\n* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n - git-remote: make add -f guess HEAD, as clone does\n\nI might have carefully looked at this in the past but I do not\nrecall if there were issues.  Need re-reviewing and help from\nthe list is appreciated.\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.  Please resubmit for discussion and application.\nWhatever the name and UI is, selective removal of stash is a\nnice thing to have for 1.5.5.\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits\n - PARK: Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n - expose a helper function peel_to_type().\n - merge-recursive: split low-level merge functions out.\n\nMeant to avoid merge_recursive() during cherry-pick and revert,\nso that D/F conflicts can be redone right, but I got busy and\nthis has unfortunately stalled.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n . Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n . git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit\n . Make \"diff\" Porcelain output paths as relative to subdirectory.\n\n* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n . PARK: show-symref protocol extension.\n"},{"id":"67499","messageId":"m3zluf4s6r.fsf@localhost.localdomain","threadId":"11850","inReplyTo":"7vodavd9qw.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-05T10:24:19Z","receivedAt":"2008-02-05T10:24:19Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n>  + Documentation/SubmittingPatches: discuss first then submit\n>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n>    Subject header\n> \n> These I think are sensible but they did not see much discussion,\n> so they are parked here for now.\n\nIn those series I think the middle patch could be improved. I guess\nthat need for brevity overcame need for being explicit. I don't know\nif patches meant for discussion are to be send to mailing list only,\nor if the patches meant for submissions are to be sent to git mailing\nlist _and_ maintainer (and is it an error to send them only to the\nlist) from this description.\n\nThe rest patches are IMHO very good improvement.\n \n> ----------------------------------------------------------------\n> [Will merge to 'master' after 1.5.4.1]\n> \n> * ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n>  + git-name-rev: add a --(no-)undefined option.\n>  + git-describe: Add a --match option to limit considered tags.\n\nI'd really like that.\n \n\nIIRC there was also patch which did '~' expansion in paths provided\nvia options to git, but 1.) is was buggy, 2.) it dealt only with\nexcludefile, and not for example with --git-dir and --work-dir\narguments, 3.) it was not resend for furrther discussion.\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"67639","messageId":"7v8x1y1leg.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"m3zluf4s6r.fsf@localhost.localdomain","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-06T09:31:19Z","receivedAt":"2008-02-06T09:31:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n>>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n>>  + Documentation/SubmittingPatches: discuss first then submit\n>>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n>>    Subject header\n>> \n>> These I think are sensible but they did not see much discussion,\n>> so they are parked here for now.\n>\n> In those series I think the middle patch could be improved. I guess\n> that need for brevity overcame need for being explicit. I don't know\n> if patches meant for discussion are to be send to mailing list only,\n> or if the patches meant for submissions are to be sent to git mailing\n> list _and_ maintainer (and is it an error to send them only to the\n> list) from this description.\n\nYeah, I was very unsure about the wording.  What I think is the\nideal patch flow is:\n\n (0) You come up with an itch.  You code it up.\n\n (1) Send it to the list and cc people who may need to know about\n     the change.\n\n     The people who may need to know are the ones whose code you\n     are butchering.  These people happen to be the ones who are\n     most likely to be knowledgeable enough to help you, but\n     they have no obligation to help you (i.e. you ask for help,\n     don't demand).\n\n     The people could include me, but that is not because I am\n     currently the maintainer, but because I may happen to have\n     been involved in the code you are touching.\n\n (2) You get comments and suggestions for improvements.  You may\n     even get them in a \"on top of\" patch form.\n\n (3) Polish, refine, and re-send to the list and the people who\n     spend their time to improve your patch.  Go back to step (2).\n\n (4) The list forms consensus that the last round of your patch is\n     good.  Send it to the list and cc me.\n\n (5) It is merged to 'next', and cooked further and eventually\n     graduates to 'master'.\n\nIn any time between the (2)-(3) cycle, I should pick it up from\nthe list and queue it to 'pu', in order to make it easier for\npeople play with it without having to pick up and apply the\npatch to their trees themselves.\n"},{"id":"67741","messageId":"7vbq6tset4.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vodavd9qw.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-07T02:03:51Z","receivedAt":"2008-02-07T02:03:51Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been kept out of 'master'.\nCommits prefixed with '-' are only in 'pu' while commits\nprefixed with '+' are in 'next'.\n\nThe topics list the commits in reverse chronological order.\n\nI'd like to get post-release fixes to 'maint' first, tag 1.5.4.1\nand merge that to 'master', and then start merging things from\n'next' to 'master'.\n\nMy wish is to have small but short release cycle for 1.5.5 and\nleave bigger ones cooking for 1.6.0.\n\n----------------------------------------------------------------\n[New Topics]\n\n* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100) 1 commit\n + safecrlf: Add mechanism to warn about irreversible crlf\n   conversions\n\n* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits\n + fix config reading in tests\n + allow suppressing of global and system config\n\n* lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits\n - git-submodule: prepare for the .git-file\n - Add tests for .git file\n - Document the .git-file\n - Add platform-independent .git \"symlink\"\n\nSeems to have funny interaction with Jeff King's test script\nupdates.\n\n* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100) 4 commits\n + git-commit: add a prepare-commit-msg hook\n + git-commit: Refactor creation of log message.\n + git-commit: set GIT_EDITOR=: if editor will not be launched\n + git-commit: support variable number of hook arguments\n\n----------------------------------------------------------------\n[Requests for Comments]\n\n* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit\n + git-send-email: Generalize auto-cc recipient mechanism.\n\nThis came after 1.5.4-rc cycle started and was placed on hold.\nI do not recall if there was any objection to it.\n\n* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits\n + gitignore: lazily find dtype\n + gitignore(5): Allow \"foo/\" in ignore list to match directory \"foo\"\n\nThis is redone after we had discussion on the list to properly\nmake \"foo/\" match only with directories and \"foo\" with both\nfiles and directories without unnecessary lstat(2) calls.\n\n* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits\n + core.whitespace: cr-at-eol\n + git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n + builtin-apply.c: pass ws_rule down to match_fragment()\n + builtin-apply.c: move copy_wsfix() function a bit higher.\n + builtin-apply.c: do not feed copy_wsfix() leading '+'\n + builtin-apply.c: simplify calling site to apply_line()\n + builtin-apply.c: clean-up apply_one_fragment()\n + builtin-apply.c: mark common context lines in lineinfo structure.\n + builtin-apply.c: optimize match_beginning/end processing a bit.\n + builtin-apply.c: make it more line oriented\n + builtin-apply.c: push match-beginning/end logic down\n + builtin-apply.c: restructure \"offset\" matching\n + builtin-apply.c: refactor small part that matches context\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n - Optimize rename detection for a huge diff\n\nMicro-optimization whose real world benefit is not proven.\n\n----------------------------------------------------------------\n[Will merge to 'master' after 1.5.4.1]\n\n* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n + git-name-rev: add a --(no-)undefined option.\n + git-describe: Add a --match option to limit considered tags.\n\n* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits\n + lazy index hashing\n + Create pathname-based hash-table lookup into index\n + read-cache.c: introduce is_racy_timestamp() helper\n + read-cache.c: fix a couple more CE_REMOVE conversion\n + Also use unpack_trees() in do_diff_cache()\n + Make run_diff_index() use unpack_trees(), not read_tree()\n + Avoid running lstat(2) on the same cache entry.\n + index: be careful when handling long names\n + Make on-disk index representation separate from in-core one\n\nThis is about reducing number of lstat(2) calls during complex\noperations, and optimizing \"do we have this in the index\"\nqueries.  Most likely this will be the first series to be merged\nto 'master'.\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits\n + builtin-mv: minimum fix to avoid losing files\n + git-add: adjust to the get_pathspec() changes.\n + Make blame accept absolute paths\n + setup: sanitize absolute and funny paths in get_pathspec()\n\n* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit\n + Make error messages from cherry-pick/revert more sensible\n\nBjörn Steinbrink reported and then tested this.  Is queued in\n'next' but will push it out to 'master' after 1.5.4.1.\n\n* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n + Documentation/SubmittingPatches: discuss first then submit\n + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n   Subject header\n\nThese I think are sensible but they did not see much discussion,\nso they are parked here for now.\n\n* cc/browser (Sat Feb 2 07:32:56 2008 +0100) 4 commits\n + instaweb: use 'git-web--browse' to launch browser.\n + Rename 'git-help--browse.sh' to 'git-web--browse.sh'.\n + help--browse: add '--config' option to check a config option for a\n   browser.\n + help: make 'git-help--browse' usable outside 'git-help'.\n\nChristian Couder consolidated the logic to pick user's favorite\nbrowser between instaweb and help.\n\n* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits\n + git-send-email: Better handling of EOF\n + git-send-email: SIG{TERM,INT} handlers\n + git-send-email: ssh/login style password requests\n\nFor 'master' post 1.5.4.1.\n\n* db/no-separate-ls-remote-connection (Mon Feb 4 13:26:23 2008 -0500) 1 commit\n + Reduce the number of connects when fetching\n\nLooked reasonably clean and correct.  Will park in 'next' just\nin case, but I think this is ready for 'master' post 1.5.4.1.\n\n* bd/qsort (Tue Feb 5 15:10:44 2008 -0600) 1 commit\n + compat: Add simplified merge sort implementation from glibc\n\nMore reasonable qsort(3) than Microsoft by Brian Downing; I\nalready did the \"de-gcc-ism\" pointed out on the list but Brian\nsaid he would reroll the patch, so I've parked it in 'pu' for\nnow.  If Brian is Ok with the version here, we could move it to\n'next'.\n\n----------------------------------------------------------------\n[On Hold]\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n----------------------------------------------------------------\n[temporarily excluded]\n\n* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n . git-remote: make add -f guess HEAD, as clone does\n\nI might have carefully looked at this in the past but I do not\nrecall if there were issues.  Need re-reviewing and help from\nthe list is appreciated.\n\n* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n . Authentication support for pserver\n\nThis needs careful security audit and a fix to its password\ndatabase format.  Plaintext in .git/config is not acceptable.\n\n* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits\n . PARK: Start using replay-tree merge in cherry-pick\n . revert/cherry-pick: start refactoring call to merge_recursive\n . expose a helper function peel_to_type().\n . merge-recursive: split low-level merge functions out.\n\nMeant to avoid merge_recursive() during cherry-pick and revert,\nso that D/F conflicts can be redone right, but I got busy and\nthis has unfortunately stalled.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n . Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n . git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit\n . Make \"diff\" Porcelain output paths as relative to subdirectory.\n\n* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n . PARK: show-symref protocol extension.\n"},{"id":"67749","messageId":"20080207050548.GA32242@sigill.intra.peff.net","threadId":"11850","inReplyTo":"7vbq6tset4.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-02-07T05:05:49Z","receivedAt":"2008-02-07T05:05:49Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Feb 06, 2008 at 06:03:51PM -0800, Junio C Hamano wrote:\n\n> * lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits\n>  - git-submodule: prepare for the .git-file\n>  - Add tests for .git file\n>  - Document the .git-file\n>  - Add platform-independent .git \"symlink\"\n> \n> Seems to have funny interaction with Jeff King's test script\n> updates.\n\nI think this is a bug in Lars' code. The problem is that even though we\nset GIT_DIR to the contents of the '.git' file, we may already have run\nsetup_git_env, which creates and remembers paths like '.git/objects'.\n\nIt worked with the old tests because we set GIT_CONFIG, which meant that\nlooking at the config didn't require actually finding the .git\ndirectory. But now that we don't set GIT_CONFIG, setup_git_env gets\ncalled much earlier (to find the right config file). And I think this is\na vindication of my change, since it reflects real world usage much more\n-- I can't even get the hash-object test to pass if I do it by hand,\neven though the test script passed.\n\nThe solution is probably to intercept the lookup of the .git directory\nin setup_git_env, and read the .git file there (this should probably get\npulled out as a git_dir() function or similar).\n\n-Peff\n"},{"id":"67774","messageId":"8c5c35580802070143g697d82b7s3b04019664892f74@mail.gmail.com","threadId":"11850","inReplyTo":"20080207050548.GA32242@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (topics)","fromName":"Lars Hjemli","fromEmail":"hjemli@gmail.com","sentAt":"2008-02-07T09:43:12Z","receivedAt":"2008-02-07T09:43:12Z","isPatch":false,"sender":{"key":"hjemli@gmail.com","avatar":null},"body":"On Feb 7, 2008 6:05 AM, Jeff King <peff@peff.net> wrote:\n> On Wed, Feb 06, 2008 at 06:03:51PM -0800, Junio C Hamano wrote:\n>\n> > * lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits\n> >  - git-submodule: prepare for the .git-file\n> >  - Add tests for .git file\n> >  - Document the .git-file\n> >  - Add platform-independent .git \"symlink\"\n> >\n> > Seems to have funny interaction with Jeff King's test script\n> > updates.\n>\n> I think this is a bug in Lars' code. The problem is that even though we\n> set GIT_DIR to the contents of the '.git' file, we may already have run\n> setup_git_env, which creates and remembers paths like '.git/objects'.\n\nYeah, we need to run set_git_dir() to get all the paths set correctly:\n\ndiff --git a/setup.c b/setup.c\nindex 2cbda91..64b069f 100644\n--- a/setup.c\n+++ b/setup.c\n@@ -339,7 +339,8 @@ const char *setup_git_directory_gently(int *nongit_ok)\n        for (;;) {\n                gitfile_dir = read_gitfile_gently(DEFAULT_GIT_DIR_ENVIRONMENT);\n                if (gitfile_dir) {\n-                       setenv(GIT_DIR_ENVIRONMENT, gitfile_dir, 1);\n+                       if (set_git_dir(gitfile_dir))\n+                               return NULL;\n                        break;\n                }\n                if (is_git_directory(DEFAULT_GIT_DIR_ENVIRONMENT))\n\nBut this isn't enough either, git-sh-setup.sh needs a patch when\nsetting GIT_DIR and I just noticed merge-recursive failing (it needs\nto call setup_git_directory() in it's main()).\n\nI'll work on this tonight.\n\n-- \nlarsh\n"},{"id":"67779","messageId":"m3ir113vmv.fsf@localhost.localdomain","threadId":"11850","inReplyTo":"7vbq6tset4.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-07T10:32:48Z","receivedAt":"2008-02-07T10:32:48Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits\n>  + fix config reading in tests\n>  + allow suppressing of global and system config\n> \n> * lh/gitdir (Mon Feb 4 21:59:21 2008 +0100) 4 commits\n>  - git-submodule: prepare for the .git-file\n>  - Add tests for .git file\n>  - Document the .git-file\n>  - Add platform-independent .git \"symlink\"\n> \n> Seems to have funny interaction with Jeff King's test script\n> updates.\n\nI think that gitdir is a very good idea, but needs further testing.\n \n> * ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n>  + git-name-rev: add a --(no-)undefined option.\n>  + git-describe: Add a --match option to limit considered tags.\n\nThis looks nice. I'd like also to have some kind of --pretty=<format>\n(or --format=<format>) for git-describe, and a way to limit both\ngit-name-rev and git-describe to only *signed* commits.\n\nWith this it would be fairly easy in generating git.spec file\nfrom git.spec.in to check if we are on tagged release and use\npre-compiled manpages if it is the case. Although perhaps option\n(default?) to use pre-compiled manpages (even if they are outdated\na bit) instead of requiring asciidoc toolchain would be better;\nthis would make SRPM size larger, as it would contain manpages.\n \n\n> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n>  - Move all dashed-form commands to libexecdir\n> \n> Scheduled for 1.6.0.  I am not sure if we should merge this to\n> 'next' before 1.5.5.  Most active people will be on 'next' and\n> if we have this there, the resulting 1.5.5 release might end up\n> having issues that come from differences this one introduces.\n\nPerhaps we should first generate libexecdir separate from bindir,\nand put helper scripts there (the *--* scripts), to not pollute\nPATH with commands which are never meant to be called directly\nby user.\n \n> * bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n>  . git-remote: make add -f guess HEAD, as clone does\n> \n> I might have carefully looked at this in the past but I do not\n> recall if there were issues.  Need re-reviewing and help from\n> the list is appreciated.\n\nI'd rather below get implemented, so there isn't any guessing\ninvolved.\n \n> * jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n>  . PARK: show-symref protocol extension.\n\nWhat are the plans on git-clone builtinification (and cleaning up\nclone progress and error messages[*1*])?\n\n[*1*] http://texagon.blogspot.com/2008/02/let-play-git.html\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"68189","messageId":"7vmyq9gk94.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vbq6tset4.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-10T10:48:23Z","receivedAt":"2008-02-10T10:48:23Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been kept out of 'master'.\nCommits prefixed with '-' are only in 'pu' while commits\nprefixed with '+' are in 'next'.  Now I am pushing 1.5.4.1 out,\nmature topics will start moving to 'master'.\n\nThe topics list the commits in reverse chronological order.\n\nMy wish is to have small but short release cycle for 1.5.5 and\nleave bigger ones cooking for 1.6.0.\n\n----------------------------------------------------------------\n[New Topics]\n\n* 00/config-null (Fri Feb 8 15:26:18 2008 +0100) 2 commits\n - builtin-gc.c: guard config parser from value=NULL\n - archive-tar.c: guard config parser from value=NULL\n\nThe \"RFH from Janitors\" topic.\n\n* br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n - gitweb: Use the config file to set repository owner's name.\n\nLooked Ok.\n\n* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit\n - Add \"--show-all\" revision walker flag for debugging\n\n* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit\n - Avoid a useless prefix lookup in strbuf_expand()\n\n* db/checkout (Sun Feb 10 01:27:00 2008 -0800) 21 commits\n - (PARK)\n - Build in checkout\n - Move code to clean up after a branch change to branch.c\n - Library function to check for unmerged index entries\n - Use diff -u instead of diff in t7201\n - Move create_branch into a library file\n - Build-in merge-recursive\n - Add \"skip_unmerged\" option to unpack_trees.\n - Discard \"deleted\" cache entries after using them to update the\n   working tree\n - Send unpack-trees debugging output to stderr\n - Add flag to make unpack_trees() not print errors.\n - Allow callers of unpack_trees() to handle failure\n\nThis is building on top of Linus's change to in-core index\nstructure, which will be in 'master' soon.\n\n----------------------------------------------------------------\n[Will merge to 'master' soon]\n\n* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n + git-name-rev: add a --(no-)undefined option.\n + git-describe: Add a --match option to limit considered tags.\n\n* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits\n + lazy index hashing\n + Create pathname-based hash-table lookup into index\n + read-cache.c: introduce is_racy_timestamp() helper\n + read-cache.c: fix a couple more CE_REMOVE conversion\n + Also use unpack_trees() in do_diff_cache()\n + Make run_diff_index() use unpack_trees(), not read_tree()\n + Avoid running lstat(2) on the same cache entry.\n + index: be careful when handling long names\n + Make on-disk index representation separate from in-core one\n\nThis is about reducing number of lstat(2) calls during complex\noperations, and optimizing \"do we have this in the index\"\nqueries.  Most likely this will be the first series to be merged\nto 'master'.\n\n* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit\n + Make error messages from cherry-pick/revert more sensible\n\nBjörn Steinbrink reported and then tested this.\n\n* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit\n + git-send-email: Generalize auto-cc recipient mechanism.\n\nThis came after 1.5.4-rc cycle started and was placed on hold.\nI do not recall if there was any objection to it.\n\n* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits\n + git-send-email: Better handling of EOF\n + git-send-email: SIG{TERM,INT} handlers\n + git-send-email: ssh/login style password requests\n\n* db/no-separate-ls-remote-connection (Sun Feb 10 03:06:57 2008 +0000) 2 commits\n + Fix \"git clone\" for git:// protocol\n + Reduce the number of connects when fetching\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits\n + builtin-mv: minimum fix to avoid losing files\n + git-add: adjust to the get_pathspec() changes.\n + Make blame accept absolute paths\n + setup: sanitize absolute and funny paths in get_pathspec()\n\n* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n + Documentation/SubmittingPatches: discuss first then submit\n + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n   Subject header\n\nThese I think are sensible but they did not see much discussion,\nso they are parked here for now.\n\n* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100) 1 commit\n + safecrlf: Add mechanism to warn about irreversible crlf\n   conversions\n\n* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits\n + fix config reading in tests\n + allow suppressing of global and system config\n\n* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100) 4 commits\n + git-commit: add a prepare-commit-msg hook\n + git-commit: Refactor creation of log message.\n + git-commit: set GIT_EDITOR=: if editor will not be launched\n + git-commit: support variable number of hook arguments\n\n* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits\n + gitignore: lazily find dtype\n + gitignore(5): Allow \"foo/\" in ignore list to match directory \"foo\"\n\nThis is redone after we had discussion on the list to properly\nmake \"foo/\" match only with directories and \"foo\" with both\nfiles and directories without unnecessary lstat(2) calls.\n\n* jc/apply-whitespace (Tue Jan 15 00:59:05 2008 -0800) 13 commits\n + core.whitespace: cr-at-eol\n + git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n + builtin-apply.c: pass ws_rule down to match_fragment()\n + builtin-apply.c: move copy_wsfix() function a bit higher.\n + builtin-apply.c: do not feed copy_wsfix() leading '+'\n + builtin-apply.c: simplify calling site to apply_line()\n + builtin-apply.c: clean-up apply_one_fragment()\n + builtin-apply.c: mark common context lines in lineinfo structure.\n + builtin-apply.c: optimize match_beginning/end processing a bit.\n + builtin-apply.c: make it more line oriented\n + builtin-apply.c: push match-beginning/end logic down\n + builtin-apply.c: restructure \"offset\" matching\n + builtin-apply.c: refactor small part that matches context\n\n* cc/browser (Sat Feb 9 07:11:01 2008 +0100) 8 commits\n + web--browse: Add a few quotes in 'init_browser_path'.\n + Documentation: instaweb: add 'git-web--browse' information.\n + Adjust .gitignore for 5884f1(Rename 'git-help--browse.sh'...)\n + git-web--browse: do not start the browser with nohup\n + instaweb: use 'git-web--browse' to launch browser.\n + Rename 'git-help--browse.sh' to 'git-web--browse.sh'.\n + help--browse: add '--config' option to check a config option for a\n   browser.\n + help: make 'git-help--browse' usable outside 'git-help'.\n\nChristian Couder consolidated the logic to pick user's favorite\nbrowser between instaweb and help.\n\n* bd/qsort (Tue Feb 5 15:10:44 2008 -0600) 1 commit\n + compat: Add simplified merge sort implementation from glibc\n\nMore reasonable qsort(3) than Microsoft by Brian Downing.\n\n----------------------------------------------------------------\n[On Hold]\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n - git-remote: make add -f guess HEAD, as clone does\n\nI might have carefully looked at this in the past but I do not\nrecall if there were issues.  Need re-reviewing and help from\nthe list is appreciated.\n\n* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n - Authentication support for pserver\n\nThis needs careful security audit and a fix to its password\ndatabase format.  Plaintext in .git/config is not acceptable.\n\n* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits\n - PARK: Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n - expose a helper function peel_to_type().\n - merge-recursive: split low-level merge functions out.\n\nMeant to avoid merge_recursive() during cherry-pick and revert,\nso that D/F conflicts can be redone right, but I got busy and\nthis has unfortunately stalled.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit\n - Make \"diff\" Porcelain output paths as relative to subdirectory.\n\n* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n - PARK: show-symref protocol extension.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n - Optimize rename detection for a huge diff\n\nMicro-optimization whose real world benefit is not proven.\n"},{"id":"68222","messageId":"m3wspcg4hg.fsf@localhost.localdomain","threadId":"11850","inReplyTo":"7vmyq9gk94.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-10T16:29:17Z","receivedAt":"2008-02-10T16:29:17Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n>  - gitweb: Use the config file to set repository owner's name.\n> \n> Looked Ok.\n\nI assume that you have squashed commits: chaning gitweb.perl and\nadding to gitweb/README?\n\nI'd rather hear from Pasky first, but well...\n \n> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n>  + Documentation/SubmittingPatches: discuss first then submit\n>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n>    Subject header\n> \n> These I think are sensible but they did not see much discussion,\n> so they are parked here for now.\n\nI thing first and last are good to go, while second could get\nimproved. This means I guess either resending second patch for further\ndiscussion, or adding it as is, and wait for further improvements; it\nis better than nothing.\n \n> * jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits\n>  + gitignore: lazily find dtype\n>  + gitignore(5): Allow \"foo/\" in ignore list to match directory \"foo\"\n> \n> This is redone after we had discussion on the list to properly\n> make \"foo/\" match only with directories and \"foo\" with both\n> files and directories without unnecessary lstat(2) calls.\n\nNice. I like it.\n \n> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n>  - Move all dashed-form commands to libexecdir\n> \n> Scheduled for 1.6.0.  I am not sure if we should merge this to\n> 'next' before 1.5.5.  Most active people will be on 'next' and\n> if we have this there, the resulting 1.5.5 release might end up\n> having issues that come from differences this one introduces.\n\nPerhaps git should build with separate libexecdir, and at first move\nonly helper scripts (*--*) there? We can then check what would break,\na little safer. Helper scripts are not meant to be called by user\nanyway...\n\n> * ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n>  - Authentication support for pserver\n> \n> This needs careful security audit and a fix to its password\n> database format.  Plaintext in .git/config is not acceptable.\n\nDoes git-cvsserver understand .netrc?\n\n> * bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n>  - git-remote: make add -f guess HEAD, as clone does\n> \n> I might have carefully looked at this in the past but I do not\n> recall if there were issues.  Need re-reviewing and help from\n> the list is appreciated.\n\n> * jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n>  - PARK: show-symref protocol extension.\n\nDo not the second cancels a bit of first?\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"68230","messageId":"alpine.LSU.1.00.0802101647050.11591@racer.site","threadId":"11850","inReplyTo":"m3wspcg4hg.fsf@localhost.localdomain","subject":"Re: What's cooking in git.git (topics)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-02-10T16:48:03Z","receivedAt":"2008-02-10T16:48:03Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sun, 10 Feb 2008, Jakub Narebski wrote:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n> > * ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n> >  - Authentication support for pserver\n> > \n> > This needs careful security audit and a fix to its password database \n> > format.  Plaintext in .git/config is not acceptable.\n> \n> Does git-cvsserver understand .netrc?\n\nIt is not about the client side of authentication, but the server side.  \nSo no, git-cvsserver does not, and should not, understand .netrc.\n\nCiao,\nDscho\n"},{"id":"68281","messageId":"7vwspcea58.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"m3wspcg4hg.fsf@localhost.localdomain","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-10T22:09:39Z","receivedAt":"2008-02-10T22:09:39Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n>>  - gitweb: Use the config file to set repository owner's name.\n>> \n>> Looked Ok.\n>\n> I assume that you have squashed commits: chaning gitweb.perl and\n> adding to gitweb/README?\n>\n> I'd rather hear from Pasky first, but well...\n\nThanks; will keep it on 'pu' for now.\n"},{"id":"68282","messageId":"7vr6fkea4v.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"m3wspcg4hg.fsf@localhost.localdomain","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-10T22:09:52Z","receivedAt":"2008-02-10T22:09:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> * jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n>>  + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n>>  + Documentation/SubmittingPatches: discuss first then submit\n>>  + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n>>    Subject header\n>> \n>> These I think are sensible but they did not see much discussion,\n>> so they are parked here for now.\n>\n> I thing first and last are good to go, while second could get\n> improved. This means I guess either resending second patch for further\n> discussion, or adding it as is, and wait for further improvements; it\n> is better than nothing.\n\nOk.  As you can see above it's already merged to 'next', so here\nis an update with pieces taken from my earlier response to your\nquestion.\n\n-- >8 --\n[PATCH] Documentation/SubmittingPatches - a suggested patch flow\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n\n Documentation/SubmittingPatches |   35 +++++++++++++++++++++++++++++++++++\n 1 files changed, 35 insertions(+), 0 deletions(-)\n\ndiff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches\nindex 0661293..0e155c9 100644\n--- a/Documentation/SubmittingPatches\n+++ b/Documentation/SubmittingPatches\n@@ -230,6 +230,41 @@ to modify.  \"Tested-by:\" says the patch was tested by the person\n and found to have the desired effect.\n \n ------------------------------------------------\n+An ideal patch flow\n+\n+Here is an ideal patch flow for this project the current maintainer\n+suggests to the contributors:\n+\n+ (0) You come up with an itch.  You code it up.\n+\n+ (1) Send it to the list and cc people who may need to know about\n+     the change.\n+\n+     The people who may need to know are the ones whose code you\n+     are butchering.  These people happen to be the ones who are\n+     most likely to be knowledgeable enough to help you, but\n+     they have no obligation to help you (i.e. you ask for help,\n+     don't demand).  \"git log -p -- $area_you_are_modifying\" would\n+     help you find out who they are.\n+\n+ (2) You get comments and suggestions for improvements.  You may\n+     even get them in a \"on top of your change\" patch form.\n+\n+ (3) Polish, refine, and re-send to the list and the people who\n+     spend their time to improve your patch.  Go back to step (2).\n+\n+ (4) The list forms consensus that the last round of your patch is\n+     good.  Send it to the list and cc the maintainer.\n+\n+ (5) A topic branch is created with the patch and is merged to 'next',\n+     and cooked further and eventually graduates to 'master'.\n+\n+In any time between the (2)-(3) cycle, the maintainer may pick it up\n+from the list and queue it to 'pu', in order to make it easier for\n+people play with it without having to pick up and apply the patch to\n+their trees themselves.\n+\n+------------------------------------------------\n MUA specific hints\n \n Some of patches I receive or pick up from the list share common\n"},{"id":"68488","messageId":"7vk5la4oxq.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vmyq9gk94.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-12T07:24:49Z","receivedAt":"2008-02-12T07:24:49Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been kept out of 'master'.\nCommits prefixed with '-' are only in 'pu' while commits\nprefixed with '+' are in 'next'.  Now I am pushing 1.5.4.1 out,\nmature topics will start moving to 'master'.\n\nThe topics list the commits in reverse chronological order.\n\nMy wish is to have small but short release cycle for 1.5.5 and\nleave bigger ones cooking for 1.6.0.\n\nMany topics graduated to \"master\".  As announced, I'll rewind\nand rebuild \"next\" with the surviving topics on top of \"master\"\nshortly.\n\n----------------------------------------------------------------\n[Graduated to \"master\"]\n\n* ph/describe-match (Mon Dec 24 12:18:22 2007 +0100) 2 commits\n\n* lt/in-core-index (Tue Jan 22 23:01:13 2008 -0800) 9 commits\n\nThis is about reducing number of lstat(2) calls during complex\noperations, and optimizing \"do we have this in the index\"\nqueries.\n\n* jc/error-message-in-cherry-pick (Thu Jan 10 22:49:35 2008 -0800) 1 commit\n\nBjörn Steinbrink reported and then tested this.\n\n* db/send-email-omit-cc (Tue Dec 25 19:56:29 2007 -0800) 1 commit\n\nThis came after 1.5.4-rc cycle started and was placed on hold.\nI do not recall if there was any objection to it.\n\n* mw/send-email (Sun Feb 3 19:53:58 2008 -0500) 3 commits\n\n* db/no-separate-ls-remote-connection (Sun Feb 10 13:45:08 2008 +0000) 1 commit\n\n----------------------------------------------------------------\n[Old New Topics]\n\n* br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n - gitweb: Use the config file to set repository owner's name.\n\nLooked Ok.\n\n* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit\n - Add \"--show-all\" revision walker flag for debugging\n\n* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit\n - Avoid a useless prefix lookup in strbuf_expand()\n\n* db/checkout (Sun Feb 10 01:27:00 2008 -0800) 11 commits\n - Build in checkout\n - Move code to clean up after a branch change to branch.c\n - Library function to check for unmerged index entries\n - Use diff -u instead of diff in t7201\n - Move create_branch into a library file\n - Build-in merge-recursive\n - Add \"skip_unmerged\" option to unpack_trees.\n - Discard \"deleted\" cache entries after using them to update the\n   working tree\n - Send unpack-trees debugging output to stderr\n - Add flag to make unpack_trees() not print errors.\n - Allow callers of unpack_trees() to handle failure\n\nThis is building on top of Linus's change to in-core index\nstructure, which will be in 'master' soon.\n\n----------------------------------------------------------------\n[Will merge to 'master' soon]\n\n* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800) 3 commits\n + Documentation/SubmittingPatches: What's Acked-by and Tested-by?\n + Documentation/SubmittingPatches: discuss first then submit\n + Documentation/SubmittingPatches: Instruct how to use [PATCH]\n   Subject header\n\n* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500) 2 commits\n + fix config reading in tests\n + allow suppressing of global and system config\n\n* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100) 4 commits\n + git-commit: add a prepare-commit-msg hook\n + git-commit: Refactor creation of log message.\n + git-commit: set GIT_EDITOR=: if editor will not be launched\n + git-commit: support variable number of hook arguments\n\n* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800) 2 commits\n + gitignore: lazily find dtype\n + gitignore(5): Allow \"foo/\" in ignore list to match directory \"foo\"\n\nThis is redone after we had discussion on the list to properly\nmake \"foo/\" match only with directories and \"foo\" with both\nfiles and directories without unnecessary lstat(2) calls.\n\n* bd/qsort (Tue Feb 5 15:10:44 2008 -0600) 1 commit\n + compat: Add simplified merge sort implementation from glibc\n\nMore reasonable qsort(3) than Microsoft by Brian Downing.\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* cc/browser (Mon Feb 11 10:57:34 2008 -0500) 9 commits\n + git-web--browse: fix misplaced quote in init_browser_path()\n + web--browse: Add a few quotes in 'init_browser_path'.\n + Documentation: instaweb: add 'git-web--browse' information.\n + Adjust .gitignore for 5884f1(Rename 'git-help--browse.sh'...)\n + git-web--browse: do not start the browser with nohup\n + instaweb: use 'git-web--browse' to launch browser.\n + Rename 'git-help--browse.sh' to 'git-web--browse.sh'.\n + help--browse: add '--config' option to check a config option for a\n   browser.\n + help: make 'git-help--browse' usable outside 'git-help'.\n\nChristian Couder consolidated the logic to pick user's favorite\nbrowser between instaweb and help.\n\n* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits\n + builtin-mv: minimum fix to avoid losing files\n + git-add: adjust to the get_pathspec() changes.\n + Make blame accept absolute paths\n + setup: sanitize absolute and funny paths in get_pathspec()\n\n* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100) 1 commit\n + safecrlf: Add mechanism to warn about irreversible crlf\n   conversions\n\n* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits\n + apply: do not barf on patch with too large an offset\n + core.whitespace: cr-at-eol\n + git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n + builtin-apply.c: pass ws_rule down to match_fragment()\n + builtin-apply.c: move copy_wsfix() function a bit higher.\n + builtin-apply.c: do not feed copy_wsfix() leading '+'\n + builtin-apply.c: simplify calling site to apply_line()\n + builtin-apply.c: clean-up apply_one_fragment()\n + builtin-apply.c: mark common context lines in lineinfo structure.\n + builtin-apply.c: optimize match_beginning/end processing a bit.\n + builtin-apply.c: make it more line oriented\n + builtin-apply.c: push match-beginning/end logic down\n + builtin-apply.c: restructure \"offset\" matching\n + builtin-apply.c: refactor small part that matches context\n\n----------------------------------------------------------------\n[On Hold]\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* bf/remote-head (Sun Dec 23 20:52:32 2007 -0500) 1 commit\n - git-remote: make add -f guess HEAD, as clone does\n\n* ab/pserver (Fri Dec 14 04:08:51 2007 +0000) 1 commit\n - Authentication support for pserver\n\nThis needs careful security audit and a fix to its password\ndatabase format.  Plaintext in .git/config is not acceptable.\n\n* jc/cherry-pick (Mon Dec 24 00:51:01 2007 -0800) 4 commits\n - PARK: Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n - expose a helper function peel_to_type().\n - merge-recursive: split low-level merge functions out.\n\nMeant to avoid merge_recursive() during cherry-pick and revert,\nso that D/F conflicts can be redone right, but I got busy and\nthis has unfortunately stalled.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/diff-relative (Thu Dec 6 09:48:32 2007 -0800) 1 commit\n - diff --relative: output paths as relative to the current\n   subdirectory\n\n* jc/git-symref (Tue Dec 11 16:42:46 2007 -0800) 1 commit\n - PARK: show-symref protocol extension.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n - Optimize rename detection for a huge diff\n\nMicro-optimization whose real world benefit is not proven.\n"},{"id":"68505","messageId":"alpine.LSU.1.00.0802120956390.3870@racer.site","threadId":"11850","inReplyTo":"7vk5la4oxq.fsf@gitster.siamese.dyndns.org","subject":"reflog-delete, was Re: What's cooking in git.git (topics)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-02-12T09:57:26Z","receivedAt":"2008-02-12T09:57:26Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 11 Feb 2008, Junio C Hamano wrote:\n\n> [On Hold]\n> \n> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n>  + builtin-reflog.c: fix typo that accesses an unset variable\n>  + Teach \"git reflog\" a subcommand to delete single entries\n> \n> There was a patch that uses this to implement \"git-stash drop\",\n> which I didn't queue, as the command name and the UI was\n> undecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n\nWell, I was in favour of making \"pop\" the main user visible action.\n\nCiao,\nDscho\n"},{"id":"68950","messageId":"7vejbc44hu.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vk5la4oxq.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-17T03:59:57Z","receivedAt":"2008-02-17T03:59:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been kept out of 'master'.\nCommits prefixed with '-' are only in 'pu' while commits\nprefixed with '+' are in 'next'.\n\nThe topics list the commits in reverse chronological order.\n\nMany topics graduated to 'master'.  As announced, I'll rewind\nand rebuild \"next\" with the surviving topics on top of \"master\",\nsometime tomorrow.\n\n----------------------------------------------------------------\n[New Topics]\n\n* lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits\n - diff: make --dirstat binary-file safe\n + Add \"--dirstat\" for some directory statistics\n\nThe first one already in 'next' is the latest toy Linus showed\noff in his 2.6.25-rc2 announcement.  The other one on top is a\nrework to make it work more sensibly with a tree with binary\ncontents.\n\n* gp/hash-stdin (Thu Feb 14 20:13:55 2008 +0000) 1 commit\n - hash-object: cleanup handling of command line options\n\nI've touched Gerrit's original up somewhat and am waiting for a\nfeedback.\n\n* bc/fopen (Fri Feb 8 20:32:47 2008 -0600) 1 commit\n + Add compat/fopen.c which returns NULL on attempt to open directory\n\nWe would want fread(3) from fopen(3)'ed directory to fail but\nsome systems don't.  This adds a compatibility wrapper for\nfopen(3) that fails on directories.\n\n* js/maint-http-push (Thu Feb 14 23:26:12 2008 +0000) 3 commits\n + http-push: avoid a needless goto\n + http-push: do not get confused by submodules\n + http-push: avoid invalid memory accesses\n\nThis forks off of 'maint' in the hope of having a fixed\nhttp-push in future 1.5.4.X.  Will wait for success stories.\n\n* js/run-command (Sat Feb 16 18:36:39 2008 +0100) 2 commits\n - start_command(), if .in/.out > 0, closes file descriptors, not the\n   callers\n - start_command(), .in/.out/.err = -1: Callers must close the file\n   descriptor\n\n* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits\n - Bulk allocate diff_filepair\n - patch freeable-bulk-alloc\n\n* jk/empty-tree (Wed Feb 13 05:50:51 2008 -0500) 2 commits\n + add--interactive: handle initial commit better\n + hard-code the empty tree object\n\nJeff added code to deal with the initial commit case better in\n\"git-add -i\".  Personally I wonder why we bother (if it is an\ninitial commit, the user _knows_ there is nothing to diff in the\nHEAD as there is no HEAD yet, heavens), but the code is already\nthere so why not.\n\n----------------------------------------------------------------\n[Merged to 'master']\n\n* jc/submittingpatches (Sun Feb 3 17:02:28 2008 -0800)\n\n* jk/noetcconfig (Wed Feb 6 05:11:53 2008 -0500)\n\n* pb/prepare-commit-msg (Tue Feb 5 08:04:18 2008 +0100)\n\n* jc/gitignore-ends-with-slash (Thu Jan 31 20:23:25 2008 -0800)\n\n* bd/qsort (Tue Feb 5 15:10:44 2008 -0600)\n\n* cc/browser (Mon Feb 11 10:57:34 2008 -0500)\n\n* sp/safecrlf (Wed Feb 6 12:25:58 2008 +0100)\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits\n + builtin-mv: minimum fix to avoid losing files\n + git-add: adjust to the get_pathspec() changes.\n + Make blame accept absolute paths\n + setup: sanitize absolute and funny paths in get_pathspec()\n\n* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit\n + Add \"--show-all\" revision walker flag for debugging\n\n* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit\n + Avoid a useless prefix lookup in strbuf_expand()\n\n* db/checkout (Sat Feb 16 17:17:09 2008 -0800) 12 commits\n + checkout: notice when the switched branch is behind or forked\n + Build in checkout\n + Move code to clean up after a branch change to branch.c\n + Library function to check for unmerged index entries\n + Use diff -u instead of diff in t7201\n + Move create_branch into a library file\n + Build-in merge-recursive\n + Add \"skip_unmerged\" option to unpack_trees.\n + Discard \"deleted\" cache entries after using them to update the\n   working tree\n + Send unpack-trees debugging output to stderr\n + Add flag to make unpack_trees() not print errors.\n + Allow callers of unpack_trees() to handle failure\n\nCheckout rewritten in C.\n\n* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits\n + apply: do not barf on patch with too large an offset\n + core.whitespace: cr-at-eol\n + git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n + builtin-apply.c: pass ws_rule down to match_fragment()\n + builtin-apply.c: move copy_wsfix() function a bit higher.\n + builtin-apply.c: do not feed copy_wsfix() leading '+'\n + builtin-apply.c: simplify calling site to apply_line()\n + builtin-apply.c: clean-up apply_one_fragment()\n + builtin-apply.c: mark common context lines in lineinfo structure.\n + builtin-apply.c: optimize match_beginning/end processing a bit.\n + builtin-apply.c: make it more line oriented\n + builtin-apply.c: push match-beginning/end logic down\n + builtin-apply.c: restructure \"offset\" matching\n + builtin-apply.c: refactor small part that matches context\n\nFurther work on \"apply --whitespace=fix\".\n\n* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits\n + diff --relative: help working in a bare repository\n + diff --relative: output paths as relative to the current\n   subdirectory\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n----------------------------------------------------------------\n[On Hold]\n\n* br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n + gitweb: Use the config file to set repository owner's name.\n\nOn hold per Jakub's reluctance.\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n"},{"id":"68981","messageId":"20080217124137.GC26031@sigill.intra.peff.net","threadId":"11850","inReplyTo":"7vejbc44hu.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-02-17T12:41:37Z","receivedAt":"2008-02-17T12:41:37Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sat, Feb 16, 2008 at 07:59:57PM -0800, Junio C Hamano wrote: \n> * jk/empty-tree (Wed Feb 13 05:50:51 2008 -0500) 2 commits\n>  + add--interactive: handle initial commit better\n>  + hard-code the empty tree object\n> \n> Jeff added code to deal with the initial commit case better in\n> \"git-add -i\".  Personally I wonder why we bother (if it is an\n> initial commit, the user _knows_ there is nothing to diff in the\n> HEAD as there is no HEAD yet, heavens), but the code is already\n> there so why not.\n\nI was also tempted to just have it output \"you can't do this, it's an\ninitial commit.\" But the change was fairly easy, and I think Kate's\npoint is valid: even though it's an unlikely corner case, new users are\nlikely to start exploring at that corner case, so it helps with new user\nperception that we handle it gracefully.\n\n-Peff\n"},{"id":"68989","messageId":"m38x1jbsjb.fsf@localhost.localdomain","threadId":"11850","inReplyTo":"7vejbc44hu.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-17T13:52:45Z","receivedAt":"2008-02-17T13:52:45Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> ----------------------------------------------------------------\n> [New Topics]\n> \n> * lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits\n>  - diff: make --dirstat binary-file safe\n>  + Add \"--dirstat\" for some directory statistics\n> \n> The first one already in 'next' is the latest toy Linus showed\n> off in his 2.6.25-rc2 announcement.  The other one on top is a\n> rework to make it work more sensibly with a tree with binary\n> contents.\n\nIs this new one bytecount based rather than lines-changed based also\nfor text files?\n \n> * js/run-command (Sat Feb 16 18:36:39 2008 +0100) 2 commits\n>  - start_command(), if .in/.out > 0, closes file descriptors, not the\n>    callers\n>  - start_command(), .in/.out/.err = -1: Callers must close the file\n>    descriptor\n\n...and request for API documentation...\n \n> * db/checkout (Sat Feb 16 17:17:09 2008 -0800) 12 commits\n \n> Checkout rewritten in C.\n\nNice.\n \n> ----------------------------------------------------------------\n> [On Hold]\n> \n> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n>  + gitweb: Use the config file to set repository owner's name.\n> \n> On hold per Jakub's reluctance.\n\nIt was tested by the author (Bruno Ribas) that it doesn't affect\nperformance, although IMHO for a bit superficial test (1000 identical\nrepositories, gitweb run as a script, dd or git-for-each-ref as an\nadditional load).  I'd like to heard from larger gitweb deployments\nhow it works with a webserver (ApacheBench or similar), with a real\nset of repositories, and perhaps in real load conditions... of course\non test gitweb, not on live one.\n\nI also wonder if it would make sense to make it a feature,\ni.e. instead of\n\n+       if (!defined $owner){\n+               $owner = git_get_project_config('owner');\n+       }\n        if (!defined $owner) {\n\nhave\n\n+       if (!defined $owner){\n+               $owner = gitweb_check_feature('owner');\n+       }\n        if (!defined $owner) {\n\nwith the 'owner' feature set as below:\n\n+\t'owner' => {\n+\t\t'sub' => \\&feature_repo_owner,\n+\t\t'override' => 1,\n+\t\t'default' => [undef]},\n\nand some implementation of feature_repo_owner.  This way it would be\npossible to turn off checking for gitweb.owner in repo config from\nwithing gitweb config.  But this migh be an overingeneering...\n\n\nI'd like to wait for a bit for comments, and if there wouldn't be any\nnegative ones, merge it in... and wait who screams ;-)\n \n> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n>  - Move all dashed-form commands to libexecdir\n>\n> Scheduled for 1.6.0.  I am not sure if we should merge this to\n> 'next' before 1.5.5.  Most active people will be on 'next' and\n> if we have this there, the resulting 1.5.5 release might end up\n> having issues that come from differences this one introduces.\n\nWhat about making separate libexecdir and moving _helper_ scripts\n(*--*) there first?\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"68994","messageId":"1203263316.6601.3.camel@futex","threadId":"11850","inReplyTo":"7vejbc44hu.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Matthias Kestenholz","fromEmail":"mk@spinlock.ch","sentAt":"2008-02-17T15:48:36Z","receivedAt":"2008-02-17T15:48:36Z","isPatch":false,"sender":{"key":"matthias@spinlock.ch","avatar":"https://gravatar.com/avatar/bc18f396e70163d09ab458a341b1decb7e8b6ee3aa2c0c954ec20162e67c4d46?d=mp&s=160"},"body":"On Sat, 2008-02-16 at 19:59 -0800, Junio C Hamano wrote:\n> [...]\n\nWhat about color.ui? I am still interested in a single central\nconfiguration variable to enable colored output from git. I know that I\nsent a proposal patch at a bad time.\n\nHere is the last patch I sent to the list:\n\nhttp://permalink.gmane.org/gmane.comp.version-control.git/70055\n"},{"id":"69007","messageId":"7v7ih31mj9.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"1203263316.6601.3.camel@futex","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-17T18:10:50Z","receivedAt":"2008-02-17T18:10:50Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthias Kestenholz <mk@spinlock.ch> writes:\n\n> On Sat, 2008-02-16 at 19:59 -0800, Junio C Hamano wrote:\n>> [...]\n>\n> What about color.ui? I am still interested in a single central\n> configuration variable to enable colored output from git. I know that I\n> sent a proposal patch at a bad time.\n\nYeah, I liked the general idea, and was about to forget.  I\nvaguely recall there was a design disagreement between you and\nJeff King (perhaps others as well)?\n\nI appreciate a reminder like your message, but I do not want to\nbe in the business of fishing for old patches that may or may\nnot { apply to | work well with } the updated base anymore for\neverybody.  I wish I had the mental bandwidth to do so, but it\nsimply becomes infeasible in the longer run.\n\nCould you (and anybody who has \"sent but about to be or\nsuspected to be forgotten\" changes) respin, retest and resend\nplease?\n"},{"id":"69010","messageId":"20080217182208.GB4818@coredump.intra.peff.net","threadId":"11850","inReplyTo":"7v7ih31mj9.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-02-17T18:22:08Z","receivedAt":"2008-02-17T18:22:08Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sun, Feb 17, 2008 at 10:10:50AM -0800, Junio C Hamano wrote:\n\n> > What about color.ui? I am still interested in a single central\n> > configuration variable to enable colored output from git. I know that I\n> > sent a proposal patch at a bad time.\n> \n> Yeah, I liked the general idea, and was about to forget.  I\n> vaguely recall there was a design disagreement between you and\n> Jeff King (perhaps others as well)?\n\nIIRC, my objection was that the original implementation didn't correctly\npreserve the existing split color types, but that the latest version of\nthe patch dealt with it.\n\n> I appreciate a reminder like your message, but I do not want to\n> be in the business of fishing for old patches that may or may\n> not { apply to | work well with } the updated base anymore for\n> everybody.  I wish I had the mental bandwidth to do so, but it\n> simply becomes infeasible in the longer run.\n> \n> Could you (and anybody who has \"sent but about to be or\n> suspected to be forgotten\" changes) respin, retest and resend\n> please?\n\nSpeaking as a reviewer, I second this. It is much easier to review\npatches if they are up to date, and doubly so if the new cover letter\nmaterial gives a hint as to what happened the last time (e.g., \"this\nlooked good, but we were in rc freeze\", \"somebody objected to X, and I\nhave fixed it\", or even just \"nobody said anything and it got\noverlooked\").\n\n-Peff\n"},{"id":"69022","messageId":"7vejbbz9x5.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"m38x1jbsjb.fsf@localhost.localdomain","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-17T18:59:18Z","receivedAt":"2008-02-17T18:59:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n> ...\n>> * lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits\n>>  - diff: make --dirstat binary-file safe\n>>  + Add \"--dirstat\" for some directory statistics\n>> \n>> The first one already in 'next' is the latest toy Linus showed\n>> off in his 2.6.25-rc2 announcement.  The other one on top is a\n>> rework to make it work more sensibly with a tree with binary\n>> contents.\n>\n> Is this new one bytecount based rather than lines-changed based also\n> for text files?\n\nShort answer: Yes.\n\nThe issue in Linus's version is that the amount of change is\ndefined to be \"number of lines added and deleted\" for text files\nwhile it is \"number of bytes in preimage and postimage\" for\nbinary files.  Summing them up and computing proportions among\nthem is comparing apples and oranges.\n\nIf you used line-based amount-of-change for text and byte-based\none for binary, you would be still comparing apples and oranges,\nand you are not solving anything.  The scale used for all files\nhas to be consistent.\n\n>> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n>>  + gitweb: Use the config file to set repository owner's name.\n>> \n>> On hold per Jakub's reluctance.\n> \n> It was tested by the author (Bruno Ribas) that it doesn't affect\n> performance, although IMHO for a bit superficial test (1000 identical\n> repositories, gitweb run as a script, dd or git-for-each-ref as an\n> additional load).  I'd like to heard from larger gitweb deployments\n> how it works with a webserver (ApacheBench or similar), with a real\n> set of repositories, and perhaps in real load conditions... of course\n> on test gitweb, not on live one.\n\nI personally think the patch is Ok.  It would not affect really\nlarge and loaded sites, because the top-level project list is\nunusable for them without caching like John 'Warthog9' Hawley\ndoes for k.org, due to other performance bottleneck (namely,\n\"the last changed timestamp\") anyway.\n\nBy the way, I think \"real load conditions\" and \"test gitweb not\nlive\" are unfortunately mutually exclusive.  If it is known to\nbe \"test\", it will not attract the same set of \"real\" people as\nthe real one.\n\n> I also wonder if it would make sense to make it a feature,\n\nIt might make sense, but it would not probably not help much in\npractice.  It is overengineering, and I think it is spending\nefforts in wrong place in the first place.\n\nWhat I personally think the most important thing that should\nhappen to gitweb is to help cleaning up and updating John's\ncaching version that powers k.org, and update our version to\nthat.  John's version has seen a lot more real-life loads than\nany other installation of the vanilla version in git.git, and we\nshould take advantage of his effort by slurping improvements\nfrom his.  People who are both interested and have been involved\nin gitweb might want to form a \"gitweb-ng strike force\" group,\nand make a consolidated effort, just like msysgit folks do to\nport our mess to Windows ;-).\n\n>> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n>>  - Move all dashed-form commands to libexecdir\n>>\n>> Scheduled for 1.6.0.  I am not sure if we should merge this to\n>> 'next' before 1.5.5.  Most active people will be on 'next' and\n>> if we have this there, the resulting 1.5.5 release might end up\n>> having issues that come from differences this one introduces.\n>\n> What about making separate libexecdir and moving _helper_ scripts\n> (*--*) there first?\n\nWhy keep suggesting adding _more_ work, without any code nor\ndiscussion of how that would help?\n"},{"id":"69035","messageId":"7v1w7bz5t2.fsf_-_@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vejbc44hu.fsf@gitster.siamese.dyndns.org","subject":"[Announce] 'next' rewound and rebased","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-17T20:28:09Z","receivedAt":"2008-02-17T20:28:09Z","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> ...  As announced, I'll rewind\n> and rebuild \"next\" with the surviving topics on top of \"master\",\n> sometime tomorrow.\n\n... which just happened.  The old history leading to \"next\" used\nto be 1323 commits ahead of v1.5.4.2 but the rebased one now is\nonly 182 commits ahead, mostly due to old merge commits that\nnever went out of \"next\" to \"master\" and a handful reverts.\n\nOn k.org and repo.or.cz repo, I pushed out a branch \"old-next\"\nwhose ancestry is connected to the old \"next\" and whose tip-tree\nmatches that of the tip of \"next\", so if any of you have been\nbuilding on top of 'next', you may want a one-time conversion to\ndo:\n\n\t$ git fetch\n        $ git rebase --onto origin/next origin/old-next my-branch-on-next\n\nRecent \"git pull --rebase\" may be good enough by consulting\nyour remotes/origin/next@{1} to find the base without using the\nold-next trick, though I haven't checked.\n"},{"id":"69045","messageId":"200802172301.30380.jnareb@gmail.com","threadId":"11850","inReplyTo":"7vejbbz9x5.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-17T22:01:29Z","receivedAt":"2008-02-17T22:01:29Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Sun, 17 Feb 2008, Junio C Hamano <gitster@pobox.com> wrote:\n> Jakub Narebski <jnareb@gmail.com> writes:\n> > Junio C Hamano <gitster@pobox.com> writes:\n> \n>>> * br/gitweb (Fri Feb 8 14:38:04 2008 -0200) 1 commit\n>>>  + gitweb: Use the config file to set repository owner's name.\n>>> \n>>> On hold per Jakub's reluctance.\n>> \n>> It was tested by the author (Bruno Ribas) that it doesn't affect\n>> performance, although IMHO for a bit superficial test (1000 identical\n>> repositories, gitweb run as a script, dd or git-for-each-ref as an\n>> additional load).  I'd like to heard from larger gitweb deployments\n>> how it works with a webserver (ApacheBench or similar), with a real\n>> set of repositories, and perhaps in real load conditions... of course\n>> on test gitweb, not on live one.\n> \n> I personally think the patch is Ok.  It would not affect really\n> large and loaded sites, because the top-level project list is\n> unusable for them without caching like John 'Warthog9' Hawley\n> does for k.org, due to other performance bottleneck (namely,\n> \"the last changed timestamp\") anyway.\n\nI was worrying that it would affect gitweb performance badly, in spite \nof (slightly superficial) benchmarks[*1*] testing it is not the case.\nBenchmarks were as far as I can understand for Linux, and I worry a bit \nabout other operating systems (MacOS X, MS Windows,...) with a higher \nfork cost... although I have slight suspicion that finding owner (not \njust an id of an owner) of a file (from Perl) is of similar cost.\n\nBTW. after reading the thread again the load in benchmark was always \ngenerated by dd, not by running bunch of git-for-each-ref on different \nrefs in parallel.\n\n[*1*] Whose benchmarks should be at least mentioned IMHO in commit \nmessage; also update to gitweb/README should be IMHO in the same commit \n(while $path/$project -> $git_dir could, but not necessarily should, be \nin separate cleanup patch).\n \n> By the way, I think \"real load conditions\" and \"test gitweb not\n> live\" are unfortunately mutually exclusive.  If it is known to\n> be \"test\", it will not attract the same set of \"real\" people as\n> the real one.\n\nYou can always stat, and generate test load with the same stats,\nperhaps cut to the page / feature you are benchmarking / profiling.\n\nBy \"read load conditions\" I meant here running second gitweb with or \nwithout the gitweb.owner patch on the same server as live gitweb. But \nthat would affect repetability of benchmark, although I'm not sure if \nit matters; it probably depends on how variable load is, on how \nsensitive benchmark is to detailed load, etc.\n \n>> I also wonder if it would make sense to make it a feature,\n> \n> It might make sense, but it would not probably not help much in\n> practice.  It is overengineering, and I think it is spending\n> efforts in wrong place in the first place.\n\nI guess that after waiting a bit for comments you could either apply \npatches, apply patches squashed, or ask Bruno Ribas for resend.\n\nI would then send patch making it a \"feature\" (where the important bit \nis 'override' part, and 'defaults' does not matter), you would then \nreject it because it is overengineering ;-) or not; but it would be in \nachives.\n \n> What I personally think the most important thing that should\n> happen to gitweb is to help cleaning up and updating John's\n> caching version that powers k.org, and update our version to\n> that.  John's version has seen a lot more real-life loads than\n> any other installation of the vanilla version in git.git, and we\n> should take advantage of his effort by slurping improvements\n> from his.  People who are both interested and have been involved\n> in gitweb might want to form a \"gitweb-ng strike force\" group,\n> and make a consolidated effort, just like msysgit folks do to\n> port our mess to Windows ;-).\n\nThis would be really nice. IIRC John said that he would try to find time \nto update kernel.org gitweb to latest, I guess sending caching patches \nfor gitweb to the list (or a please pull request).\n\nIt was a bit unfortunate that J.H. split gitweb into many smaller \nmodules to better understand code when adding caching support, the move \nwhich was not accepted for \"mainline\" gitweb, thus effectively creating \na fork.\n\n\nBTW it would be nice to have benchmark of different web interfaces under \nheavly load: gitweb, repo.or.cz gitweb, kernel.org gitweb, cgit, wit \n(the Ruby one), git-php, gitarella (if it is developed),...\n\n\n>>> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n>>>  - Move all dashed-form commands to libexecdir\n>>>\n>>> Scheduled for 1.6.0.  I am not sure if we should merge this to\n>>> 'next' before 1.5.5.  Most active people will be on 'next' and\n>>> if we have this there, the resulting 1.5.5 release might end up\n>>> having issues that come from differences this one introduces.\n>>\n>> What about making separate libexecdir and moving _helper_ scripts\n>> (*--*) there first?\n> \n> Why keep suggesting adding _more_ work, without any code nor\n> discussion of how that would help?\n\nI'm sorry. \n\nTo start discussion: :-)\n\n1. Currently tests check _built_ version:\n\n   # Test the binaries we have just built.  The tests are kept in\n   # t/ subdirectory and are run in trash subdirectory.\n\n   It would be nice if there were a switch which would allow to test\n   _installed_ (somewhere) version of git, to check for errors like\n   some script not finding some command etc.\n\n2. Where to put gitexecdir? /usr/libexec is not in FHS...\n\n-- \nJakub Narebski\nPoland\n"},{"id":"69067","messageId":"7vablzxfpm.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"200802172301.30380.jnareb@gmail.com","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-18T00:37:09Z","receivedAt":"2008-02-18T00:37:09Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> 1. Currently tests check _built_ version:\n>\n>    # Test the binaries we have just built.  The tests are kept in\n>    # t/ subdirectory and are run in trash subdirectory.\n>\n>    It would be nice if there were a switch which would allow to test\n>    _installed_ (somewhere) version of git, to check for errors like\n>    some script not finding some command etc.\n\nIf you are saying _in addition_ I would not stop you, but I am\nnot interested in testing installed version at all.  Testing\nafter installing is already too late.\n"},{"id":"69068","messageId":"200802180205.35009.jnareb@gmail.com","threadId":"11850","inReplyTo":"7vablzxfpm.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-02-18T01:05:33Z","receivedAt":"2008-02-18T01:05:33Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n> Jakub Narebski <jnareb@gmail.com> writes:\n> \n> > 1. Currently tests check _built_ version:\n> >\n> >    # Test the binaries we have just built.  The tests are kept in\n> >    # t/ subdirectory and are run in trash subdirectory.\n> >\n> >    It would be nice if there were a switch which would allow to test\n> >    _installed_ (somewhere) version of git, to check for errors like\n> >    some script not finding some command etc.\n> \n> If you are saying _in addition_ I would not stop you, but I am\n> not interested in testing installed version at all.  Testing\n> after installing is already too late.\n\nOf course I'm saying \"in addition\": I wrote \"if there were a switch\",\nmeaning that current running test for built git would be default, and\nafter setting some environment variable for example it would test\ninstalled (or rather pre-installed) version.\n\nIt would be testing halfway during installing: we should install to some \nDESTDIR (like rpm does when building from SRPM), \ne.g. /tmp/git-<version>-root/, or something like that.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"69448","messageId":"7v8x1fymei.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vejbc44hu.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-21T04:16:21Z","receivedAt":"2008-02-21T04:16:21Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\n* js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits\n + doc: documentation update for the branch track changes\n + branch: optionally setup branch.*.merge from upstream local\n   branches\n\nThis allows you to automatically set up tracking even when forking\nfrom a local branch; it builds on top of Daniel's \"checkout in C\".\n\n* js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits\n + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM\n + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler\n\nThis makes conflicting merges that have hunks separated by only\na few common lines much easier to read.\n\n* db/cover-letter (Tue Feb 19 02:40:35 2008 -0500) 8 commits\n + Support a --cc=<email> option in format-patch\n + Combine To: and Cc: headers\n + Fix format.headers not ending with a newline\n + Add tests for extra headers in format-patch\n + Add a --cover-letter option to format-patch\n + Export some email and pretty-printing functions\n + Improve message-id generation flow control for format-patch\n + Add more tests for format-patch\n\nTeaches format-patch to optionally generate cover letters.\n\n* db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit\n + Resolve value supplied for no-colon push refspecs\n\nKills two birds with a commit by (1) fixing \"git push $there +HEAD\"\nto force the single push, and (2) allowing you to set\n\"remote.$there.push = HEAD\" so that \"git push $there\" will push\nonly the current branch.\n\n* db/host-alias (Mon Feb 18 23:28:38 2008 -0500) 2 commits\n - Add support for host aliases in config files\n - Use ALLOC_GROW in remote.{c,h}\n\nAllows URLs used in pushing and fetching to be rewritten.\nThis is an older round of the series.\n\n----------------------------------------------------------------\n[Graduated to \"master\"]\n\n* bc/fopen (Fri Feb 8 20:32:47 2008 -0600) 1 commit\n + Add compat/fopen.c which returns NULL on attempt to open directory\n\nWe would want fread(3) from fopen(3)'ed directory to fail but\nsome systems don't.  This adds a compatibility wrapper for\nfopen(3) that fails on directories.\n\n* js/maint-http-push (Thu Feb 14 23:26:12 2008 +0000) 3 commits\n + http-push: avoid a needless goto\n + http-push: do not get confused by submodules\n + http-push: avoid invalid memory accesses\n\nThis forks off of 'maint' in the hope of having a fixed\nhttp-push in future 1.5.4.X.\n\n* jk/empty-tree (Wed Feb 13 05:50:51 2008 -0500) 2 commits\n + add--interactive: handle initial commit better\n + hard-code the empty tree object\n\nDeals with the initial commit case better in \"git-add -i\".\n\n* jc/setup (Sun Feb 3 23:59:17 2008 -0800) 4 commits\n + builtin-mv: minimum fix to avoid losing files\n + git-add: adjust to the get_pathspec() changes.\n + Make blame accept absolute paths\n + setup: sanitize absolute and funny paths in get_pathspec()\n\nWorks better when an absolute path into work tree is given where\na relative paths is expected.\n\n* lt/revision-walker (Sat Feb 9 14:02:07 2008 -0800) 1 commit\n + Add \"--show-all\" revision walker flag for debugging\n\n* mc/prefix (Sat Feb 9 15:40:19 2008 +0100) 1 commit\n + Avoid a useless prefix lookup in strbuf_expand()\n\n----------------------------------------------------------------\n[Will merge to \"master\" soon]\n\n* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits\n + apply: do not barf on patch with too large an offset\n + core.whitespace: cr-at-eol\n + git-apply --whitespace=fix: fix whitespace fuzz introduced by\n   previous run\n + builtin-apply.c: pass ws_rule down to match_fragment()\n + builtin-apply.c: move copy_wsfix() function a bit higher.\n + builtin-apply.c: do not feed copy_wsfix() leading '+'\n + builtin-apply.c: simplify calling site to apply_line()\n + builtin-apply.c: clean-up apply_one_fragment()\n + builtin-apply.c: mark common context lines in lineinfo structure.\n + builtin-apply.c: optimize match_beginning/end processing a bit.\n + builtin-apply.c: make it more line oriented\n + builtin-apply.c: push match-beginning/end logic down\n + builtin-apply.c: restructure \"offset\" matching\n + builtin-apply.c: refactor small part that matches context\n\nFurther work on \"apply --whitespace=fix\".\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits\n - diff: make --dirstat binary-file safe\n + Add \"--dirstat\" for some directory statistics\n\nThe first one already in 'next' is the latest toy Linus showed\noff in his 2.6.25-rc2 announcement.  The other one on top is a\nrework to make it work more sensibly with a tree with binary\ncontents.\n\n* db/checkout (Wed Feb 20 15:54:54 2008 -0800) 16 commits\n + checkout: work from a subdirectory\n + checkout: tone down the \"forked status\" diagnostic messages\n + Clean up reporting differences on branch switch\n + builtin-checkout.c: fix possible usage segfault\n + checkout: notice when the switched branch is behind or forked\n + Build in checkout\n + Move code to clean up after a branch change to branch.c\n + Library function to check for unmerged index entries\n + Use diff -u instead of diff in t7201\n + Move create_branch into a library file\n + Build-in merge-recursive\n + Add \"skip_unmerged\" option to unpack_trees.\n + Discard \"deleted\" cache entries after using them to update the\n   working tree\n + Send unpack-trees debugging output to stderr\n + Add flag to make unpack_trees() not print errors.\n + Allow callers of unpack_trees() to handle failure\n\nCheckout rewritten in C.  With a few recent fixes, I think this\nis approaching to be usable on \"master\".\n\n* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits\n + diff --relative: help working in a bare repository\n + diff --relative: output paths as relative to the current\n   subdirectory\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n----------------------------------------------------------------\n[On Hold]\n\n* gp/hash-stdin (Thu Feb 14 20:13:55 2008 +0000) 1 commit\n - hash-object: cleanup handling of command line options\n\nI've touched Gerrit's original up somewhat and am still waiting\nfor a feedback.\n\n* js/run-command (Sat Feb 16 18:36:39 2008 +0100) 2 commits\n - start_command(), if .in/.out > 0, closes file descriptors, not the\n   callers\n - start_command(), .in/.out/.err = -1: Callers must close the file\n   descriptor\n\n* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits\n - Bulk allocate diff_filepair\n - patch freeable-bulk-alloc\n\n* js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nThere was a patch that uses this to implement \"git-stash drop\",\nwhich I didn't queue, as the command name and the UI was\nundecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n"},{"id":"69468","messageId":"alpine.LSU.1.00.0802211024200.17164@racer.site","threadId":"11850","inReplyTo":"7v8x1fymei.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-02-21T10:40:59Z","receivedAt":"2008-02-21T10:40:59Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 20 Feb 2008, Junio C Hamano wrote:\n\n> ----------------------------------------------------------------\n> [New Topics]\n> \n> * js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits\n\nHeh, now it gets confusing ;-) Three regular contributors with the same \ninitials? ;-)\n\n> * js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits\n>  + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM\n>  + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler\n> \n> This makes conflicting merges that have hunks separated by only\n> a few common lines much easier to read.\n\nThe question is: what to do about ALNUM.  Use it in merge-recursive?  Make \nit a config variable?\n\n> * db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit\n>  + Resolve value supplied for no-colon push refspecs\n> \n> Kills two birds with a commit by (1) fixing \"git push $there +HEAD\"\n> to force the single push, and (2) allowing you to set\n> \"remote.$there.push = HEAD\" so that \"git push $there\" will push\n> only the current branch.\n\nThe question is now: should we initialise remote.origin.push to HEAD like \nyou said?  And if so, shouldn't we have git-remote's \"add\" do the same?\n\nSpeaking of which, I think it would make sense to teach git-remote's \"add\" \nto detect if you are installing a remote \"origin\" and set up \nbranch.$(git symbolic-ref HEAD).{remote,merge} like clone would.  After \nall, if you are setting up \"origin\", chances are that you just initialised \na remote repository with your current one.\n\nThoughts?\n\n> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n>  + builtin-reflog.c: fix typo that accesses an unset variable\n>  + Teach \"git reflog\" a subcommand to delete single entries\n> \n> There was a patch that uses this to implement \"git-stash drop\",\n> which I didn't queue, as the command name and the UI was\n> undecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n\nMaybe it is time to \"drop\" this topic?\n\n> * nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n>  - Move all dashed-form commands to libexecdir\n> \n> Scheduled for 1.6.0.  I am not sure if we should merge this to\n> 'next' before 1.5.5.  Most active people will be on 'next' and\n> if we have this there, the resulting 1.5.5 release might end up\n> having issues that come from differences this one introduces.\n\nI think this is a good plan.  Better safe 'n sorry.\n\nCiao,\nDscho\n"},{"id":"69490","messageId":"7vejb6uuhp.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"alpine.LSU.1.00.0802211024200.17164@racer.site","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-21T16:47:30Z","receivedAt":"2008-02-21T16:47:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n>> * js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits\n>>  + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM\n>>  + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler\n>> \n>> This makes conflicting merges that have hunks separated by only\n>> a few common lines much easier to read.\n>\n> The question is: what to do about ALNUM.  Use it in merge-recursive?  Make \n> it a config variable?\n\nI'd say we'll leave it as is for now and use it everywhere later\nafter making sure things work out Ok.\n\n>> * db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit\n>>  + Resolve value supplied for no-colon push refspecs\n>> \n>> Kills two birds with a commit by (1) fixing \"git push $there +HEAD\"\n>> to force the single push, and (2) allowing you to set\n>> \"remote.$there.push = HEAD\" so that \"git push $there\" will push\n>> only the current branch.\n>\n> The question is now: should we initialise remote.origin.push to HEAD like \n> you said?  And if so, shouldn't we have git-remote's \"add\" do the same?\n\nPerhaps we do not do anything further for now, other than\ntelling shared repository people to put it in their config and\nsee how well the behaviour matches their expectation.  Protocol\nextensions to let clone notice what the other end is can come\nlater (and we would need to do that anyway to set up HEAD symref\nas well).  The same mechanism would be used in \"git remote add\",\nand at that point clone could be implemented as \"init/remote\nadd/fetch/checkout\".\n\n>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n>>  + builtin-reflog.c: fix typo that accesses an unset variable\n>>  + Teach \"git reflog\" a subcommand to delete single entries\n>> \n>> There was a patch that uses this to implement \"git-stash drop\",\n>> which I didn't queue, as the command name and the UI was\n>> undecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n>\n> Maybe it is time to \"drop\" this topic?\n\nI've been waiting for somebody to come up with a clean \"pop\", as\nit probably is easy enough and would be an itch people other\nthan you and me can scratch.\n"},{"id":"69603","messageId":"47BF18DF.6050100@nrlssc.navy.mil","threadId":"11850","inReplyTo":"alpine.LSU.1.00.0802211024200.17164@racer.site","subject":"Re: What's cooking in git.git (topics)","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T18:47:59Z","receivedAt":"2008-02-22T18:47:59Z","isPatch":false,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"Johannes Schindelin wrote:\n> Hi,\n> \n> On Wed, 20 Feb 2008, Junio C Hamano wrote:\n\n>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n>>  + builtin-reflog.c: fix typo that accesses an unset variable\n>>  + Teach \"git reflog\" a subcommand to delete single entries\n>>\n>> There was a patch that uses this to implement \"git-stash drop\",\n>> which I didn't queue, as the command name and the UI was\n>> undecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n> \n> Maybe it is time to \"drop\" this topic?\n\nThe issue with drop or pop (for me) was that deleting a reflog\nentry was causing error messages to be printed.\n\n'reflog delete' can cause read_ref_at() to print an error message in\ntwo ways.\n\n  1) If a reflog entry is deleted in the middle of the reflog, then\n     read_ref_at() will print an error message \"warning: Log %s has\n     gap after %s\". This is a sanity check which checks that the\n     previous reflog entry's \"new\" sha1 is equal to the current reflog\n     entry's \"old\" sha1.\n\n  2) If the top-most reflog entry does not match what is in refs/<ref>\n     then read_ref_at() will print an error message \"warning: Log %s\n     unexpectedly ended on %s\". This is another sanity check.\n\nWe can either disable these sanity checks, or change the code to ensure that\nthey pass, or do nothing in which case 'reflog delete' should probably be\nremoved.\n\nFor the first issue, we could rewrite the \"old\" sha1 while expiring reflog\nentries. We would lose some of the meaning of reflog entries in this case.\n\nFor the second issue, the ref needs to be rewritten with the sha1 of the\ntop-most reflog entry. This makes sense for stash, but not for any other\nref.\n\nI'm thinking that two new options to git-reflog are needed which will\nimplement the above two ideas. One will rewrite the \"old\" sha1 for each\nreflog entry so that it points to the previous entry. The other will\nupdate the ref so that it points at the top-most reflog entry.\n\nthoughts? suggestion for the names for the options?\n\n-brandon\n"},{"id":"69604","messageId":"47BF1AF2.8070506@nrlssc.navy.mil","threadId":"11850","inReplyTo":"47BF18DF.6050100@nrlssc.navy.mil","subject":"[PATCH 1/4] git-reflog: add option --rewrite to update reflog entries while expiring","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T18:56:50Z","receivedAt":"2008-02-22T18:56:50Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"Certain sanity checks on the reflog assume that each entry will contain\na reference to the previous entry. i.e. that the \"old\" sha1 field of a\nreflog entry will be equal to the \"new\" sha1 field of the previous entry.\n\nWhen reflog entries are deleted, this assumption may not hold. This patch\nadds a new option to git-reflog which causes the subcommands \"expire\" and\n\"delete\" to rewrite the \"old\" sha1 field of each reflog entry so that it\npoints to the previous reflog entry.\n\nSigned-off-by: Brandon Casey <casey@nrlssc.navy.mil>\n---\n builtin-reflog.c |   12 +++++++++++-\n 1 files changed, 11 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin-reflog.c b/builtin-reflog.c\nindex 77f70a6..f685d76 100644\n--- a/builtin-reflog.c\n+++ b/builtin-reflog.c\n@@ -15,7 +15,7 @@\n static const char reflog_expire_usage[] =\n \"git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...\";\n static const char reflog_delete_usage[] =\n-\"git-reflog delete [--verbose] [--dry-run] <refs>...\";\n+\"git-reflog delete [--verbose] [--dry-run] [--rewrite] <refs>...\";\n \n static unsigned long default_reflog_expire;\n static unsigned long default_reflog_expire_unreachable;\n@@ -24,6 +24,7 @@ struct cmd_reflog_expire_cb {\n \tstruct rev_info revs;\n \tint dry_run;\n \tint stalefix;\n+\tint rewrite;\n \tint verbose;\n \tunsigned long expire_total;\n \tunsigned long expire_unreachable;\n@@ -35,6 +36,7 @@ struct expire_reflog_cb {\n \tconst char *ref;\n \tstruct commit *ref_commit;\n \tstruct cmd_reflog_expire_cb *cmd;\n+\tunsigned char last_kept_sha1[20];\n };\n \n struct collected_reflog {\n@@ -216,6 +218,9 @@ static int expire_reflog_ent(unsigned char *osha1, unsigned char *nsha1,\n \tif (timestamp < cb->cmd->expire_total)\n \t\tgoto prune;\n \n+\tif (cb->cmd->rewrite)\n+\t\tosha1 = cb->last_kept_sha1;\n+\n \told = new = NULL;\n \tif (cb->cmd->stalefix &&\n \t    (!keep_entry(&old, osha1) || !keep_entry(&new, nsha1)))\n@@ -243,6 +248,7 @@ static int expire_reflog_ent(unsigned char *osha1, unsigned char *nsha1,\n \t\t\tsha1_to_hex(osha1), sha1_to_hex(nsha1),\n \t\t\temail, timestamp, sign, zone,\n \t\t\tmessage);\n+\t\thashcpy(cb->last_kept_sha1, nsha1);\n \t}\n \tif (cb->cmd->verbose)\n \t\tprintf(\"keep %s\", message);\n@@ -364,6 +370,8 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)\n \t\t\tcb.expire_unreachable = approxidate(arg + 21);\n \t\telse if (!strcmp(arg, \"--stale-fix\"))\n \t\t\tcb.stalefix = 1;\n+\t\telse if (!strcmp(arg, \"--rewrite\"))\n+\t\t\tcb.rewrite = 1;\n \t\telse if (!strcmp(arg, \"--all\"))\n \t\t\tdo_all = 1;\n \t\telse if (!strcmp(arg, \"--verbose\"))\n@@ -433,6 +441,8 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)\n \t\tconst char *arg = argv[i];\n \t\tif (!strcmp(arg, \"--dry-run\") || !strcmp(arg, \"-n\"))\n \t\t\tcb.dry_run = 1;\n+\t\telse if (!strcmp(arg, \"--rewrite\"))\n+\t\t\tcb.rewrite = 1;\n \t\telse if (!strcmp(arg, \"--verbose\"))\n \t\t\tcb.verbose = 1;\n \t\telse if (!strcmp(arg, \"--\")) {\n-- \n1.5.4.2.267.g38ea\n"},{"id":"69605","messageId":"47BF1B1A.5070907@nrlssc.navy.mil","threadId":"11850","inReplyTo":"1203706541-21719-1-git-send-email-casey@nrlssc.navy.mil","subject":"[PATCH 2/4] refs.c: make close_ref() and commit_ref() non-static","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T18:57:30Z","receivedAt":"2008-02-22T18:57:30Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"This is in preparation to the reflog-expire changes which will\nallow updating the ref after expiring the reflog.\n\nSigned-off-by: Brandon Casey <casey@nrlssc.navy.mil>\n---\n refs.c |    4 ++--\n refs.h |    6 ++++++\n 2 files changed, 8 insertions(+), 2 deletions(-)\n\ndiff --git a/refs.c b/refs.c\nindex 67d2a50..bc65429 100644\n--- a/refs.c\n+++ b/refs.c\n@@ -1018,7 +1018,7 @@ int rename_ref(const char *oldref, const char *newref, const char *logmsg)\n \treturn 1;\n }\n \n-static int close_ref(struct ref_lock *lock)\n+int close_ref(struct ref_lock *lock)\n {\n \tif (close_lock_file(lock->lk))\n \t\treturn -1;\n@@ -1026,7 +1026,7 @@ static int close_ref(struct ref_lock *lock)\n \treturn 0;\n }\n \n-static int commit_ref(struct ref_lock *lock)\n+int commit_ref(struct ref_lock *lock)\n {\n \tif (commit_lock_file(lock->lk))\n \t\treturn -1;\ndiff --git a/refs.h b/refs.h\nindex 9cd16f8..06abee1 100644\n--- a/refs.h\n+++ b/refs.h\n@@ -33,6 +33,12 @@ extern struct ref_lock *lock_ref_sha1(const char *ref, const unsigned char *old_\n #define REF_NODEREF\t0x01\n extern struct ref_lock *lock_any_ref_for_update(const char *ref, const unsigned char *old_sha1, int flags);\n \n+/** Close the file descriptor owned by a lock and return the status */\n+extern int close_ref(struct ref_lock *lock);\n+\n+/** Close and commit the ref locked by the lock */\n+extern int commit_ref(struct ref_lock *lock);\n+\n /** Release any lock taken but not written. **/\n extern void unlock_ref(struct ref_lock *lock);\n \n-- \n1.5.4.2.267.g38ea\n"},{"id":"69606","messageId":"47BF1CAC.5000009@nrlssc.navy.mil","threadId":"11850","inReplyTo":"1203706541-21719-2-git-send-email-casey@nrlssc.navy.mil","subject":"[PATCH 3/4] git-reflog: add option --updateref to write the last reflog sha1 into the ref","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T19:04:12Z","receivedAt":"2008-02-22T19:04:12Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"Certain sanity checks on the reflog assume that the sha1 of the top reflog\nentry will be equal to the sha1 stored in the ref.\n\nWhen reflog entries are deleted, this assumption may not hold. This patch\nadds a new option to git-reflog which causes the subcommands \"expire\" and\n\"delete\" to update the ref with the sha1 of the top-most reflog entry.\n\nSigned-off-by: Brandon Casey <casey@nrlssc.navy.mil>\n---\n\n\nThis sucks in close_ref() and commit_ref() from refs.c. The changes to\nexpire_reflog() implement some of what write_ref_sha1() does. I guess\na new function in refs.c could have been made which instead of a logmsg\ntakes an updated reflog filename, but that seemed too contrived. We're\nalready modifying the reflog directly anyway, so maybe it's ok to modify\nthe ref directly too.\n\n-brandon\n\n\n builtin-reflog.c |   17 ++++++++++++++++-\n 1 files changed, 16 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin-reflog.c b/builtin-reflog.c\nindex f685d76..280e24e 100644\n--- a/builtin-reflog.c\n+++ b/builtin-reflog.c\n@@ -15,7 +15,7 @@\n static const char reflog_expire_usage[] =\n \"git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...\";\n static const char reflog_delete_usage[] =\n-\"git-reflog delete [--verbose] [--dry-run] [--rewrite] <refs>...\";\n+\"git-reflog delete [--verbose] [--dry-run] [--rewrite] [--updateref] <refs>...\";\n \n static unsigned long default_reflog_expire;\n static unsigned long default_reflog_expire_unreachable;\n@@ -25,6 +25,7 @@ struct cmd_reflog_expire_cb {\n \tint dry_run;\n \tint stalefix;\n \tint rewrite;\n+\tint updateref;\n \tint verbose;\n \tunsigned long expire_total;\n \tunsigned long expire_unreachable;\n@@ -292,10 +293,20 @@ static int expire_reflog(const char *ref, const unsigned char *sha1, int unused,\n \t\t\tstatus |= error(\"%s: %s\", strerror(errno),\n \t\t\t\t\tnewlog_path);\n \t\t\tunlink(newlog_path);\n+\t\t} else if (cmd->updateref &&\n+\t\t\t(write_in_full(lock->lock_fd,\n+\t\t\t\tsha1_to_hex(cb.last_kept_sha1), 40) != 40 ||\n+\t\t\t write_in_full(lock->lock_fd, \"\\n\", 1) != 1 ||\n+\t\t\t close_ref(lock) < 0)) {\n+\t\t\tstatus |= error(\"Couldn't write %s\",\n+\t\t\t\tlock->lk->filename);\n+\t\t\tunlink(newlog_path);\n \t\t} else if (rename(newlog_path, log_file)) {\n \t\t\tstatus |= error(\"cannot rename %s to %s\",\n \t\t\t\t\tnewlog_path, log_file);\n \t\t\tunlink(newlog_path);\n+\t\t} else if (cmd->updateref && commit_ref(lock)) {\n+\t\t\tstatus |= error(\"Couldn't set %s\", lock->ref_name);\n \t\t}\n \t}\n \tfree(newlog_path);\n@@ -372,6 +383,8 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)\n \t\t\tcb.stalefix = 1;\n \t\telse if (!strcmp(arg, \"--rewrite\"))\n \t\t\tcb.rewrite = 1;\n+\t\telse if (!strcmp(arg, \"--updateref\"))\n+\t\t\tcb.updateref = 1;\n \t\telse if (!strcmp(arg, \"--all\"))\n \t\t\tdo_all = 1;\n \t\telse if (!strcmp(arg, \"--verbose\"))\n@@ -443,6 +456,8 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)\n \t\t\tcb.dry_run = 1;\n \t\telse if (!strcmp(arg, \"--rewrite\"))\n \t\t\tcb.rewrite = 1;\n+\t\telse if (!strcmp(arg, \"--updateref\"))\n+\t\t\tcb.updateref = 1;\n \t\telse if (!strcmp(arg, \"--verbose\"))\n \t\t\tcb.verbose = 1;\n \t\telse if (!strcmp(arg, \"--\")) {\n-- \n1.5.4.2.267.g38ea\n"},{"id":"69607","messageId":"47BF1CD6.70500@nrlssc.navy.mil","threadId":"11850","inReplyTo":"1203706541-21719-3-git-send-email-casey@nrlssc.navy.mil","subject":"[PATCH 4/4] git-stash: add new 'drop' subcommand","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T19:04:54Z","receivedAt":"2008-02-22T19:04:54Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"This allows a single stash entry to be deleted. It takes an\noptional argument which is a stash reflog entry. If no\narguments are supplied, it drops the most recent stash entry.\n\nSigned-off-by: Brandon Casey <casey@nrlssc.navy.mil>\n---\n Documentation/git-stash.txt |    7 ++++++-\n git-stash.sh                |   25 ++++++++++++++++++++++++-\n 2 files changed, 30 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt\nindex 48e6f5a..f50c24c 100644\n--- a/Documentation/git-stash.txt\n+++ b/Documentation/git-stash.txt\n@@ -8,7 +8,7 @@ git-stash - Stash the changes in a dirty working directory away\n SYNOPSIS\n --------\n [verse]\n-'git-stash' (list | show [<stash>] | apply [<stash>] | clear)\n+'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>])\n 'git-stash' [save [<message>]]\n \n DESCRIPTION\n@@ -85,6 +85,11 @@ clear::\n \tRemove all the stashed states. Note that those states will then\n \tbe subject to pruning, and may be difficult or impossible to recover.\n \n+drop [<stash>]::\n+\n+\tRemove a single stashed state from the stash list. When no `<stash>`\n+\tis given, it removes the latest one. i.e. `stash@\\{0}`\n+\n \n DISCUSSION\n ----------\ndiff --git a/git-stash.sh b/git-stash.sh\nindex b00f888..caa0258 100755\n--- a/git-stash.sh\n+++ b/git-stash.sh\n@@ -1,7 +1,7 @@\n #!/bin/sh\n # Copyright (c) 2007, Nanako Shiraishi\n \n-USAGE='[  | save | list | show | apply | clear | create ]'\n+USAGE='[  | save | list | show | apply | clear | drop | create ]'\n \n SUBDIRECTORY_OK=Yes\n OPTIONS_SPEC=\n@@ -196,6 +196,25 @@ apply_stash () {\n \tfi\n }\n \n+drop_stash () {\n+\thave_stash || die 'No stash entries to drop'\n+\n+\ttest $# = 0 && set -- \"$ref_stash@{0}\"\n+\n+\t# Verify supplied argument looks like a stash entry\n+\ts=$(git rev-parse --revs-only --no-flags \"$@\") &&\n+\tgit rev-parse --verify \"$s:\"   > /dev/null 2>&1 &&\n+\tgit rev-parse --verify \"$s^1:\" > /dev/null 2>&1 &&\n+\tgit rev-parse --verify \"$s^2:\" > /dev/null 2>&1 ||\n+\t\tdie \"$*: not a valid stashed state\"\n+\n+\tgit reflog delete --updateref --rewrite \"$@\" &&\n+\t\techo \"Dropped $* ($s)\" || die \"$*: Could not drop stash entry\"\n+\n+\t# clear_stash if we just dropped the last stash entry\n+\tgit rev-parse --verify \"$ref_stash@{0}\" > /dev/null 2>&1 || clear_stash\n+}\n+\n # Main command set\n case \"$1\" in\n list)\n@@ -230,6 +249,10 @@ create)\n \tfi\n \tcreate_stash \"$*\" && echo \"$w_commit\"\n \t;;\n+drop)\n+\tshift\n+\tdrop_stash \"$@\"\n+\t;;\n *)\n \tif test $# -eq 0\n \tthen\n-- \n1.5.4.2.267.g38ea\n"},{"id":"69617","messageId":"47BF39EB.5040603@nrlssc.navy.mil","threadId":"11850","inReplyTo":"47BF1AF2.8070506@nrlssc.navy.mil","subject":"[PATCH] reflog-delete: parse standard reflog options","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T21:08:59Z","receivedAt":"2008-02-22T21:08:59Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"Add support for some standard reflog options such as --dry-run and\n--verbose to the reflog delete subcommand.\n\nSigned-off-by: Brandon Casey <casey@nrlssc.navy.mil>\n---\n\n\nOops.\nI forgot to send this patch. The reflog patch set I sent should be\napplied on top of this one. Sorry.\n\n-brandon\n\n\n builtin-reflog.c |   24 +++++++++++++++++++++---\n 1 files changed, 21 insertions(+), 3 deletions(-)\n\ndiff --git a/builtin-reflog.c b/builtin-reflog.c\nindex 8af75bc..77f70a6 100644\n--- a/builtin-reflog.c\n+++ b/builtin-reflog.c\n@@ -14,6 +14,8 @@\n \n static const char reflog_expire_usage[] =\n \"git-reflog (show|expire) [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...\";\n+static const char reflog_delete_usage[] =\n+\"git-reflog delete [--verbose] [--dry-run] <refs>...\";\n \n static unsigned long default_reflog_expire;\n static unsigned long default_reflog_expire_unreachable;\n@@ -425,12 +427,28 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)\n \tstruct cmd_reflog_expire_cb cb;\n \tint i, status = 0;\n \n-\tif (argc < 2)\n-\t\treturn error(\"Nothing to delete?\");\n-\n \tmemset(&cb, 0, sizeof(cb));\n \n \tfor (i = 1; i < argc; i++) {\n+\t\tconst char *arg = argv[i];\n+\t\tif (!strcmp(arg, \"--dry-run\") || !strcmp(arg, \"-n\"))\n+\t\t\tcb.dry_run = 1;\n+\t\telse if (!strcmp(arg, \"--verbose\"))\n+\t\t\tcb.verbose = 1;\n+\t\telse if (!strcmp(arg, \"--\")) {\n+\t\t\ti++;\n+\t\t\tbreak;\n+\t\t}\n+\t\telse if (arg[0] == '-')\n+\t\t\tusage(reflog_delete_usage);\n+\t\telse\n+\t\t\tbreak;\n+\t}\n+\n+\tif (argc - i < 1)\n+\t\treturn error(\"Nothing to delete?\");\n+\n+\tfor ( ; i < argc; i++) {\n \t\tconst char *spec = strstr(argv[i], \"@{\");\n \t\tunsigned char sha1[20];\n \t\tchar *ep, *ref;\n-- \n1.5.4.2.267.g38ea\n"},{"id":"69621","messageId":"7vhcg07hmd.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"47BF18DF.6050100@nrlssc.navy.mil","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-22T22:26:18Z","receivedAt":"2008-02-22T22:26:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Brandon Casey <casey@nrlssc.navy.mil> writes:\n\n> Johannes Schindelin wrote:\n>> Hi,\n>> \n>> On Wed, 20 Feb 2008, Junio C Hamano wrote:\n>\n>>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n>>>  + builtin-reflog.c: fix typo that accesses an unset variable\n>>>  + Teach \"git reflog\" a subcommand to delete single entries\n>>>\n>>> There was a patch that uses this to implement \"git-stash drop\",\n>>> which I didn't queue, as the command name and the UI was\n>>> undecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n>> \n>> Maybe it is time to \"drop\" this topic?\n>\n> The issue with drop or pop (for me) was that deleting a reflog\n> entry was causing error messages to be printed.\n\nI agree with your analysis, and I am tempted to suggest just the\nsimplest option.\n\nThe thing is, unless it is a reflog used to implement stash,\nremoving an entry in the middle and adjusting an entry before\nand after it, just to fool and squelch the consistency mechanism\nwe explicitly have for safety, feels quite wrong.  Especially\ngiven that the whole point of the reflog is to allow you to\nrecover your branch to a particular point in time safely.\n\nSo I'd rather see us remove \"reflog delete\" and add \"reflog pop\"\nwhich resets the ref itself to the previous point and deletes\nthe last reflog entry.  Then \"stash pop\" would become simply\n\"stash apply\" followed by \"reflog pop\".\n\nWe might need to introduce \"stash push\" which would be a synonym\nfor \"stash pop\" for symmetry.  Also we may want to introduce a\nstash per branch if we do this.\n"},{"id":"69623","messageId":"47BF5242.6090906@nrlssc.navy.mil","threadId":"11850","inReplyTo":"47BF1CD6.70500@nrlssc.navy.mil","subject":"[PATCH] git-stash: add new 'pop' subcommand","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-22T22:52:50Z","receivedAt":"2008-02-22T22:52:50Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"This combines the existing stash subcommands 'apply' and 'drop' to\nallow a single stash entry to be applied and then dropped, in other\nwords 'popped', from the stash list.\n\nSigned-off-by: Brandon Casey <casey@nrlssc.navy.mil>\n---\n\n\nFor completeness, here is stash pop.\n\n-brandon\n\n\n Documentation/git-stash.txt |    8 +++++++-\n git-stash.sh                |   10 +++++++++-\n 2 files changed, 16 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt\nindex f50c24c..8dc35d4 100644\n--- a/Documentation/git-stash.txt\n+++ b/Documentation/git-stash.txt\n@@ -8,7 +8,7 @@ git-stash - Stash the changes in a dirty working directory away\n SYNOPSIS\n --------\n [verse]\n-'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>])\n+'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>] | pop [<stash>])\n 'git-stash' [save [<message>]]\n \n DESCRIPTION\n@@ -90,6 +90,12 @@ drop [<stash>]::\n \tRemove a single stashed state from the stash list. When no `<stash>`\n \tis given, it removes the latest one. i.e. `stash@\\{0}`\n \n+pop [<stash>]::\n+\n+\tRemove a single stashed state from the stash list and apply on top\n+\tof the current working tree state. When no `<stash>` is given,\n+\t`stash@\\{0}` is assumed. See also `apply`.\n+\n \n DISCUSSION\n ----------\ndiff --git a/git-stash.sh b/git-stash.sh\nindex caa0258..297d12d 100755\n--- a/git-stash.sh\n+++ b/git-stash.sh\n@@ -1,7 +1,7 @@\n #!/bin/sh\n # Copyright (c) 2007, Nanako Shiraishi\n \n-USAGE='[  | save | list | show | apply | clear | drop | create ]'\n+USAGE='[  | save | list | show | apply | clear | drop | pop | create ]'\n \n SUBDIRECTORY_OK=Yes\n OPTIONS_SPEC=\n@@ -253,6 +253,14 @@ drop)\n \tshift\n \tdrop_stash \"$@\"\n \t;;\n+pop)\n+\tshift\n+\tif apply_stash \"$@\"\n+\tthen\n+\t\ttest -z \"$unstash_index\" || shift\n+\t\tdrop_stash \"$@\"\n+\tfi\n+\t;;\n *)\n \tif test $# -eq 0\n \tthen\n-- \n1.5.4.2.267.g38ea.dirty\n"},{"id":"69626","messageId":"47BF669F.4070803@nrlssc.navy.mil","threadId":"11850","inReplyTo":"7vhcg07hmd.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-23T00:19:43Z","receivedAt":"2008-02-23T00:19:43Z","isPatch":false,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"Junio C Hamano wrote:\n> Brandon Casey <casey@nrlssc.navy.mil> writes:\n> \n>> Johannes Schindelin wrote:\n>>> Hi,\n>>>\n>>> On Wed, 20 Feb 2008, Junio C Hamano wrote:\n>>>> * js/reflog-delete (Fri Jan 4 19:11:37 2008 -0600) 2 commits\n>>>>  + builtin-reflog.c: fix typo that accesses an unset variable\n>>>>  + Teach \"git reflog\" a subcommand to delete single entries\n>>>>\n>>>> There was a patch that uses this to implement \"git-stash drop\",\n>>>> which I didn't queue, as the command name and the UI was\n>>>> undecided yet.  Dscho was in favor of \"pop\" without \"drop\".\n>>> Maybe it is time to \"drop\" this topic?\n>> The issue with drop or pop (for me) was that deleting a reflog\n>> entry was causing error messages to be printed.\n> \n> I agree with your analysis, and I am tempted to suggest just the\n> simplest option.\n> \n> The thing is, unless it is a reflog used to implement stash,\n> removing an entry in the middle and adjusting an entry before\n> and after it, just to fool and squelch the consistency mechanism\n> we explicitly have for safety, feels quite wrong.  Especially\n> given that the whole point of the reflog is to allow you to\n> recover your branch to a particular point in time safely.\n\nJust to clarify, only the entry _after_ has to be adjusted.\n\nIf the primary reason for the old sha1 field is to be able to check\nthe reflog for consistency, then maybe it makes sense to adjust this\nfield. It's not used when resetting to a particular reflog entry is it?\n\nWe do lose something. The reflog entry conveys a transition _from_\na state _to_ a state. If the reflog entry is adjusted, the _from_\nstate is modified. But I think you would have to manually read the\nreflog file to see this information right? The fact that this\ninformation is lost is why I didn't feel comfortable adjusting the\nreflog entries by default. In the case of stash, this information\nis uninteresting.\n\n> So I'd rather see us remove \"reflog delete\" and add \"reflog pop\"\n> which resets the ref itself to the previous point and deletes\n> the last reflog entry.  Then \"stash pop\" would become simply\n> \"stash apply\" followed by \"reflog pop\".\n\nThe patch series I sent would allow this with\n\n    git reflog delete --updateref stash@{0}\n\nI don't think that satisfies the requests though. People wanted to\nbe able to delete any entries in the stash list.\n\nIs any of this currently useful outside of stash? I don't know\nenough to know why someone would want to modify the ref without\nresetting at least the index and that is what git-reset is for.\nAlso, outside of stash, I don't know why someone would want to\ndelete individual reflog entries.\n\n> We might need to introduce \"stash push\" which would be a synonym\n> for \"stash pop\" for symmetry.\n\nI like \"stash push\" if you mean _antonym_ and not _synonym_.\n\n\"stash pop\" and \"stash push\" would be antonyms (opposite meaning).\n\"stash push\" and \"stash save\" would be synonyms (same meaning).\n\n>  Also we may want to introduce a stash per branch if we do this.\n\nThis isn't necessary for how I use stash.\n\n-brandon\n"},{"id":"69627","messageId":"7v4pc07bx1.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"47BF669F.4070803@nrlssc.navy.mil","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-23T00:29:30Z","receivedAt":"2008-02-23T00:29:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Brandon Casey <casey@nrlssc.navy.mil> writes:\n\n> Junio C Hamano wrote:\n>\n>> We might need to introduce \"stash push\" which would be a synonym\n>> for \"stash pop\" for symmetry.\n>\n> I like \"stash push\" if you mean _antonym_ and not _synonym_.\n\nHeh, I obviously meant synonym \"push == save\", to give feeling\nof symmetry between \"push\" and \"pop\", instead of \"save\" and \"pop\".\n"},{"id":"69629","messageId":"7voda85wc3.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"47BF669F.4070803@nrlssc.navy.mil","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-23T00:51:24Z","receivedAt":"2008-02-23T00:51:24Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Brandon Casey <casey@nrlssc.navy.mil> writes:\n\n> Junio C Hamano wrote:\n>\n>>  Also we may want to introduce a stash per branch if we do this.\n>\n> This isn't necessary for how I use stash.\n\nThat's what I thought initially.  But after thinking about it a\nbit, I do not think so anymore.\n\nIt feels limiting not to be able to stash here and unstash\nthere.  You cannot stash on one branch and apply on another as\neasily (you should still be able to, by naming the stash\nexplicitly, if you really wanted to).\n\nBut why would one even want to?  \"What I've been hacking on is\ngetting into a good shape but now I noticed I was on a wrong\nbranch\", is probably the only reason.  But that is what branch\nswitching \"git checkout\" (and its -m variant) does.  If your\nchanges are something that would make \"checkout -m\" conflict,\nstashing and unstashing will result in the same conflict anyway,\nso nothing is lost.\n\nAnd there are obvious advantages to per-branch stash.  \"stash\nlist\" would contain only changes related to the current branch\nby default for one thing.  \"stash apply\" without parameter would\nbe context sensitive as well.\n\nBy the way, I also thought that \"pop instead of delete\" was too\nlimiting.  I tried to like \"pop\" and wanted to justify it, but I\nsuspect it would invite user grief in this sequence:\n\n        hack hack, gets interrupted\n        git stash\n        switch to another branch, service interrupt, and come back\n        git stash pop\n        hack hack, oops, I made a mess.\n\nAnd earlier stash point was in a much better shape, but it has already\nbeen lost.\n\nWhile the workflow with the current stash would be:\n        \n        hack hack, gets interrupted\n        git stash\n        switch to another branch, service interrupt, and come back\n        git stash apply\n        hack hack, oops, I made a mess.\n        git reset --hard\n        git stash apply\n        git commit\n        git stash clear\n"},{"id":"69646","messageId":"47BF884B.6020302@nrlssc.navy.mil","threadId":"11850","inReplyTo":"7voda85wc3.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Brandon Casey","fromEmail":"casey@nrlssc.navy.mil","sentAt":"2008-02-23T02:43:23Z","receivedAt":"2008-02-23T02:43:23Z","isPatch":false,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"Junio C Hamano wrote:\n> Brandon Casey <casey@nrlssc.navy.mil> writes:\n> \n>> Junio C Hamano wrote:\n>>\n>>>  Also we may want to introduce a stash per branch if we do this.\n>> This isn't necessary for how I use stash.\n> \n> That's what I thought initially.  But after thinking about it a\n> bit, I do not think so anymore.\n> \n> It feels limiting not to be able to stash here and unstash\n> there.  You cannot stash on one branch and apply on another as\n> easily (you should still be able to, by naming the stash\n> explicitly, if you really wanted to).\n> \n> But why would one even want to?  \"What I've been hacking on is\n> getting into a good shape but now I noticed I was on a wrong\n> branch\", is probably the only reason.  But that is what branch\n> switching \"git checkout\" (and its -m variant) does.  If your\n> changes are something that would make \"checkout -m\" conflict,\n> stashing and unstashing will result in the same conflict anyway,\n> so nothing is lost.\n\nOk, I had to read that more than once, but you've convinced me.\nper-branch stash is interesting.\n\n-brandon\n"},{"id":"69870","messageId":"7vpruljunl.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7v8x1fymei.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-25T08:40:46Z","receivedAt":"2008-02-25T08:40:46Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\n* sp/describe (Sun Feb 24 03:07:33 2008 -0500) 5 commits\n + Use git-describe --exact-match in bash prompt on detached HEAD\n + Teach git-describe --exact-match to avoid expensive tag searches\n + Avoid accessing non-tag refs in git-describe unless --all is\n   requested\n + Teach git-describe to use peeled ref information when scanning\n   tags\n + Optimize peel_ref for the current ref of a for_each_ref callback\n\n (should go to 'master' soon)\n\n* bc/reflog-fix (Fri Feb 22 12:47:08 2008 -0600) 1 commit\n + builtin-reflog.c: don't install new reflog on write failure\n\n (should go to 'master' soon)\n\n* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits\n - tests: convert \"cmp\" and \"cmp -s\" to test_cmp\n - tests: test_cmp helper function\n\n* ae/pack-autothread (Fri Feb 22 20:12:58 2008 -0600) 2 commits\n + pack-objects: Print a message describing the number of threads for\n   packing\n + pack-objects: Add runtime detection of online CPU's\n\n (should go to 'master' soon)\n\n* jm/free (Thu Jan 31 18:26:32 2008 +0100) 1 commit\n + Avoid unnecessary \"if-before-free\" tests.\n\n* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit\n - diff: make --dirstat binary-file safe\n\n----------------------------------------------------------------\n[Graduated to \"master\"]\n\n* jc/apply-whitespace (Mon Feb 11 15:32:29 2008 -0800) 14 commits\n\nFurther work on \"apply --whitespace=fix\".\n\n* lt/dirstat (Tue Feb 12 17:06:58 2008 -0800) 2 commits\n\n----------------------------------------------------------------\n[Will merge to \"master\" soon]\n\n* db/host-alias (Sun Feb 24 22:25:04 2008 -0800) 3 commits\n + url rewriting: take longest and first match\n + Add support for url aliases in config files\n + Use ALLOC_GROW in remote.{c,h}\n\nAllows URLs used in pushing and fetching to be rewritten.\n\n* db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500) 1 commit\n + Resolve value supplied for no-colon push refspecs\n\nKills two birds with a commit by (1) fixing \"git push $there +HEAD\"\nto force the single push, and (2) allowing you to set\n\"remote.$there.push = HEAD\" so that \"git push $there\" will push\nonly the current branch.\n\n* db/checkout (Sat Feb 23 15:45:19 2008 -0800) 21 commits\n + checkout: error out when index is unmerged even with -m\n + checkout: show progress when checkout takes long time while\n   switching branches\n + Add merge-subtree back\n + checkout: updates to tracking report\n + builtin-checkout.c: Remove unused prefix arguments in\n   switch_branches path\n + checkout: work from a subdirectory\n + checkout: tone down the \"forked status\" diagnostic messages\n + Clean up reporting differences on branch switch\n + builtin-checkout.c: fix possible usage segfault\n + checkout: notice when the switched branch is behind or forked\n + Build in checkout\n + Move code to clean up after a branch change to branch.c\n + Library function to check for unmerged index entries\n + Use diff -u instead of diff in t7201\n + Move create_branch into a library file\n + Build-in merge-recursive\n + Add \"skip_unmerged\" option to unpack_trees.\n + Discard \"deleted\" cache entries after using them to update the\n   working tree\n + Send unpack-trees debugging output to stderr\n + Add flag to make unpack_trees() not print errors.\n + Allow callers of unpack_trees() to handle failure\n\nCheckout rewritten in C.\n\n* gp/hash-stdin (Thu Feb 21 10:06:47 2008 +0000) 1 commit\n + hash-object: cleanup handling of command line options\n\n* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits\n + diff --relative: help working in a bare repository\n + diff --relative: output paths as relative to the current\n   subdirectory\n\n* js/run-command (Thu Feb 21 23:42:56 2008 +0100) 2 commits\n + start_command(), if .in/.out > 0, closes file descriptors, not the\n   callers\n + start_command(), .in/.out/.err = -1: Callers must close the file\n   descriptor\n\n* jk/help-alias (Sun Feb 24 17:17:37 2008 -0500) 3 commits\n + help: respect aliases\n + make alias lookup a public, procedural function\n + help: use parseopt\n\n* cw/bisect (Sat Feb 23 17:14:17 2008 -0800) 1 commit\n + Eliminate confusing \"won't bisect on seeked tree\" failure\n\n* js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits\n + doc: documentation update for the branch track changes\n + branch: optionally setup branch.*.merge from upstream local\n   branches\n\nThis allows you to automatically set up tracking even when forking\nfrom a local branch; it builds on top of Daniel's \"checkout in C\".\n\n* js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits\n + xdl_merge(): introduce XDL_MERGE_ZEALOUS_ALNUM\n + xdl_merge(): make XDL_MERGE_ZEALOUS output simpler\n\nThis makes conflicting merges that have hunks separated by only\na few common lines much easier to read.\n\n* db/cover-letter (Sat Feb 23 09:41:56 2008 +0100) 9 commits\n + t4014: Replace sed's non-standard 'Q' by standard 'q'\n + Support a --cc=<email> option in format-patch\n + Combine To: and Cc: headers\n + Fix format.headers not ending with a newline\n + Add tests for extra headers in format-patch\n + Add a --cover-letter option to format-patch\n + Export some email and pretty-printing functions\n + Improve message-id generation flow control for format-patch\n + Add more tests for format-patch\n\nTeaches format-patch to optionally generate cover letters.\nSeveral people on the list have had good success stories to\ntell, which is very encouraging.\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* js/reflog-delete (Fri Feb 22 16:52:50 2008 -0600) 10 commits\n + git-stash: add new 'pop' subcommand\n + git-stash: add new 'drop' subcommand\n + git-reflog: add option --updateref to write the last reflog sha1\n   into the ref\n + refs.c: make close_ref() and commit_ref() non-static\n + git-reflog: add option --rewrite to update reflog entries while\n   expiring\n + reflog-delete: parse standard reflog options\n + Merge branch 'bc/reflog-fix' into js/reflog-delete\n + builtin-reflog.c: don't install new reflog on write failure\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nI think this needs tests for both high-level (\"stash drop\" and\n\"stash pop\") and low-level (\"reflog delete --rewrite\" and\n\"reflog delete --updateref\"), but otherwise the series looks in\na very good shape.\n\n----------------------------------------------------------------\n[On Hold]\n\n* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits\n - Teach GIT-VERSION-GEN about the .git file\n - Teach git-submodule.sh about the .git file\n - Teach resolve_gitlink_ref() about the .git file\n - Add platform-independent .git \"symlink\"\n\nThe idea and the implementation seem Ok, but this leaves\ndistinct feeling that it is a solution still waiting for a user\n(e.g. \"git submodule\" enhancements to take advantage of this\nfacility to preserve the subrepository while switching between a\nrevision with a submodule and another before the submodule was\nbound to the superproject).\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits\n - Bulk allocate diff_filepair\n - patch freeable-bulk-alloc\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits\n - WIP: rethink replay merge\n - Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n + expose a helper function peel_to_type().\n + merge-recursive: split low-level merge functions out.\n"},{"id":"70191","messageId":"7v1w6xoqnm.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vpruljunl.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-28T00:45:01Z","receivedAt":"2008-02-28T00:45:01Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\n* js/maint-daemon (Tue Feb 26 13:00:55 2008 +0100) 2 commits\n + daemon: ensure that base-path is an existing directory\n + daemon: send more error messages to the syslog\n\n* ew/maint-svn-cert-fileprovider (Mon Feb 25 15:56:28 2008 +0100) 1 commit\n + git-svn: Don't prompt for client cert password everytime.\n\n* sb/describe-long (Mon Feb 25 10:43:33 2008 +0100) 1 commit\n + git-describe: --long shows the object name even for a tagged\n   commit\n\n* mk/maint-parse-careful (Mon Feb 25 22:46:13 2008 +0100) 10 commits\n - receive-pack: use strict mode for unpacking objects\n - index-pack: introduce checking mode\n - unpack-objects: prevent writing of inconsistent objects\n - unpack-object: cache for non written objects\n - add common fsck error printing function\n - builtin-fsck: move common object checking code to fsck.c\n - builtin-fsck: reports missing parent commits\n - Remove unused object-ref code\n - builtin-fsck: move away from object-refs to fsck_walk\n - add generic, type aware object chain walker\n\n* jn/gitweb-grep (Tue Feb 26 13:22:08 2008 +0100) 3 commits\n + gitweb: Clearly distinguish regexp / exact match searches\n + gitweb: Simplify fixed string search\n + gitweb: Change parse_commits signature to allow for multiple\n   options\n\n* jc/remote-multi-url (Wed Feb 27 13:50:44 2008 -0800) 1 commit\n + git-remote: do not complain on multiple URLs for a remote\n\n* cb/http-test (Wed Feb 27 20:28:45 2008 +0100) 2 commits\n - http-push: add regression tests\n - http-push: push <remote> :<branch> deletes remote branch\n\n* mh/maint-http-proxy-fix (Wed Feb 27 21:35:50 2008 +0100) 1 commit\n - Set proxy override with http_init()\n\n----------------------------------------------------------------\n[Graduated to \"master\"]\n\n* ae/pack-autothread (Fri Feb 22 20:12:58 2008 -0600)\n\nAdds runtime detection of online CPU's\n\n* sp/describe (Sun Feb 24 03:07:33 2008 -0500)\n\nA new --exact-match option describes only tagged commits\n\n* bc/reflog-fix (Fri Feb 22 12:47:08 2008 -0600)\n\n* db/host-alias (Sun Feb 24 22:25:04 2008 -0800)\n\nAllows URLs used in pushing and fetching to be rewritten.\n\n* db/push-single-with-HEAD (Wed Feb 20 12:54:05 2008 -0500)\n\nKills two birds with a commit by (1) fixing \"git push $there +HEAD\"\nto force the single push, and (2) allowing you to set\n\"remote.$there.push = HEAD\" so that \"git push $there\" will push\nonly the current branch.\n\n* db/checkout (Sat Feb 23 15:45:19 2008 -0800)\n\nCheckout rewritten in C.\n\n* gp/hash-stdin (Thu Feb 21 10:06:47 2008 +0000)\n\n* jc/diff-relative (Wed Feb 13 00:34:39 2008 -0800) 2 commits\n\n\"diff --relative\" outputs paths as relative to the current\nsubdirectory.\n\n* js/run-command (Thu Feb 21 23:42:56 2008 +0100) 2 commits\n\nAPI clean-ups.\n\n* jk/help-alias (Sun Feb 24 17:17:37 2008 -0500) 3 commits\n\nShows aliases in \"git help\"\n\n* cw/bisect (Sat Feb 23 17:14:17 2008 -0800) 1 commit\n\nFixes \"won't bisect on seeked tree\".\n\n* js/branch-track (Tue Feb 19 11:24:38 2008 -0500) 2 commits\n\nThis allows you to automatically set up tracking even when forking\nfrom a local branch; it builds on top of Daniel's \"checkout in C\".\n\n* js/merge (Sun Feb 17 19:07:40 2008 +0000) 2 commits\n\nThis makes conflicting merges that have hunks separated by only\na few common lines much easier to read.\n\n* db/cover-letter (Sat Feb 23 09:41:56 2008 +0100) 9 commits\n\nTeaches format-patch to optionally generate cover letters.\n\n* jm/free (Thu Jan 31 18:26:32 2008 +0100)\n\nDrops unnecessary \"if-before-free\" tests.\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* js/reflog-delete (Fri Feb 22 16:52:50 2008 -0600) 9 commits\n + git-stash: add new 'pop' subcommand\n + git-stash: add new 'drop' subcommand\n + git-reflog: add option --updateref to write the last reflog sha1\n   into the ref\n + refs.c: make close_ref() and commit_ref() non-static\n + git-reflog: add option --rewrite to update reflog entries while\n   expiring\n + reflog-delete: parse standard reflog options\n + Merge branch 'bc/reflog-fix' into js/reflog-delete\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nI think this needs tests for both high-level (\"stash drop\" and\n\"stash pop\") and low-level (\"reflog delete --rewrite\" and\n\"reflog delete --updateref\"), but otherwise the series looks in\na very good shape.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits\n - tests: convert \"cmp\" and \"cmp -s\" to test_cmp\n - tests: test_cmp helper function\n\n* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit\n - diff: make --dirstat binary-file safe\n\n* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits\n - Teach GIT-VERSION-GEN about the .git file\n - Teach git-submodule.sh about the .git file\n - Teach resolve_gitlink_ref() about the .git file\n - Add platform-independent .git \"symlink\"\n\nThe idea and the implementation seem Ok, but this leaves\ndistinct feeling that it is a solution still waiting for a user\n(e.g. \"git submodule\" enhancements to take advantage of this\nfacility to preserve the subrepository while switching between a\nrevision with a submodule and another before the submodule was\nbound to the superproject).\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits\n - Bulk allocate diff_filepair\n - patch freeable-bulk-alloc\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits\n - WIP: rethink replay merge\n - Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n + expose a helper function peel_to_type().\n + merge-recursive: split low-level merge functions out.\n"},{"id":"70550","messageId":"7vy792yzd6.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7v1w6xoqnm.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-03-01T20:15:49Z","receivedAt":"2008-03-01T20:15:49Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\n* sp/fetch-optim (Sat Mar 1 00:25:38 2008 -0500) 7 commits\n - Teach git-fetch to grab a tag at the same time as a commit\n - Make git-fetch follow tags we already have objects for sooner\n - Teach upload-pack to log the received need lines to fd 3\n - Allow builtin-fetch's find_non_local_tags to append onto a list\n - Ensure tail pointer gets setup correctly when we fetch HEAD only\n - Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch\n - Remove unused variable in builtin-fetch find_non_local_tags\n\nA few existing tests in 5515 need to be adjusted as they expect tags not\nto be fetched early, but the point of this series is to optimize to allow\nthem to, under some conditions.  Otherwise slated for 1.5.5.\n\n* pb/cvsimport (Thu Feb 28 11:18:23 2008 +0100) 3 commits\n + cvsimport: document that -M can be used multiple times\n + cvsimport: allow for multiple -M options\n + cvsimport: have default merge regex allow for dashes in the branch\n   name\n\nSlated for 1.5.5.\n\n* nd/worktree (Wed Feb 27 23:40:45 2008 +0700) 9 commits\n - Documentation: update api-builtin and api-setup\n - Make setup_git_directory() auto-setup worktree if found\n - builtin-archive: mark unused prefix \"unused_prefix\"\n - Completely move out worktree setup from\n   setup_git_directory_gently()\n - http-push: Avoid calling setup_git_directory() twice\n - Make setup_work_tree() return new prefix\n - Make get_git_dir() and 'git rev-parse --git-dir' absolute path\n - Make sure setup_git_directory is called before accessing\n   repository\n - \"git read-tree -m\" and the like require worktree\n\nThe first one needs replacement as it breaks \"read-tree -i\", I think.\n\n* sp/describe-tag (Thu Feb 28 01:22:36 2008 -0500) 1 commit\n - Teach git-describe to verify annotated tag names before output\n\nSlated for 1.5.5.\n\n* jc/maint-log-merge-left-right (Tue Feb 26 23:18:38 2008 -0800) 1 commit\n + Fix \"git log --merge --left-right\"\n\nSoon to be in 'master' and then 'maint'.\n\n* np/verify-pack (Thu Feb 28 00:25:20 2008 -0500) 4 commits\n + add storage size output to 'git verify-pack -v'\n + fix unimplemented packed_object_info_detail() features\n + make verify_one_pack() a bit less wrong wrt packed_git structure\n + factorize revindex code out of builtin-pack-objects.c\n\nSlated for 1.5.5.\n\n* js/remote (Fri Feb 29 01:46:07 2008 +0000) 5 commits\n + builtin-remote: prune remotes correctly that were added with --\n   mirror\n + Make git-remote a builtin\n + Test \"git remote show\" and \"git remote prune\"\n + parseopt: add flag to stop on first non option\n + path-list: add functions to work with unsorted lists\n\nSlated for 1.5.5.\n\n----------------------------------------------------------------\n[Merge to \"master\" soon, Slated for 1.5.5]\n\n* js/maint-daemon (Tue Feb 26 13:00:55 2008 +0100) 2 commits\n + daemon: ensure that base-path is an existing directory\n + daemon: send more error messages to the syslog\n\n* ew/maint-svn-cert-fileprovider (Mon Feb 25 15:56:28 2008 +0100) 1 commit\n + git-svn: Don't prompt for client cert password everytime.\n\n* sb/describe-long (Mon Feb 25 10:43:33 2008 +0100) 1 commit\n + git-describe: --long shows the object name even for a tagged\n   commit\n\n* mk/maint-parse-careful (Mon Feb 25 22:46:13 2008 +0100) 10 commits\n + receive-pack: use strict mode for unpacking objects\n + index-pack: introduce checking mode\n + unpack-objects: prevent writing of inconsistent objects\n + unpack-object: cache for non written objects\n + add common fsck error printing function\n + builtin-fsck: move common object checking code to fsck.c\n + builtin-fsck: reports missing parent commits\n + Remove unused object-ref code\n + builtin-fsck: move away from object-refs to fsck_walk\n + add generic, type aware object chain walker\n\n* jn/gitweb-grep (Tue Feb 26 13:22:08 2008 +0100) 3 commits\n + gitweb: Clearly distinguish regexp / exact match searches\n + gitweb: Simplify fixed string search\n + gitweb: Change parse_commits signature to allow for multiple\n   options\n\n* jc/remote-multi-url (Wed Feb 27 13:50:44 2008 -0800) 1 commit\n + git-remote: do not complain on multiple URLs for a remote\n\n* cb/http-test (Wed Feb 27 20:28:45 2008 +0100) 2 commits\n + http-push: add regression tests\n + http-push: push <remote> :<branch> deletes remote branch\n\n* mh/maint-http-proxy-fix (Wed Feb 27 21:35:50 2008 +0100) 1 commit\n + Set proxy override with http_init()\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* js/reflog-delete (Fri Feb 22 16:52:50 2008 -0600) 9 commits\n + git-stash: add new 'pop' subcommand\n + git-stash: add new 'drop' subcommand\n + git-reflog: add option --updateref to write the last reflog sha1\n   into the ref\n + refs.c: make close_ref() and commit_ref() non-static\n + git-reflog: add option --rewrite to update reflog entries while\n   expiring\n + reflog-delete: parse standard reflog options\n + Merge branch 'bc/reflog-fix' into js/reflog-delete\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nI think this needs tests for both high-level (\"stash drop\" and\n\"stash pop\") and low-level (\"reflog delete --rewrite\" and\n\"reflog delete --updateref\"), but otherwise the series looks in\na very good shape.  Slated for 1.5.5 iff tests materialize.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits\n - tests: convert \"cmp\" and \"cmp -s\" to test_cmp\n - tests: test_cmp helper function\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit\n - diff: make --dirstat binary-file safe\n\n* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits\n - Teach GIT-VERSION-GEN about the .git file\n - Teach git-submodule.sh about the .git file\n - Teach resolve_gitlink_ref() about the .git file\n - Add platform-independent .git \"symlink\"\n\nThe idea and the implementation seem Ok, but this leaves\ndistinct feeling that it is a solution still waiting for a user\n(e.g. \"git submodule\" enhancements to take advantage of this\nfacility to preserve the subrepository while switching between a\nrevision with a submodule and another before the submodule was\nbound to the superproject).\n\n* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits\n - Bulk allocate diff_filepair\n - patch freeable-bulk-alloc\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits\n - WIP: rethink replay merge\n - Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n + expose a helper function peel_to_type().\n + merge-recursive: split low-level merge functions out.\n"},{"id":"70634","messageId":"20080302140210.GZ8410@spearce.org","threadId":"11850","inReplyTo":"7vy792yzd6.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-03-02T14:02:10Z","receivedAt":"2008-03-02T14:02:10Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Junio C Hamano <gitster@pobox.com> wrote:\n> * sp/fetch-optim (Sat Mar 1 00:25:38 2008 -0500) 7 commits\n>  - Teach git-fetch to grab a tag at the same time as a commit\n>  - Make git-fetch follow tags we already have objects for sooner\n>  - Teach upload-pack to log the received need lines to fd 3\n>  - Allow builtin-fetch's find_non_local_tags to append onto a list\n>  - Ensure tail pointer gets setup correctly when we fetch HEAD only\n>  - Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch\n>  - Remove unused variable in builtin-fetch find_non_local_tags\n> \n> A few existing tests in 5515 need to be adjusted as they expect tags not\n> to be fetched early, but the point of this series is to optimize to allow\n> them to, under some conditions.  Otherwise slated for 1.5.5.\n\nReally?  I thought 5515 was passing when I sent the v2 series in.\nI'll double check it later today.  Prior to my \"Teach upload-pack\nto log\" change I'm not sure *how* the tests in 5515 would notice\nthat tags were fetched on the first connection and not the second.\nIts still in the same git-fetch process.\n \n-- \nShawn.\n"},{"id":"70723","messageId":"7vmypglfwm.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vy792yzd6.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-03-03T02:06:49Z","receivedAt":"2008-03-03T02:06:49Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\n* cb/mergetool (Thu Feb 21 23:31:56 2008 +0000) 4 commits\n - Add a very basic test script for git mergetool\n - Teach git mergetool to use custom commands defined at config time\n - Changed an internal variable of mergetool to support custom\n   commands\n - Tidy up git mergetool's backup file behaviour\n\n* dc/format-pretty (Sun Mar 2 17:05:53 2008 +0800) 3 commits\n - log/show/whatchanged: introduce format.pretty configuration\n - specify explicit \"--pretty=medium\" with `git log/show/whatchanged`\n - whatchanged documentation: share description of --pretty with\n   others\n\n* ph/parseopt (Sun Mar 2 11:35:56 2008 +0100) 2 commits\n + parse-options: new option type to treat an option-like parameter\n   as an argument.\n + parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --\n   parseopt\n\n* nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits\n - Additional tests to capture worktree special cases\n - Documentation: update api-builtin and api-setup\n - Make setup_git_directory() auto-setup worktree if found\n - builtin-archive: mark unused prefix \"unused_prefix\"\n - Completely move out worktree setup from\n   setup_git_directory_gently()\n - http-push: Avoid calling setup_git_directory() twice\n - Make setup_work_tree() return new prefix\n - Make get_git_dir() and 'git rev-parse --git-dir' absolute path\n - Make sure setup_git_directory is called before accessing\n   repository\n - \"git read-tree -m\" and the like require worktree\n\nReplaced from the early ones in 'pu'.\n\n----------------------------------------------------------------\n[Graduated to \"master\"]\n\n* np/verify-pack (Thu Feb 28 00:25:20 2008 -0500) 4 commits\n + add storage size output to 'git verify-pack -v'\n + fix unimplemented packed_object_info_detail() features\n + make verify_one_pack() a bit less wrong wrt packed_git structure\n + factorize revindex code out of builtin-pack-objects.c\n\n* sp/describe-tag (Thu Feb 28 01:22:36 2008 -0500) 1 commit\n - Teach git-describe to verify annotated tag names before output\n\n* jc/maint-log-merge-left-right (Tue Feb 26 23:18:38 2008 -0800) 1 commit\n + Fix \"git log --merge --left-right\"\n\n* pb/cvsimport (Thu Feb 28 11:18:23 2008 +0100) 3 commits\n + cvsimport: document that -M can be used multiple times\n + cvsimport: allow for multiple -M options\n + cvsimport: have default merge regex allow for dashes in the branch\n   name\n\n* js/maint-daemon (Tue Feb 26 13:00:55 2008 +0100) 2 commits\n + daemon: ensure that base-path is an existing directory\n + daemon: send more error messages to the syslog\n\n* ew/maint-svn-cert-fileprovider (Mon Feb 25 15:56:28 2008 +0100) 1 commit\n + git-svn: Don't prompt for client cert password everytime.\n\n* sb/describe-long (Mon Feb 25 10:43:33 2008 +0100) 1 commit\n + git-describe: --long shows the object name even for a tagged\n   commit\n\n* mk/maint-parse-careful (Mon Feb 25 22:46:13 2008 +0100) 10 commits\n + receive-pack: use strict mode for unpacking objects\n + index-pack: introduce checking mode\n + unpack-objects: prevent writing of inconsistent objects\n + unpack-object: cache for non written objects\n + add common fsck error printing function\n + builtin-fsck: move common object checking code to fsck.c\n + builtin-fsck: reports missing parent commits\n + Remove unused object-ref code\n + builtin-fsck: move away from object-refs to fsck_walk\n + add generic, type aware object chain walker\n\n* jn/gitweb-grep (Tue Feb 26 13:22:08 2008 +0100) 3 commits\n + gitweb: Clearly distinguish regexp / exact match searches\n + gitweb: Simplify fixed string search\n + gitweb: Change parse_commits signature to allow for multiple\n   options\n\n* jc/remote-multi-url (Wed Feb 27 13:50:44 2008 -0800) 1 commit\n + git-remote: do not complain on multiple URLs for a remote\n\n* cb/http-test (Wed Feb 27 20:28:45 2008 +0100) 2 commits\n + http-push: add regression tests\n + http-push: push <remote> :<branch> deletes remote branch\n\n* mh/maint-http-proxy-fix (Wed Feb 27 21:35:50 2008 +0100) 1 commit\n + Set proxy override with http_init()\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* js/remote (Sun Mar 2 05:31:59 2008 +0000) 6 commits\n - remote show: Clean up connection correctly if object fetch wasn't\n   done\n + builtin-remote: prune remotes correctly that were added with --\n   mirror\n + Make git-remote a builtin\n + Test \"git remote show\" and \"git remote prune\"\n + parseopt: add flag to stop on first non option\n + path-list: add functions to work with unsorted lists\n\nSlated for 1.5.5.\n\n* sp/fetch-optim (Sat Mar 1 00:25:38 2008 -0500) 7 commits\n - Teach git-fetch to grab a tag at the same time as a commit\n - Make git-fetch follow tags we already have objects for sooner\n - Teach upload-pack to log the received need lines to fd 3\n - Allow builtin-fetch's find_non_local_tags to append onto a list\n - Ensure tail pointer gets setup correctly when we fetch HEAD only\n - Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch\n - Remove unused variable in builtin-fetch find_non_local_tags\n\nA few existing tests in 5515 need to be adjusted as they expect tags not\nto be fetched early, but the point of this series is to optimize to allow\nthem to, under some conditions.  Otherwise slated for 1.5.5.\n\n* js/reflog-delete (Sun Mar 2 14:58:51 2008 -0600) 13 commits\n - t3903-stash.sh: Add tests for new stash commands drop and pop\n - git-reflog.txt: Document new commands --updateref and --rewrite\n - t3903-stash.sh: Add missing '&&' to body of testcase\n - Merge commit '7435982102093179474a128648179a44042d8a1c' into\n   bc/stash\n + git-stash: add new 'pop' subcommand\n + git-stash: add new 'drop' subcommand\n + git-reflog: add option --updateref to write the last reflog sha1\n   into the ref\n + refs.c: make close_ref() and commit_ref() non-static\n + git-reflog: add option --rewrite to update reflog entries while\n   expiring\n + reflog-delete: parse standard reflog options\n + Merge branch 'bc/reflog-fix' into js/reflog-delete\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nSlated for 1.5.5.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits\n - tests: convert \"cmp\" and \"cmp -s\" to test_cmp\n - tests: test_cmp helper function\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit\n - diff: make --dirstat binary-file safe\n\n* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits\n - Teach GIT-VERSION-GEN about the .git file\n - Teach git-submodule.sh about the .git file\n - Teach resolve_gitlink_ref() about the .git file\n - Add platform-independent .git \"symlink\"\n\nThe idea and the implementation seem Ok, but this leaves\ndistinct feeling that it is a solution still waiting for a user\n(e.g. \"git submodule\" enhancements to take advantage of this\nfacility to preserve the subrepository while switching between a\nrevision with a submodule and another before the submodule was\nbound to the superproject).\n\n* jc/bulk-allocate (Wed Feb 13 18:37:27 2008 -0800) 2 commits\n - Bulk allocate diff_filepair\n - patch freeable-bulk-alloc\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits\n - WIP: rethink replay merge\n - Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n + expose a helper function peel_to_type().\n + merge-recursive: split low-level merge functions out.\n"},{"id":"71194","messageId":"7vk5kgieqy.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vmypglfwm.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-03-06T05:49:09Z","receivedAt":"2008-03-06T05:49:09Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\nMost of these are for 1.5.5 but parked in 'next' or 'pu' for now.\n\n* ml/submodule-add-existing (Tue Mar 4 20:15:02 2008 -0500) 1 commit\n + git-submodule - Allow adding a submodule in-place\n\n* jc/describe-always (Sun Mar 2 08:51:57 2008 -0800) 1 commit\n + describe --always: fall back to showing an abbreviated object name\n\n* aw/maint-shortlog-blank-lines (Wed Mar 5 14:24:10 2008 +0000) 1 commit\n + shortlog: take the first populated line of the description\n\n* ar/sgid-bsd (Wed Mar 5 00:15:39 2008 +0100) 1 commit\n + Do not use GUID on dir in git init --shared=all on FreeBSD\n\n* jn/gitweb-pickaxe (Wed Mar 5 09:31:55 2008 +0100) 1 commit\n + gitweb: Fix and simplify pickaxe search\n\n* cr/reset-parseopt (Tue Mar 4 23:11:34 2008 +0100) 1 commit\n + Make builtin-reset.c use parse_options.\n\n* mr/compat-snprintf (Wed Mar 5 16:46:13 2008 +0100) 1 commit\n + Add compat/snprintf.c for systems that return bogus\n\n* jc/am (Tue Mar 4 00:25:06 2008 -0800) 3 commits\n + am: --rebasing\n + am: remove support for -d .dotest\n + am: read from the right mailbox when started from a subdirectory\n\n* cc/run-command (Wed Mar 5 08:35:16 2008 +0100) 1 commit\n + run-command: Redirect stderr to a pipe before redirecting stdout\n   to stderr\n\n* jc/unpack-careful (Mon Feb 25 22:46:13 2008 +0100) 4 commits\n + receive-pack: allow using --strict mode for unpacking objects\n + unpack-objects: fix --strict handling\n + t5300: add test for \"unpack-objects --strict\"\n + unpack-objects: prevent writing of inconsistent objects\n\nThis would re-instate the \"unpack-objects --strict\" but we probably should\nnot do this before 1.5.5.\n\n* py/submodule (Mon Mar 3 02:15:10 2008 +0800) 4 commits\n - git-submodule summary: documentation\n - git-submodule summary: limit summary size\n - git-submodule summary: show commit summary\n - git-submodule summary: code framework\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* cb/mergetool (Thu Feb 21 23:31:56 2008 +0000) 4 commits\n + Add a very basic test script for git mergetool\n + Teach git mergetool to use custom commands defined at config time\n + Changed an internal variable of mergetool to support custom\n   commands\n + Tidy up git mergetool's backup file behaviour\n\nThe series looked Ok, and Ted seems to be busy, so I queued them myself.\nHopefully nobody would see breakages and we can have this in 1.5.5.\n\n* dc/format-pretty (Sun Mar 2 17:05:53 2008 +0800) 3 commits\n + log/show/whatchanged: introduce format.pretty configuration\n + specify explicit \"--pretty=medium\" with `git log/show/whatchanged`\n + whatchanged documentation: share description of --pretty with\n   others\n\nSlated for 1.5.5.\n\n* js/remote (Tue Mar 4 11:23:53 2008 +0000) 7 commits\n + remote: fix \"update [group...]\"\n + remote show: Clean up connection correctly if object fetch wasn't\n   done\n + builtin-remote: prune remotes correctly that were added with --\n   mirror\n + Make git-remote a builtin\n + Test \"git remote show\" and \"git remote prune\"\n + parseopt: add flag to stop on first non option\n + path-list: add functions to work with unsorted lists\n\nSlated for 1.5.5.\n\n* sp/fetch-optim (Mon Mar 3 22:27:40 2008 -0500) 11 commits\n + Teach git-fetch to exploit server side automatic tag following\n + Teach fetch-pack/upload-pack about --include-tag\n + git-pack-objects: Automatically pack annotated tags if object was\n   packed\n + Teach git-fetch to grab a tag at the same time as a commit\n + Make git-fetch follow tags we already have objects for sooner\n + Teach upload-pack to log the received need lines to an fd\n + Free the path_lists used to find non-local tags in git-fetch\n + Allow builtin-fetch's find_non_local_tags to append onto a list\n + Ensure tail pointer gets setup correctly when we fetch HEAD only\n + Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch\n + Remove unused variable in builtin-fetch find_non_local_tags\n\nSlated for 1.5.5.\n\n* js/reflog-delete (Sun Mar 2 14:58:51 2008 -0600) 13 commits\n + t3903-stash.sh: Add tests for new stash commands drop and pop\n + git-reflog.txt: Document new commands --updateref and --rewrite\n + t3903-stash.sh: Add missing '&&' to body of testcase\n + Merge commit '74359821' into js/reflog-delete\n + git-stash: add new 'pop' subcommand\n + git-stash: add new 'drop' subcommand\n + git-reflog: add option --updateref to write the last reflog sha1\n   into the ref\n + refs.c: make close_ref() and commit_ref() non-static\n + git-reflog: add option --rewrite to update reflog entries while\n   expiring\n + reflog-delete: parse standard reflog options\n + Merge branch 'bc/reflog-fix' into js/reflog-delete\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\nSlated for 1.5.5.\n\n----------------------------------------------------------------\n[On Hold]\n\n* nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits\n - Additional tests to capture worktree special cases\n - Documentation: update api-builtin and api-setup\n - Make setup_git_directory() auto-setup worktree if found\n - builtin-archive: mark unused prefix \"unused_prefix\"\n - Completely move out worktree setup from\n   setup_git_directory_gently()\n - http-push: Avoid calling setup_git_directory() twice\n - Make setup_work_tree() return new prefix\n - Make get_git_dir() and 'git rev-parse --git-dir' absolute path\n - Make sure setup_git_directory is called before accessing\n   repository\n - \"git read-tree -m\" and the like require worktree\n\nEvery time we touch work-tree stuff we seem to unstabilize; this round\nseems more solid but I am still treading cautiously.  Not sure if we want\nthis for 1.5.5.\n\n* ph/parseopt (Sun Mar 2 11:35:56 2008 +0100) 2 commits\n + parse-options: new option type to treat an option-like parameter\n   as an argument.\n + parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --\n   parseopt\n\n* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits\n - tests: convert \"cmp\" and \"cmp -s\" to test_cmp\n - tests: test_cmp helper function\n\n* jc/rename (Tue Jan 29 20:54:56 2008 -0800) 1 commit\n + Optimize rename detection for a huge diff\n\n* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit\n - diff: make --dirstat binary-file safe\n\n* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits\n - Teach GIT-VERSION-GEN about the .git file\n - Teach git-submodule.sh about the .git file\n - Teach resolve_gitlink_ref() about the .git file\n - Add platform-independent .git \"symlink\"\n\nThe idea and the implementation seem Ok, but this leaves\ndistinct feeling that it is a solution still waiting for a user\n(e.g. \"git submodule\" enhancements to take advantage of this\nfacility to preserve the subrepository while switching between a\nrevision with a submodule and another before the submodule was\nbound to the superproject).\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits\n - WIP: rethink replay merge\n - Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n + expose a helper function peel_to_type().\n + merge-recursive: split low-level merge functions out.\n"},{"id":"71258","messageId":"alpine.LSU.1.00.0803061800110.3941@racer.site","threadId":"11850","inReplyTo":"7vk5kgieqy.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (topics)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-03-06T17:01:26Z","receivedAt":"2008-03-06T17:01:26Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 5 Mar 2008, Junio C Hamano wrote:\n\n> [On Hold]\n> \n> * nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits\n>  - Additional tests to capture worktree special cases\n>  - Documentation: update api-builtin and api-setup\n>  - Make setup_git_directory() auto-setup worktree if found\n>  - builtin-archive: mark unused prefix \"unused_prefix\"\n>  - Completely move out worktree setup from\n>    setup_git_directory_gently()\n>  - http-push: Avoid calling setup_git_directory() twice\n>  - Make setup_work_tree() return new prefix\n>  - Make get_git_dir() and 'git rev-parse --git-dir' absolute path\n>  - Make sure setup_git_directory is called before accessing\n>    repository\n>  - \"git read-tree -m\" and the like require worktree\n> \n> Every time we touch work-tree stuff we seem to unstabilize; this round \n> seems more solid but I am still treading cautiously.  Not sure if we \n> want this for 1.5.5.\n\nI think this needs a much closer look.  Being as large as the patch series \nis right now does not help at all.  And I am awfully short on time, \n_especially_ since I get sidetracked by things that are more fun, such as \nstrbuf_vaddf().\n\nCiao,\nDscho\n"},{"id":"71411","messageId":"7vk5kdv9mn.fsf@gitster.siamese.dyndns.org","threadId":"11850","inReplyTo":"7vk5kgieqy.fsf@gitster.siamese.dyndns.org","subject":"What's cooking in git.git (topics)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-03-08T09:38:08Z","receivedAt":"2008-03-08T09:38:08Z","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\nwith '-' are only in 'pu' while commits prefixed with '+' are\nin 'next'.\n\nThe topics list the commits in reverse chronological order.\n\n----------------------------------------------------------------\n[New Topics]\n\n* lt/unpack-trees (Fri Mar 7 13:48:40 2008 -0800) 10 commits\n - unpack_trees(): minor memory leak fix in unused destination index\n - Make 'unpack_trees()' have a separate source and destination index\n - Make 'unpack_trees()' take the index to work on as an argument\n - Add 'const' where appropriate to index handling functions\n - Fix tree-walking compare_entry() in the presense of --prefix\n - Move 'unpack_trees()' over to 'traverse_trees()' interface\n - Make 'traverse_trees()' traverse conflicting DF entries in\n   parallel\n - Add return value to 'traverse_tree()' callback\n - Make 'traverse_tree()' use linked structure rather than 'const\n   char *base'\n - Add 'df_name_compare()' helper function\n\n* dp/clean-fix (Fri Mar 7 21:56:56 2008 -0800) 7 commits\n + git-clean: add tests for relative path\n + git-clean: correct printing relative path\n + Make private quote_path() in wt-status.c available as\n   quote_path_relative()\n + Revert part of d089eba (setup: sanitize absolute and funny paths\n   in get_pathspec())\n + Revert part of 1abf095 (git-add: adjust to the get_pathspec()\n   changes)\n + Revert part of 744dacd (builtin-mv: minimum fix to avoid losing\n   files)\n + get_pathspec(): die when an out-of-tree path is given\n\n----------------------------------------------------------------\n[Graduated to 'master']\n\n* ar/sgid-bsd (Wed Mar 5 00:15:39 2008 +0100) 1 commit\n + Do not use GUID on dir in git init --shared=all on FreeBSD\n\n* cc/run-command (Wed Mar 5 08:35:16 2008 +0100) 1 commit\n + run-command: Redirect stderr to a pipe before redirecting stdout\n   to stderr\n\n* cb/mergetool (Thu Feb 21 23:31:56 2008 +0000) 4 commits\n + Add a very basic test script for git mergetool\n + Teach git mergetool to use custom commands defined at config time\n + Changed an internal variable of mergetool to support custom\n   commands\n + Tidy up git mergetool's backup file behaviour\n\nThe series looked Ok, and Ted seems to be busy, so I queued them myself.\nHopefully nobody would see breakages and we can have this in 1.5.5.\nTo give it a wider exposure early, I am merging it to 'master' now.\n\n* dc/format-pretty (Sun Mar 2 17:05:53 2008 +0800) 3 commits\n + log/show/whatchanged: introduce format.pretty configuration\n + specify explicit \"--pretty=medium\" with `git log/show/whatchanged`\n + whatchanged documentation: share description of --pretty with\n   others\n\n* js/reflog-delete (Sun Mar 2 14:58:51 2008 -0600) 13 commits\n + t3903-stash.sh: Add tests for new stash commands drop and pop\n + git-reflog.txt: Document new commands --updateref and --rewrite\n + t3903-stash.sh: Add missing '&&' to body of testcase\n + Merge commit '74359821' into js/reflog-delete\n + git-stash: add new 'pop' subcommand\n + git-stash: add new 'drop' subcommand\n + git-reflog: add option --updateref to write the last reflog sha1\n   into the ref\n + refs.c: make close_ref() and commit_ref() non-static\n + git-reflog: add option --rewrite to update reflog entries while\n   expiring\n + reflog-delete: parse standard reflog options\n + Merge branch 'bc/reflog-fix' into js/reflog-delete\n + builtin-reflog.c: fix typo that accesses an unset variable\n + Teach \"git reflog\" a subcommand to delete single entries\n\n----------------------------------------------------------------\n[Actively Cooking]\n\n* js/remote (Tue Mar 4 11:23:53 2008 +0000) 7 commits\n + remote: fix \"update [group...]\"\n + remote show: Clean up connection correctly if object fetch wasn't\n   done\n + builtin-remote: prune remotes correctly that were added with --\n   mirror\n + Make git-remote a builtin\n + Test \"git remote show\" and \"git remote prune\"\n + parseopt: add flag to stop on first non option\n + path-list: add functions to work with unsorted lists\n\nSlated for 1.5.5, but probably needs more time to mature.\n\n* sp/fetch-optim (Mon Mar 3 22:27:40 2008 -0500) 11 commits\n + Teach git-fetch to exploit server side automatic tag following\n + Teach fetch-pack/upload-pack about --include-tag\n + git-pack-objects: Automatically pack annotated tags if object was\n   packed\n + Teach git-fetch to grab a tag at the same time as a commit\n + Make git-fetch follow tags we already have objects for sooner\n + Teach upload-pack to log the received need lines to an fd\n + Free the path_lists used to find non-local tags in git-fetch\n + Allow builtin-fetch's find_non_local_tags to append onto a list\n + Ensure tail pointer gets setup correctly when we fetch HEAD only\n + Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch\n + Remove unused variable in builtin-fetch find_non_local_tags\n\nSlated for 1.5.5, but probably needs more time to mature.\n\n* ml/submodule-add-existing (Tue Mar 4 20:15:02 2008 -0500) 1 commit\n + git-submodule - Allow adding a submodule in-place\n\n* jc/describe-always (Sun Mar 2 08:51:57 2008 -0800) 1 commit\n + describe --always: fall back to showing an abbreviated object name\n\n* aw/maint-shortlog-blank-lines (Wed Mar 5 14:24:10 2008 +0000) 1 commit\n + shortlog: take the first populated line of the description\n\n* jn/gitweb-pickaxe (Wed Mar 5 09:31:55 2008 +0100) 1 commit\n + gitweb: Fix and simplify pickaxe search\n\n* cr/reset-parseopt (Tue Mar 4 23:11:34 2008 +0100) 1 commit\n + Make builtin-reset.c use parse_options.\n\n* mr/compat-snprintf (Wed Mar 5 16:46:13 2008 +0100) 1 commit\n + Add compat/snprintf.c for systems that return bogus\n\nThe above 6 topics should be fine for 1.5.5 after cooking for a few more\ndays in 'next'.\n\n* jc/am (Tue Mar 4 00:25:06 2008 -0800) 3 commits\n + am: --rebasing\n + am: remove support for -d .dotest\n + am: read from the right mailbox when started from a subdirectory\n\nThe first one is probably a good fix to what is already in 'master';\nafter the entire series, bash completion can tell between rebase and\nam in progress.  Probably Ok for 1.5.5.\n\n* jc/unpack-careful (Fri Mar 7 08:39:53 2008 +0100) 5 commits\n + t5300: add test for \"index-pack --strict\"\n + receive-pack: allow using --strict mode for unpacking objects\n + unpack-objects: fix --strict handling\n + t5300: add test for \"unpack-objects --strict\"\n + unpack-objects: prevent writing of inconsistent objects\n\nThis would re-instate the \"unpack-objects --strict\" but we probably should\nnot do this before 1.5.5.\n\n* ph/parseopt (Sun Mar 2 11:35:56 2008 +0100) 2 commits\n + parse-options: new option type to treat an option-like parameter\n   as an argument.\n + parse-opt: bring PARSE_OPT_HIDDEN and NONEG to git-rev-parse --\n   parseopt\n\n* py/submodule (Sat Mar 8 02:27:19 2008 +0800) 4 commits\n - git-submodule summary: documentation\n - git-submodule summary: limit summary size\n - git-submodule summary: show commit summary\n - git-submodule summary: code framework\n\n----------------------------------------------------------------\n[On Hold]\n\n* nd/worktree (Sun Mar 2 17:35:43 2008 +0700) 10 commits\n - Additional tests to capture worktree special cases\n - Documentation: update api-builtin and api-setup\n - Make setup_git_directory() auto-setup worktree if found\n - builtin-archive: mark unused prefix \"unused_prefix\"\n - Completely move out worktree setup from\n   setup_git_directory_gently()\n - http-push: Avoid calling setup_git_directory() twice\n - Make setup_work_tree() return new prefix\n - Make get_git_dir() and 'git rev-parse --git-dir' absolute path\n - Make sure setup_git_directory is called before accessing\n   repository\n - \"git read-tree -m\" and the like require worktree\n\nEvery time we touch work-tree stuff we seem to unstabilize; this round\nseems more solid but I am still treading cautiously.  Not sure if we want\nthis for 1.5.5.\n\n* jc/test (Thu Feb 21 21:17:54 2008 -0800) 2 commits\n - tests: convert \"cmp\" and \"cmp -s\" to test_cmp\n - tests: test_cmp helper function\n\n* jc/rename (Fri Mar 7 14:03:19 2008 -0800) 2 commits\n - diffcore-rename: make file_table available outside exact rename\n   detection\n + Optimize rename detection for a huge diff\n\n* jc/dirstat (Tue Feb 12 17:06:58 2008 -0800) 1 commit\n - diff: make --dirstat binary-file safe\n\n* lh/git-file (Wed Feb 20 23:13:16 2008 +0100) 4 commits\n - Teach GIT-VERSION-GEN about the .git file\n - Teach git-submodule.sh about the .git file\n - Teach resolve_gitlink_ref() about the .git file\n - Add platform-independent .git \"symlink\"\n\nThe idea and the implementation seem Ok, but this leaves\ndistinct feeling that it is a solution still waiting for a user\n(e.g. \"git submodule\" enhancements to take advantage of this\nfacility to preserve the subrepository while switching between a\nrevision with a submodule and another before the submodule was\nbound to the superproject).\n\n* nd/dashless (Wed Nov 28 23:21:57 2007 +0700) 1 commit\n - Move all dashed-form commands to libexecdir\n\nScheduled for 1.6.0.  I am not sure if we should merge this to\n'next' before 1.5.5.  Most active people will be on 'next' and\nif we have this there, the resulting 1.5.5 release might end up\nhaving issues that come from differences this one introduces.\n\n* jc/dashless (Sat Dec 1 22:09:22 2007 -0800) 2 commits\n - Prepare execv_git_cmd() for removal of builtins from the\n   filesystem\n - git-shell: accept \"git foo\" form\n\nWe do not plan to remove git-foo form completely from the filesystem at\nthis point, but git-shell may need to be updated.\n\n* jc/sha1-lookup (Sun Dec 30 03:13:27 2007 -0800) 2 commits\n - sha1-lookup: make selection of 'middle' less aggressive\n - sha1-lookup: more memory efficient search in sorted list of SHA-1\n\nMicro-optimization whose real world benefit is not proven.\n\n* jc/cherry-pick (Wed Feb 20 23:17:06 2008 -0800) 5 commits\n - WIP: rethink replay merge\n - Start using replay-tree merge in cherry-pick\n - revert/cherry-pick: start refactoring call to merge_recursive\n + expose a helper function peel_to_type().\n + merge-recursive: split low-level merge functions out.\n\nThis is meant to improve cherry-pick's behaviour by not using\nmerge-recursive, but unfortunately has stalled for some time now.\n"}]}