{"thread":{"id":"22745","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","startedAt":"2010-02-22T00:19:18Z","lastAt":"2010-02-23T00:53:45Z","messageCount":13,"participants":["Larry D'Anna","Junio C Hamano","Johannes Sixt","Björn Gustavsson","Johannes Schindelin","Thomas Rast","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"135254","messageId":"7vtytacebd.fsf@alter.siamese.dyndns.org","threadId":"22745","inReplyTo":null,"subject":"What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-02-22T00:19:18Z","receivedAt":"2010-02-22T00:19:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' while commits prefixed with '+' are in 'next'.  The ones\nmarked with '.' do not appear in any of the integration branches, but I am\nstill holding onto them.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* np/fast-import-idx-v2 (2010-02-17) 6 commits\n + fast-import: use the diff_delta() max_delta_size argument\n + fast-import: honor pack.indexversion and pack.packsizelimit config vars\n + fast-import: make default pack size unlimited\n + fast-import: use write_idx_file() instead of custom code\n + fast-import: use sha1write() for pack data\n + fast-import: start using struct pack_idx_entry\n\n* ml/maint-grep-doc (2010-02-15) 1 commit\n  (merged to 'next' on 2010-02-16 at 4059a38)\n + grep documentation: clarify what files match\n\n* tc/maint-transport-ls-remote-with-void (2010-02-16) 1 commit\n  (merged to 'next' on 2010-02-16 at e6ef1a8)\n + transport: add got_remote_refs flag\n\n* hm/maint-imap-send-crlf (2010-02-12) 1 commit\n  (merged to 'next' on 2010-02-17 at c6162cb)\n + git-imap-send: Convert LF to CRLF before storing patch to draft box\n\n* sp/maint-push-sideband (2010-02-10) 8 commits\n  (merged to 'next' on 2010-02-16 at 6f19e5b)\n + receive-pack: Send internal errors over side-band #2\n + t5401: Use a bare repository for the remote peer\n + receive-pack: Send hook output over side band #2\n + receive-pack: Wrap status reports inside side-band-64k\n + receive-pack: Refactor how capabilities are shown to the client\n + send-pack: demultiplex a sideband stream with status data\n + run-command: support custom fd-set in async\n + run-command: Allow stderr to be a caller supplied pipe\n (this branch is used by sp/push-sideband.)\n\nBased on 1.6.5 maintenance track, later to be merged to 1.6.X maintenance\nseries if needed.\n\n* sp/push-sideband (2010-02-10) 0 commits\n (this branch uses sp/maint-push-sideband.)\n\n* jc/checkout-detached (2010-01-29) 1 commit\n  (merged to 'next' on 2010-02-17 at 7e03edc)\n + Reword \"detached HEAD\" notification\n\n* jc/maint-fix-test-perm (2010-01-30) 2 commits\n  (merged to 'next' on 2010-02-16 at 9d2e037)\n + lib-patch-mode.sh: Fix permission\n + t6000lib: Fix permission\n\n* jn/makefile-script-lib (2010-01-31) 1 commit\n  (merged to 'next' on 2010-02-16 at f5334f5)\n + Do not install shell libraries executable\n\n* mv/request-pull-modernize (2010-01-29) 1 commit\n  (merged to 'next' on 2010-02-16 at be03aad)\n + request-pull: avoid mentioning that the start point is a single commit\n\n--------------------------------------------------\n[New Topics]\n\n* dp/read-not-mmap-small-loose-object (2010-02-21) 1 commit\n - hash-object: don't use mmap() for small files\n\nI treaked the cut-off based on my reading of Dmitry's numbers.\n\n* np/compress-loose-object-memsave (2010-02-20) 1 commit\n . sha1_file: don't malloc the whole compressed result when writing out objects\n\n* jc/maint-add-paranoid (2010-02-19) 2 commits\n - paranoid: avoid unnecessary re-hashing\n - Teach \"git add\" and friends to be paranoid\n\nThis conflicts rather badly with more logical change by Nicolas in the\nother thread; perhaps we should drop this \"paranoia\" for now.\n\n* jc/maint-fix-mailinfo-strip (2010-02-19) 1 commit\n - mailinfo: do not strip leading spaces even for a header line\n\nLinus noticed that an indented first line in the log message body loses\nits indentation.  Lukas sent a lot more intrusive patch to keep the\nremoval of leading spaces for header lines while avoiding this issue, but\nI think removing the leading blanks is wrong in either the message or\nin-body header.\n\n* ne/pack-local-doc (2010-02-18) 1 commit\n - Documentation: pack-objects: Clarify --local's semantics.\n\nComments from pack experts?\n\n* ml/connect-refactor (2010-02-17) 1 commit\n - connect.c: move duplicated code to a new function 'get_host_and_port'\n\n* ml/encode-header-refactor (2010-02-16) 1 commit\n - refactor duplicated encode_header in pack-objects and fast-import\n\n* ml/fill-mm-refactor (2010-02-16) 1 commit\n - refactor duplicated fill_mm() in checkout and merge-recursive\n\nThese three should be safe for 'next' but I postponed them because they\nwere distractions compared to other topics I wanted to proccess first.\n\n* mm/mkstemps-mode-for-packfiles (2010-02-20) 6 commits\n - Use git_mkstemp_mode instead of plain mkstemp to create object files\n - git_mkstemps_mode: do not overwrite errno\n - Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.\n - git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.\n - Move gitmkstemps to path.c\n - Add a testcase for ACL with restrictive umask.\n\nThe test does not seem to pass for me.\n\n* rs/optim-text-wrap (2010-02-19) 4 commits\n  (merged to 'next' on 2010-02-21 at 70ef189)\n + utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()\n + utf8.c: remove strbuf_write()\n + utf8.c: remove print_spaces()\n + utf8.c: remove print_wrapped_text()\n\n* tr/maint-cherry-pick-list (2010-02-20) 1 commit\n  (merged to 'next' on 2010-02-21 at 65fded0)\n + cherry_pick_list: quit early if one side is empty\n\n* tc/transport-verbosity (2010-02-18) 9 commits\n - transport: update flags to be in running order\n - pull: learn --progress\n - fetch: learn --progress\n - push: learn --progress\n - transport->progress: use flag authoritatively\n - clone: support multiple levels of verbosity\n - push: support multiple levels of verbosity\n - fetch: refactor verbosity option handling into transport.[ch]\n - Documentation/git-push.txt: put --quiet before --verbose\n\n--------------------------------------------------\n[Stalled]\n\n* ld/push-porcelain (2010-02-09) 4 commits\n - git-push: fix an error message so it goes to stderr\n - git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected\n - git-push: send \"To <remoteurl>\" messages to the standard output in --porcelain mode\n - git-push: squelch advice message if in --porcelain mode\n\nThis needs further simplification, judging from the previous discussion?\n\n* ld/maint-diff-quiet-w (2010-02-16) 1 commit\n - git diff --quiet -w: check and report the status\n\nNeeds tests but otherwise looked Ok.\n\n* sd/format-patch-to (2010-02-17) 1 commit\n - Add 'git format-patch --to=' option and 'format.to' configuration variable.\n\nShouldn't be too hard to add tests to t4014; other than that looked ready\nfor 'next'.\n\n* sd/init-template (2010-02-17) 2 commits\n - Add a \"TEMPLATE DIRECTORY\" section to git-init[1].\n - Add `init.templatedir` configuration variable.\n\nShouldn't be too hard to add tests to t0001; other than that looked ready\nfor 'next'.\n\n* sd/log-decorate (2010-02-17) 3 commits\n - log.decorate: usability fixes\n - Add `log.decorate' configuration variable.\n - git_config_maybe_bool()\n\nProbably ready for 'next', except that people need to be warned about\nhaving to update their scripts to explicitly pass --no-decorate to keep\nthem working.\n\n* pb/log-first-parent-p-m (2010-02-10) 1 commit\n  (merged to 'next' on 2010-02-17 at 2f8e5ae)\n + git log -p -m: document -m and honor --first-parent\n\nNeeds tests but otherwise looked fine.  We might want to teach \"-m trumps\nimplicit --cc\" to \"git show\", but that is a totally separate topic.\n\n* js/rebase-origin-x (2010-02-05) 1 commit\n - [RFC w/o test and incomplete] rebase: add -x option to record original commit name\n\nI retract my objection against the idea of -x; needs polishing before\nmoving forward.\n\n--------------------------------------------------\n[Cooking]\n\n* cp/add-u-pathspec (2010-02-09) 2 commits\n - test for add with non-existent pathspec\n - git add -u: die on unmatched pathspec\n\nI am a bit torn on this one.  Traditionally we never complained on\nunmatched pathspec when talking about tracked files.  If we were to go\nthis route, I think we should probably enhance the \"run_diff_files\" and\nfriends in such a way that they mark matched pathspecs, in a way similar\nto match_pathspec() in dir.c does, and report unmatched ones based on\nthat result, instead of adding an extra pass to scan the index.  The same\ngoes for pathspec_matches() in builtin-grep.c\n\nIncidentally, I've proposed \"pathspec unification\" as possible GSoC'10\nproject---with luck, we might finally see a progress on this front ;-)\n\n* jc/for-each-ref (2010-02-13) 4 commits\n  (merged to 'next' on 2010-02-21 at c9a6c2f)\n + for-each-ref --format='%(flag)'\n + for-each-ref --format='%(symref) %(symref:short)'\n + builtin-for-each-ref.c: check if we need to peel onion while parsing the format\n + builtin-for-each-ref.c: comment fixes\n\n* jn/gitweb-config-error-die (2010-02-14) 1 commit\n  (merged to 'next' on 2010-02-21 at e3ecd65)\n + gitweb: Die if there are parsing errors in config file\n\n* jn/maint-fix-pager (2010-02-20) 7 commits\n  (merged to 'next' on 2010-02-21 at 640e10c)\n + t7006-pager: if stdout is not a terminal, make a new one\n + tests: Add tests for automatic use of pager\n + am: Fix launching of pager\n + git svn: Fix launching of pager\n + git.1: Clarify the behavior of the --paginate option\n + Make 'git var GIT_PAGER' always print the configured pager\n + Fix 'git var' usage synopsis\n\n* ml/color-when (2010-02-16) 1 commit\n  (merged to 'next' on 2010-02-21 at d52c051)\n + Add an optional argument for --color options\n\n* hm/imap-send-cram-md5 (2010-02-15) 1 commit\n - imap-send: support CRAM-MD5 authentication\n\nA potential clean-up sent as a counter-proposal; waiting for response.\n\n* jh/maint-submodule-status-in-void (2010-02-16) 1 commit\n  (merged to 'next' on 2010-02-21 at 2e605c3)\n + submodule summary: Don't barf when invoked in an empty repo\n\n* bg/apply-blank-at-eof (2010-02-17) 3 commits\n - t3417: Add test cases for \"rebase --whitespace=fix\"\n - t4124: Add additional tests of --whitespace=fix\n - apply: Allow blank context lines to match beyond EOF\n\nRFC.\n\n* gf/maint-sh-setup-nongit-ok (2010-02-16) 1 commit\n  (merged to 'next' on 2010-02-21 at aca55e6)\n + require_work_tree broken with NONGIT_OK\n\n* ml/send-pack-transport-refactor (2010-02-16) 1 commit\n  (merged to 'next' on 2010-02-21 at db276f4)\n + refactor duplicated code in builtin-send-pack.c and transport.c\n\n* jc/maint-status-preload (2010-02-17) 1 commit\n - status: preload index to optimize lstat(2) calls\n\n* nd/root-git (2010-02-14) 5 commits\n - Add test for using Git at root of file system\n - Support working directory located at root\n - Move offset_1st_component() to path.c\n - init-db, rev-parse --git-dir: do not append redundant slash\n - make_absolute_path(): Do not append redundant slash\n\n* ac/cvsimport-revision-mapping (2010-02-06) 1 commit\n  (merged to 'next' on 2010-02-17 at 6756446)\n + cvsimport: new -R option: generate .git/cvs-revisions mapping\n\nWill merge to 'master' shortly unless negative comments from CVSimport\nusers comes.\n\n* jn/maint-makedepend (2010-01-26) 5 commits\n  (merged to 'next' on 2010-02-21 at 34a3e48)\n + Makefile: drop dependency on $(wildcard */*.h)\n + Makefile: clean up http-walker.o dependency rules\n + Makefile: remove wt-status.h from LIB_H\n + Makefile: make sure test helpers are rebuilt when headers change\n + Makefile: add missing header file dependencies\n (this branch is used by jn/makedepend and jn/master-makedepend.)\n\n* jn/master-makedepend (2010-01-26) 0 commits\n (this branch uses jn/maint-makedepend; is used by jn/makedepend.)\n\nThis is to help merging the clean-up to \"master\".\n\n* jn/makedepend (2010-01-31) 9 commits\n  (merged to 'next' on 2010-02-21 at 34a3e48)\n + Makefile: always remove .depend directories on 'make clean'\n + Makefile: tuck away generated makefile fragments in .depend\n + Teach Makefile to check header dependencies\n + Makefile: list standalone program object files in PROGRAM_OBJS\n + Makefile: lazily compute header dependencies\n + Makefile: list generated object files in OBJECTS\n + Makefile: disable default implicit rules\n + Makefile: rearrange dependency rules\n + Makefile: transport.o depends on branch.h now\n (this branch uses jn/maint-makedepend and jn/master-makedepend.)\n\n* jh/notes (2010-02-13) 30 commits\n  (merged to 'next' on 2010-02-21 at 75fc451)\n + builtin-notes: Add \"copy\" subcommand for copying notes between objects\n + builtin-notes: Misc. refactoring of argc and exit value handling\n + builtin-notes: Add -c/-C options for reusing notes\n + builtin-notes: Refactor handling of -F option to allow combining -m and -F\n + builtin-notes: Deprecate the -m/-F options for \"git notes edit\"\n + builtin-notes: Add \"append\" subcommand for appending to note objects\n + builtin-notes: Add \"add\" subcommand for adding notes to objects\n + builtin-notes: Add --message/--file aliases for -m/-F options\n + builtin-notes: Add \"list\" subcommand for listing note objects\n + Documentation: Generalize git-notes docs to 'objects' instead of 'commits'\n + builtin-notes: Add \"prune\" subcommand for removing notes for missing objects\n + Notes API: prune_notes(): Prune notes that belong to non-existing objects\n + t3305: Verify that removing notes triggers automatic fanout consolidation\n + builtin-notes: Add \"remove\" subcommand for removing existing notes\n + Teach builtin-notes to remove empty notes\n + Teach notes code to properly preserve non-notes in the notes tree\n + t3305: Verify that adding many notes with git-notes triggers increased fanout\n + t3301: Verify successful annotation of non-commits\n + Builtin-ify git-notes\n + Refactor notes concatenation into a flexible interface for combining notes\n + Notes API: Allow multiple concurrent notes trees with new struct notes_tree\n + Notes API: write_notes_tree(): Store the notes tree in the database\n + Notes API: for_each_note(): Traverse the entire notes tree with a callback\n + Notes API: get_note(): Return the note annotating the given object\n + Notes API: remove_note(): Remove note objects from the notes tree structure\n + Notes API: add_note(): Add note objects to the internal notes tree structure\n + Notes API: init_notes(): Initialize the notes tree from the given notes ref\n + Add tests for checking correct handling of $GIT_NOTES_REF and core.notesRef\n + Notes API: get_commit_notes() -> format_note() + remove the commit restriction\n + Minor cosmetic fixes to notes.c\n\n* jc/grep-author-all-match-implicit (2010-01-17) 1 commit\n  (merged to 'next' on 2010-02-17 at 3b7be80)\n + \"log --author=me --grep=it\" should find intersection, not union\n\n* jh/gitweb-caching (2010-01-30) 1 commit\n - gitweb: Add an option to force version match\n\nThe controversial one.  Will probably drop this.  RFC v3 of gitweb caching\nseries needs to be queued but hasn't happened yet.\n\n* cc/reset-keep (2010-01-19) 5 commits\n - reset: disallow using --keep when there are unmerged entries\n - reset: disallow \"reset --keep\" outside a work tree\n - Documentation: reset: describe new \"--keep\" option\n - reset: add test cases for \"--keep\" option\n - reset: add option \"--keep\" to \"git reset\"\n"},{"id":"135198","messageId":"20100222030829.GA32020@cthulhu","threadId":"22745","inReplyTo":"7vtytacebd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Larry D'Anna","fromEmail":"larry@elder-gods.org","sentAt":"2010-02-22T03:08:29Z","receivedAt":"2010-02-22T03:08:29Z","isPatch":false,"sender":{"key":"larry@elder-gods.org","avatar":"https://avatars.githubusercontent.com/u/3013304?v=4"},"body":"* Junio C Hamano (gitster@pobox.com) [100221 19:19]:\n\n> [Stalled]\n> \n> * ld/push-porcelain (2010-02-09) 4 commits\n>  - git-push: fix an error message so it goes to stderr\n>  - git-push: make git push --dry-run --porcelain exit with status 0 even if updates will be rejected\n>  - git-push: send \"To <remoteurl>\" messages to the standard output in --porcelain mode\n>  - git-push: squelch advice message if in --porcelain mode\n> \n> This needs further simplification, judging from the previous discussion?\n\nI was waiting for Michael Lukashov to put out the next version of his\nrefactoring series to do another of this (there was some concern there would be\na merge issue between this and that).  Aside from the --quiet issue, are there\nany other changes this series needs?\n\n      --larry\n"},{"id":"135271","messageId":"4B8233DE.7050106@viscovery.net","threadId":"22745","inReplyTo":"7vtytacebd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2010-02-22T07:35:58Z","receivedAt":"2010-02-22T07:35:58Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Since you do not publish your topic branches, I'd appreciate if you could\ninclude the SHA1 of the topic heads in the headlines, for example:\n\n* jn/maint-fix-pager 2d3ca21 (2010-02-20) 7 commits\n\nThis way I could copy-paste the branch name and SHA1 to a 'git branch -f'\ncommand to track the topic manually.\n\n-- Hannes\n"},{"id":"135269","messageId":"7v4ol9lngk.fsf@alter.siamese.dyndns.org","threadId":"22745","inReplyTo":"4B8233DE.7050106@viscovery.net","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-02-22T07:49:15Z","receivedAt":"2010-02-22T07:49:15Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j.sixt@viscovery.net> writes:\n\n> Since you do not publish your topic branches, I'd appreciate if you could\n> include the SHA1 of the topic heads in the headlines, for example:\n>\n> * jn/maint-fix-pager 2d3ca21 (2010-02-20) 7 commits\n>\n> This way I could copy-paste the branch name and SHA1 to a 'git branch -f'\n> command to track the topic manually.\n\nThat is understandable, but I do not foresee it happening anytime soon, as\nit would involve quite a lot of changes to the generate-compare-update\ninfrastructure, and I wouldn't be touching it unless I have absolutely\nnothing else to do.\n\nIn the meantime, please run \"git log --oneline --first-parent master..pu\",\npick \"ce8d258 Merge 'jn/maint-fix-pager'\" from the output, and use the\nsecond parent ce8d258^2 instead.\n"},{"id":"135278","messageId":"6672d0161002220017u7270c637k83a796cfc8730a64@mail.gmail.com","threadId":"22745","inReplyTo":"7v4ol9lngk.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Björn Gustavsson","fromEmail":"bgustavsson@gmail.com","sentAt":"2010-02-22T08:17:18Z","receivedAt":"2010-02-22T08:17:18Z","isPatch":false,"sender":{"key":"bgustavsson@gmail.com","avatar":"https://avatars.githubusercontent.com/u/74840?v=4"},"body":"On Mon, Feb 22, 2010 at 8:49 AM, Junio C Hamano <gitster@pobox.com> wrote:\n>\n> In the meantime, please run \"git log --oneline --first-parent master..pu\",\n> pick \"ce8d258 Merge 'jn/maint-fix-pager'\" from the output, and use the\n> second parent ce8d258^2 instead.\n\nI use a simple Perl script called create-topic-branches.\nIt can be found here:\n\nhttp://gist.github.com/275033\n\nWhen it is run, it will print the \"git branch\" commands needed\nto create the topic branches. Either copy and paste the\ncommands for the branches you are interested in,\nor do something like this:\n\ncreate-topic-branches next..pu | grep bg/ | sh\n\nwhich will create local branches for any of my own\nbranches that are currently included in 'pu'.\n\n-- \nBjörn Gustavsson, Erlang/OTP, Ericsson AB\n"},{"id":"135283","messageId":"alpine.DEB.1.00.1002220936030.20986@pacific.mpi-cbg.de","threadId":"22745","inReplyTo":"6672d0161002220017u7270c637k83a796cfc8730a64@mail.gmail.com","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2010-02-22T08:37:54Z","receivedAt":"2010-02-22T08:37:54Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 22 Feb 2010, Björn Gustavsson wrote:\n\n> On Mon, Feb 22, 2010 at 8:49 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> >\n> > In the meantime, please run \"git log --oneline --first-parent master..pu\",\n> > pick \"ce8d258 Merge 'jn/maint-fix-pager'\" from the output, and use the\n> > second parent ce8d258^2 instead.\n> \n> I use a simple Perl script called create-topic-branches.\n> It can be found here:\n> \n> http://gist.github.com/275033\n\nIIRC Thomas Rast did something similar in the wake of the @{-<n>} work, \nbut unfortunately, it did not make it into contrib, it seems.\n\nCiao,\nDscho\n"},{"id":"135286","messageId":"201002221048.59188.trast@student.ethz.ch","threadId":"22745","inReplyTo":"alpine.DEB.1.00.1002220936030.20986@pacific.mpi-cbg.de","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2010-02-22T09:48:58Z","receivedAt":"2010-02-22T09:48:58Z","isPatch":false,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"On Monday 22 February 2010 09:37:54 Johannes Schindelin wrote:\n> Hi,\n> \n> On Mon, 22 Feb 2010, Björn Gustavsson wrote:\n> \n> > On Mon, Feb 22, 2010 at 8:49 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> > >\n> > > In the meantime, please run \"git log --oneline --first-parent master..pu\",\n> > > pick \"ce8d258 Merge 'jn/maint-fix-pager'\" from the output, and use the\n> > > second parent ce8d258^2 instead.\n> > \n> > I use a simple Perl script called create-topic-branches.\n> > It can be found here:\n> > \n> > http://gist.github.com/275033\n> \n> IIRC Thomas Rast did something similar in the wake of the @{-<n>} work, \n> but unfortunately, it did not make it into contrib, it seems.\n\nYou mean this one?\n\n  http://permalink.gmane.org/gmane.comp.version-control.git/108330\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"},{"id":"135291","messageId":"201002221101.15195.trast@student.ethz.ch","threadId":"22745","inReplyTo":"201002221048.59188.trast@student.ethz.ch","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2010-02-22T10:01:14Z","receivedAt":"2010-02-22T10:01:14Z","isPatch":false,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"On Monday 22 February 2010 10:48:58 Thomas Rast wrote:\n> \n> You mean this one?\n> \n>   http://permalink.gmane.org/gmane.comp.version-control.git/108330\n\nAnd I forgot to add... yes, it's in contrib (contrib/git-resurrect.sh)\nsince 1.6.2.  It can be used to figure out topic heads from pu, even\nthought that's not really resurrecting them.\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"},{"id":"135285","messageId":"alpine.DEB.1.00.1002221108100.20986@pacific.mpi-cbg.de","threadId":"22745","inReplyTo":"201002221048.59188.trast@student.ethz.ch","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2010-02-22T10:08:51Z","receivedAt":"2010-02-22T10:08:51Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 22 Feb 2010, Thomas Rast wrote:\n\n> On Monday 22 February 2010 09:37:54 Johannes Schindelin wrote:\n> > Hi,\n> > \n> > On Mon, 22 Feb 2010, Björn Gustavsson wrote:\n> > \n> > > On Mon, Feb 22, 2010 at 8:49 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> > > >\n> > > > In the meantime, please run \"git log --oneline --first-parent master..pu\",\n> > > > pick \"ce8d258 Merge 'jn/maint-fix-pager'\" from the output, and use the\n> > > > second parent ce8d258^2 instead.\n> > > \n> > > I use a simple Perl script called create-topic-branches.\n> > > It can be found here:\n> > > \n> > > http://gist.github.com/275033\n> > \n> > IIRC Thomas Rast did something similar in the wake of the @{-<n>} work, \n> > but unfortunately, it did not make it into contrib, it seems.\n> \n> You mean this one?\n> \n>   http://permalink.gmane.org/gmane.comp.version-control.git/108330\n\nYes, indeed. But it was applied, I just did not find it due to the name, \nwhich is not intuitive to this developer.\n\nThanks!\nDscho\n"},{"id":"135297","messageId":"20100222103709.GA16531@coredump.intra.peff.net","threadId":"22745","inReplyTo":"alpine.DEB.1.00.1002221108100.20986@pacific.mpi-cbg.de","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-02-22T10:37:09Z","receivedAt":"2010-02-22T10:37:09Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Feb 22, 2010 at 11:08:51AM +0100, Johannes Schindelin wrote:\n\n> > You mean this one?\n> > \n> >   http://permalink.gmane.org/gmane.comp.version-control.git/108330\n> \n> Yes, indeed. But it was applied, I just did not find it due to the name, \n> which is not intuitive to this developer.\n\nIt is also slightly overkill if all you want to do is pull Junio's\ntopics from pu (I found myself always forgetting the right incantation\nof command line options). The script posted by Björn is much shorter,\nbut recovers all topic branches. If you just want to pull one, I think:\n\n  #!/bin/sh\n  sha1=`git log --oneline --first-parent origin/pu |\n        grep -m 1 \"Merge branch '$1'\" |\n        cut -d ' ' -f1`\n  git branch ${2:-$1} $sha1^2\n\nshould work. Though I have not been using it very long myself, so it is\npossible that it has bugs. :)\n\n-Peff\n"},{"id":"135301","messageId":"20100222105203.GB16531@coredump.intra.peff.net","threadId":"22745","inReplyTo":"7vtytacebd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-02-22T10:52:03Z","receivedAt":"2010-02-22T10:52:03Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sun, Feb 21, 2010 at 04:19:18PM -0800, Junio C Hamano wrote:\n\n> * cp/add-u-pathspec (2010-02-09) 2 commits\n>  - test for add with non-existent pathspec\n>  - git add -u: die on unmatched pathspec\n> \n> I am a bit torn on this one.  Traditionally we never complained on\n> unmatched pathspec when talking about tracked files.  If we were to go\n\nTrue, though most of those pathspecs for tracked files are when viewing\ndiffs. It seems more inconsistent here because \"git add foo\" complains\nbut \"git add -u foo\" does not. So I think this one is definitely worth\nfixing.\n\n> this route, I think we should probably enhance the \"run_diff_files\" and\n> friends in such a way that they mark matched pathspecs, in a way similar\n> to match_pathspec() in dir.c does, and report unmatched ones based on\n> that result, instead of adding an extra pass to scan the index.  The same\n> goes for pathspec_matches() in builtin-grep.c\n\nAre you proposing to check pathspecs of tracked files for typos in other\nplaces, or simply indicating an alternative implementation to fix this\nproblem?\n\nEither way, I think we need _something_ here. If you are volunteering to\nwork on the alternative, fine, but otherwise (and even if it is just for\na while until the other materializes), I would just as soon have the\nexisting fix.\n\n-Peff\n\nPS Somewhat related, have you had a chance to read my:\n\n  http://article.gmane.org/gmane.comp.version-control.git/140434\n"},{"id":"135337","messageId":"7viq9paunm.fsf@alter.siamese.dyndns.org","threadId":"22745","inReplyTo":"20100222105203.GB16531@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-02-22T20:21:33Z","receivedAt":"2010-02-22T20:21:33Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Sun, Feb 21, 2010 at 04:19:18PM -0800, Junio C Hamano wrote:\n>\n>> * cp/add-u-pathspec (2010-02-09) 2 commits\n>>  - test for add with non-existent pathspec\n>>  - git add -u: die on unmatched pathspec\n>> \n>> I am a bit torn on this one.  Traditionally we never complained on\n>> unmatched pathspec when talking about tracked files.  If we were to go\n>\n> True, though most of those pathspecs for tracked files are when viewing\n> diffs. It seems more inconsistent here because \"git add foo\" complains\n> but \"git add -u foo\" does not. So I think this one is definitely worth\n> fixing.\n\nOne problem is that it would be adding a new inconsistency.\n\n\"git diff\" does not complain but \"git add -u\" will complain if we make\nthis change, but \"add -u\" is about updating the path that \"git diff\"\nreports as different.\n\nThat is why you would need to make \"git diff\" and friends _also_ complain,\nif we want to add a new consistency between \"add\" and \"add -u\" without\nbreaking the existing consistency between \"diff\" and \"add -u\".  I do not\nhave a problem with making \"diff\" also complain for an unmatched pathspec\nas a longer term direction, but we need to be careful (e.g. How should\nthis interact with \"git log -- pathspec\"?)\n\nIn any case, teaching \"diff-files\" about unmatched pathspec warning would\nnecessitate infrastructure change...\n\n>> this route, I think we should probably enhance the \"run_diff_files\" and\n>> friends in such a way that they mark matched pathspecs, in a way similar\n>> to match_pathspec() in dir.c does, and report unmatched ones based on\n>> that result, instead of adding an extra pass to scan the index.  The same\n>> goes for pathspec_matches() in builtin-grep.c\n\nOnce we have an infrastructure for \"diff-files\" to notice an unmatching\npathspec, \"add -u\" will notice it, too, without any extra code.\n\nMaking \"add -u\" complain before fixing \"diff-files\" will have another\nissue.  It will expose a bigger inconsistency that you omitted from my\nmessage ;-) The pathspec \"git add\" without \"-u\" takes are processed by\npathspec match logic of \"ls-files\" family, but \"git add -u\" uses pathspec\nmatch logic of \"diff\" family.  They have different semantics.\n\nYou can say \"git add 'frotz/*.c'\" but not \"git add -u 'frotz/*.c'\"; that\nalso needs to be fixed.\n\nMaking \"add -u\" alone complain using a separate throw-away logic that we\nare sure we will have to discard when we make things consistent throughout\nthe system did not sound very attractive to me.  And that is why I was\nunhappy about the solution.\n"},{"id":"135386","messageId":"20100223005345.GA3254@coredump.intra.peff.net","threadId":"22745","inReplyTo":"7viq9paunm.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Feb 2010, #05; Sun, 21)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-02-23T00:53:45Z","receivedAt":"2010-02-23T00:53:45Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Feb 22, 2010 at 12:21:33PM -0800, Junio C Hamano wrote:\n\n> > True, though most of those pathspecs for tracked files are when viewing\n> > diffs. It seems more inconsistent here because \"git add foo\" complains\n> > but \"git add -u foo\" does not. So I think this one is definitely worth\n> > fixing.\n> \n> One problem is that it would be adding a new inconsistency.\n> \n> \"git diff\" does not complain but \"git add -u\" will complain if we make\n> this change, but \"add -u\" is about updating the path that \"git diff\"\n> reports as different.\n\nI see. Personally I don't mind that inconsistency as much, as it is\nbetween two commands, rather than between flags within one command. But\nthat is perhaps a subjective evaluation.\n\nBut:\n\n> Making \"add -u\" complain before fixing \"diff-files\" will have another\n> issue.  It will expose a bigger inconsistency that you omitted from my\n> message ;-) The pathspec \"git add\" without \"-u\" takes are processed by\n> pathspec match logic of \"ls-files\" family, but \"git add -u\" uses pathspec\n> match logic of \"diff\" family.  They have different semantics.\n> \n> You can say \"git add 'frotz/*.c'\" but not \"git add -u 'frotz/*.c'\"; that\n> also needs to be fixed.\n\nThat is a more worrisome inconsistency to me (and now I get what you\nwere saying in your earlier message).\n\n> Making \"add -u\" alone complain using a separate throw-away logic that we\n> are sure we will have to discard when we make things consistent throughout\n> the system did not sound very attractive to me.  And that is why I was\n> unhappy about the solution.\n\nOK, now I am unhappy about it, too, and I agree it should be addressed\nin the long term. But that is a large-ish project that will not happen\nimmediately. What is the best thing in the meantime?\n\nI am still tempted by the patch. Even though it trades one inconsistency\nfor another, I find a false sense of success from \"git-add\" to be one of\nthe more ugly errors (and even though \"git add -u 'frotz/*.c'\" would\nstill not work with it, at least you would be informed of such).\n\n-Peff\n"}]}