{"thread":{"id":"21656","subject":"What's cooking in git.git (Nov 2009, #04; Tue, 17)","startedAt":"2009-11-18T07:53:05Z","lastAt":"2009-11-19T18:11:09Z","messageCount":9,"participants":["Junio C Hamano","Tay Ray Chuan","Johannes Sixt","Jonathan Nieder","Nguyen Thai Ngoc Duy","Tim Henigan"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"127824","messageId":"7v7hto46ce.fsf@alter.siamese.dyndns.org","threadId":"21656","inReplyTo":null,"subject":"What's cooking in git.git (Nov 2009, #04; Tue, 17)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-11-18T07:53:05Z","receivedAt":"2009-11-18T07:53:05Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I'd like to tag 1.6.6-rc0 this coming weekend with most topics on 'next'\n(and some from 'pu'), so that we can do the final 1.6.6 before the end of\nthe year.\n\nIt is likely that I'll be offline for most of the day tomorrow, even\nthough it will be my git Wednesday.\n\n-- >8 --\n\nHere are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' while commits prefixed with '+' are in 'next'.  The ones\nmarked with '.' do not appear in any of the integration branches, but I am\nstill holding onto them.\n\nIn 1.7.0, we plan to correct handful of warts in the interfaces everybody\nagrees that they were mistakes.  The resulting system may not be strictly\nbackward compatible.  Currently planned changes are:\n\n * refuse push to update the checked out branch in a non-bare repo by\n   default\n\n   Make \"git push\" into a repository to update the branch that is checked\n   out fail by default.  You can countermand this default by setting a\n   configuration variable in the receiving repository.\n\n   http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007\n\n * refuse push to delete the current branch by default\n\n   Make \"git push $there :$killed\" to delete the branch that is pointed at\n   by its HEAD fail by default.  You can countermand this default by\n   setting a configuration variable in the receiving repository.\n\n   http://thread.gmane.org/gmane.comp.version-control.git/108862/focus=108936\n\n * git-send-email won't make deep threads by default\n\n   Many people said that by default when sending more than 2 patches the\n   threading git-send-email makes by default is hard to read, and they\n   prefer the default be one cover letter and each patch as a direct\n   follow-up to the cover letter.  You can countermand this by setting a\n   configuration variable.\n\n   http://article.gmane.org/gmane.comp.version-control.git/109790\n\n * git-status won't be \"git-commit --dry-run\" anymore\n\n   http://thread.gmane.org/gmane.comp.version-control.git/125989/focus=125993\n\n * \"git-diff -w --exit-code\" will exit success if only differences it\n   found are whitespace changes that are stripped away from the output.\n\n   http://thread.gmane.org/gmane.comp.version-control.git/119731/focus=119751\n\nI wasn't fully functioning for the past few days, so this round we have\nonly added new topics and new patches to existing ones, without changing\nthe status of individual topics very much.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* bs/maint-pre-commit-hook-sample (2009-11-05) 1 commit.\n  (merged to 'next' on 2009-11-06 at d70f646)\n + pre-commit.sample: Diff against the empty tree when HEAD is invalid\n\n* js/maint-diff-color-words (2009-10-30) 3 commits.\n  (merged to 'next' on 2009-11-10 at 5619714)\n + diff --color-words: bit of clean-up\n + diff --color-words -U0: fix the location of hunk headers\n + t4034-diff-words: add a test for word diff without context\n\nFixes a corner case of running --color-words with -U0.\n\n* sc/difftool-p4merge (2009-10-28) 1 commit\n  (merged to 'next' on 2009-10-31 at 194b5c5)\n + mergetool--lib: add p4merge as a pre-configured mergetool option\n\nI do not do p4 nor use difftool, so it's much easier for me to merge this\nto 'master' and wait for anybody to scream if there is breakage.\n\n* jk/maint-add-p-empty (2009-10-27) 1 commit.\n  (merged to 'next' on 2009-10-30 at 2bd302f)\n + add-interactive: handle deletion of empty files\n\n* lt/revision-bisect (2009-10-27) 1 commit.\n  (merged to 'next' on 2009-10-30 at 81ee52b)\n + Add '--bisect' revision machinery argument\n\n* rs/pretty-wrap (2009-11-08) 2 commits\n  (merged to 'next' on 2009-11-08 at 8973fd8)\n + log --format: don't ignore %w() at the start of format string\n  (merged to 'next' on 2009-10-30 at 403bbfe)\n + Implement wrap format %w() as if it is a mode switch\n (this branch uses js/log-rewrap.)\n\n* js/log-rewrap (2009-10-18) 3 commits\n  (merged to 'next' on 2009-10-30 at 403bbfe)\n + Teach --wrap to only indent without wrapping\n + Add strbuf_add_wrapped_text() to utf8.[ch]\n + print_wrapped_text(): allow hard newlines\n (this branch is used by rs/pretty-wrap.)\n\n* fc/doc-fast-forward (2009-10-24) 1 commit.\n  (merged to 'next' on 2009-11-01 at faaad90)\n + Use 'fast-forward' all over the place\n\n* tz/maint-rpm (2009-11-11) 1 commit.\n + Makefile: Ensure rpm packages can be read by older rpm versions\n\n* np/maint-sideband-favor-status (2009-11-11) 1 commit.\n  (merged to 'next' on 2009-11-15 at 3ecd874)\n + give priority to progress messages\n\n* sb/tutorial-test (2009-11-06) 4 commits\n  (merged to 'next' on 2009-11-15 at 5c82651)\n + t1200: prepare for merging with Fast-forward bikeshedding\n + t1200: further modernize test script style\n + t1200: Make documentation and test agree\n + t1200: cleanup and modernize test style\n\n* ef/msys-imap (2009-10-22) 9 commits.\n  (merged to 'next' on 2009-10-31 at 8630603)\n + Windows: use BLK_SHA1 again\n + MSVC: Enable OpenSSL, and translate -lcrypto\n + mingw: enable OpenSSL\n + mingw: wrap SSL_set_(w|r)fd to call _get_osfhandle\n + imap-send: build imap-send on Windows\n + imap-send: fix compilation-error on Windows\n + imap-send: use run-command API for tunneling\n + imap-send: use separate read and write fds\n + imap-send: remove useless uid code\n\n--------------------------------------------------\n[New Topics]\n\n* jn/faster-completion-startup (2009-11-17) 1 commit.\n - Speed up bash completion loading\n\n* th/maint-remote-update-help-string (2009-11-15) 1 commit.\n - Update 'git remote update' usage string to match man page.\n\n* tr/maint-merge-ours-clarification (2009-11-15) 3 commits.\n - rebase: refuse to rebase with -s ours\n  (merged to 'next' on 2009-11-17 at 3291125)\n + rebase docs: clarify --merge and --strategy\n + Documentation: clarify 'ours' merge strategy\n\n* tc/format-attribute (2009-11-14) 1 commit\n - Check the format of more printf-type functions\n\n* jk/maint-break-rename-reduce-memory (2009-11-16) 2 commits.\n  (merged to 'next' on 2009-11-16 at 5b5a93f)\n + diffcore-break: save cnt_data for other phases\n + diffcore-break: free filespec data as we go\n\n* bc/grep-i-F (2009-11-06) 1 commit.\n  (merged to 'next' on 2009-11-17 at a9b138c)\n + grep: Allow case insensitive search of fixed-strings\n\n* mm/config-pathname-tilde-expand (2009-11-17) 1 commit.\n  (merged to 'next' on 2009-11-17 at 7ba213d)\n + Expand ~ and ~user in core.excludesfile, commit.template\n\n* pb/maint-use-custom-perl (2009-11-17) 1 commit.\n  (merged to 'next' on 2009-11-17 at 1ee8d46)\n + Make sure $PERL_PATH is defined when the test suite is run.\n\n* th/remote-usage (2009-11-16) 1 commit.\n - git remote: Separate usage strings for subcommands\n\n* mo/maint-crlf-doc (2009-11-14) 1 commit.\n  (merged to 'next' on 2009-11-17 at abd9133)\n + core.autocrlf documentation: mention the crlf attribute\n\n--------------------------------------------------\n[Stalled]\n\n* rj/cygwin-msvc (2009-11-09) 3 commits.\n - Add explicit Cygwin check to guard WIN32 header inclusion\n - MSVC: Add support for building with NO_MMAP\n - Makefile: keep MSVC and Cygwin configuration separate\n (this branch uses rj/maint-simplify-cygwin-makefile.)\n\nI think J6t was not happy with the tip one.\n\n* jc/fix-tree-walk (2009-10-22) 11 commits.\n  (merged to 'next' on 2009-10-22 at 10c0c8f)\n + Revert failed attempt since 353c5ee\n + read-tree --debug-unpack\n  (merged to 'next' on 2009-10-11 at 0b058e2)\n + unpack-trees.c: look ahead in the index\n + unpack-trees.c: prepare for looking ahead in the index\n + Aggressive three-way merge: fix D/F case\n + traverse_trees(): handle D/F conflict case sanely\n + more D/F conflict tests\n + tests: move convenience regexp to match object names to test-lib.sh\n + unpack_callback(): use unpack_failed() consistently\n + unpack-trees: typofix\n + diff-lib.c: fix misleading comments on oneway_diff()\n\nThis has some stupid bugs and temporarily reverted from 'next' until I can\nfix it, but the \"temporarily\" turned out to be very loooong.  Sigh...\n\n* jh/notes (2009-10-09) 22 commits.\n - fast-import: Proper notes tree manipulation using the notes API\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: 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: 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 - Notes API: get_commit_notes() -> format_note() + remove the commit restriction\n  (merged to 'next' on 2009-11-01 at 948327a)\n + Add selftests verifying concatenation of multiple notes for the same commit\n + Refactor notes code to concatenate multiple notes annotating the same object\n + Add selftests verifying that we can parse notes trees with various fanouts\n + Teach the notes lookup code to parse notes trees with various fanout schemes\n + Teach notes code to free its internal data structures on request\n + Add '%N'-format for pretty-printing commit notes\n + Add flags to get_commit_notes() to control the format of the note string\n + t3302-notes-index-expensive: Speed up create_repo()\n + fast-import: Add support for importing commit notes\n + Teach \"-m <msg>\" and \"-F <file>\" to \"git notes edit\"\n + Add an expensive test for git-notes\n + Speed up git notes lookup\n + Add a script to edit/inspect notes\n + Introduce commit notes\n\nI somehow thought that the later API part was waiting for updates but\nnothing seems to be happening.\n\n* jn/gitweb-blame (2009-09-01) 5 commits.\n - gitweb: Minify gitweb.js if JSMIN is defined\n - gitweb: Create links leading to 'blame_incremental' using JavaScript\n  (merged to 'next' on 2009-10-11 at 73c4a83)\n + gitweb: Colorize 'blame_incremental' view during processing\n + gitweb: Incremental blame (using JavaScript)\n + gitweb: Add optional \"time to generate page\" info in footer\n\nAjax-y blame.  Any progress or RFH?\n\n* sr/gfi-options (2009-09-06) 6 commits.\n - fast-import: test the new option command\n - fast-import: add option command\n - fast-import: test the new feature command\n - fast-import: add feature command\n - fast-import: put marks reading in it's own function\n - fast-import: put option parsing code in separate functions\n\nIt seemed to be moving again soon, but nothing has happened yet...\n\n* je/send-email-no-subject (2009-08-05) 1 commit.\n  (merged to 'next' on 2009-10-11 at 1b99c56)\n + send-email: confirm on empty mail subjects\n\nThe existing tests cover the positive case (i.e. as long as the user says\n\"yes\" to the \"do you really want to send this message that lacks subject\",\nthe message is sent) of this feature, but the feature itself needs its own\ntest to verify the negative case (i.e. does it correctly stop if the user\nsays \"no\"?)\n\n--------------------------------------------------\n[Cooking]\n\n* jp/fetch-cull-many-refs (2009-11-13) 3 commits\n  (merged to 'next' on 2009-11-15 at db0f967)\n + remote: fix use-after-free error detected by glibc in ref_remove_duplicates\n  (merged to 'next' on 2009-11-01 at 1f09ce9)\n + fetch: Speed up fetch of large numbers of refs\n + remote: Make ref_remove_duplicates faster for large numbers of refs\n\nSoon in 'master'.\n\n* jn/help-everywhere (2009-11-09) 21 commits\n  (merged to 'next' on 2009-11-17 at 3a2dffe)\n + diff --no-index: make the usage string less scary\n + merge-{recursive,subtree}: use usagef() to print usage\n + Introduce usagef() that takes a printf-style format\n + Let 'git <command> -h' show usage without a git dir\n + Show usage string for 'git http-push -h'\n + Let 'git http-fetch -h' show usage outside any git repository\n + Show usage string for 'git stripspace -h'\n + Show usage string for 'git unpack-file -h'\n + Show usage string for 'git show-index -h'\n + Show usage string for 'git rev-parse -h'\n + Show usage string for 'git merge-one-file -h'\n + Show usage string for 'git mailsplit -h'\n + Show usage string for 'git imap-send -h'\n + Show usage string for 'git get-tar-commit-id -h'\n + Show usage string for 'git fast-import -h'\n + Show usage string for 'git check-ref-format -h'\n + Show usage string for 'git show-ref -h'\n + Show usage string for 'git merge-ours -h'\n + Show usage string for 'git commit-tree -h'\n + Show usage string for 'git cherry -h'\n + Show usage string for 'git grep -h'\n (this branch uses jn/maint-http-fetch-mingw and jn/remove-fetch--tool.)\n\nThere were unrelated but still worthy fixes, so I reordered some of them;\nalso the \"usage()\" change is different from the one that was posted (see\nmy comment in $gmane/132592).\n\n* jn/maint-http-fetch-mingw (2009-11-09) 1 commit.\n  (merged to 'next' on 2009-11-17 at cd35125)\n + http-fetch: add missing initialization of argv0_path\n (this branch is used by jn/help-everywhere.)\n\n* jn/remove-fetch--tool (2009-11-09) 1 commit\n  (merged to 'next' on 2009-11-17 at 72f6c3b)\n + Retire fetch--tool helper to contrib/examples\n (this branch is used by jn/help-everywhere.)\n\nThese two were originally part of the \"help-everywhere\" topic but\nthey can stand on their own.\n\n* jc/log-stdin (2009-11-03) 1 commit\n - Teach --stdin option to \"log\" family\n\nThis is not signed-off (see $gmane/131971 for list of things you can do to\nhelp advancing this topic).\n\n* jn/gitweb-log-history (2009-11-13) 3 commits\n  (merged to 'next' on 2009-11-17 at d225f7d)\n + gitweb: Make 'history' view (re)use git_log_generic()\n + gitweb: Refactor common parts of 'log' and 'shortlog' views\n + gitweb: Refactor 'log' action generation, adding git_log_body()\n\n* jn/rfc-pull-rebase-error-message (2009-11-12) 1 commit\n - git-pull.sh --rebase: overhaul error handling when no candidates are found\n\nI heard this needs at least retitling among other changes?\n\n* rg/doc-workflow (2009-11-17) 4 commits.\n - [Further RFC updates from Raman]\n - [An RFC fix-up to further reword release section]\n - Corrections to release management section in gitworkflows.txt\n - Add branch management for releases to gitworkflows\n\nThe top three patches are meant to be squashed into the first one.\n\n* sb/ls-tree-parseopt (2009-11-13) 2 commits.\n  (merged to 'next' on 2009-11-17 at c383204)\n + ls-tree: migrate to parse-options\n + t3101: test more ls-tree options\n\n* jl/submodule-add-noname (2009-09-22) 1 commit.\n  (merged to 'next' on 2009-11-15 at 3a77d01)\n + git submodule add: make the <path> parameter optional\n\nDscho started an interesting discussion regarding the larger workflow in\nwhich the \"submodule add\" is used.  I think the patch itself makes sense\nbut at the same time it probably makes sense to also take the <path> and\ninfer the <repository> as Dscho suggested, probably in \"git submodule\nadd\", not in \"git add\" proper, at least initially.\n\n* sc/protocol-doc (2009-11-03) 1 commit.\n  (merged to 'next' on 2009-11-15 at 32d6de8)\n + Update packfile transfer protocol documentation\n\n* tr/filter-branch (2009-11-10) 2 commits.\n  (merged to 'next' on 2009-11-15 at 79c6a1d)\n + filter-branch: nearest-ancestor rewriting outside subdir filter\n + filter-branch: stop special-casing $filter_subdir argument\n\nUpdated again.  Looked sane, except that the option might not be\nnecessary, but that can be fixed while in 'next'.\n\n* em/commit-claim (2009-11-04) 1 commit\n - commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-author\n\nI just picked better bits from both versions, but this needs to be\nrethought.\n\n* bg/format-patch-doc-update (2009-11-07) 4 commits.\n  (merged to 'next' on 2009-11-17 at 68b9056)\n + format-patch: Add \"--no-stat\" as a synonym for \"-p\"\n + format-patch documentation: Fix formatting\n + format-patch documentation: Remove diff options that are not useful\n + format-patch: Always generate a patch\n\nLooked sensible, even though this may want to wait for 1.7.0.  We'll see.\n\n* rj/maint-simplify-cygwin-makefile (2009-10-27) 1 commit.\n - Makefile: merge two Cygwin configuration sections into one\n (this branch is used by rj/cygwin-msvc.)\n\nThis is one of the most obviously correct bit from \"Compiling on Cygwin\nusing MSVC fails\" topic.\n\n* bg/fetch-multi (2009-11-10) 9 commits.\n - Re-implement 'git remote update' using 'git fetch'\n - builtin-fetch: add --dry-run option\n - builtin-fetch: add --prune option\n - teach warn_dangling_symref to take a FILE argument\n - remote: refactor some logic into get_stale_heads()\n - Add missing test for 'git remote update --prune'\n - Add the configuration option skipFetchAll\n - Teach the --multiple option to 'git fetch'\n - Teach the --all option to 'git fetch'\n\n* cc/bisect-doc (2009-11-08) 1 commit\n - Documentation: add \"Fighting regressions with git bisect\" article\n\nAny comments?  Should it go to Documentation/technical instead?\n\n* jn/editor-pager (2009-10-30) 9 commits\n  (merged to 'next' on 2009-11-15 at 7f3e3ae)\n + Provide a build time default-pager setting\n + Provide a build time default-editor setting\n + am -i, git-svn: use \"git var GIT_PAGER\"\n + add -i, send-email, svn, p4, etc: use \"git var GIT_EDITOR\"\n + Teach git var about GIT_PAGER\n + Teach git var about GIT_EDITOR\n + Suppress warnings from \"git var -l\"\n + Do not use VISUAL editor on dumb terminals\n + Handle more shell metacharacters in editor names\n\n* bw/autoconf-more (2009-11-04) 2 commits\n  (merged to 'next' on 2009-11-15 at e86a8c9)\n + configure: add settings for gitconfig, editor and pager\n + configure: add macro to set arbitrary make variables\n\nThis will follow jn/editor-pager series.\n\n* sr/vcs-helper (2009-11-18) 12 commits\n - Add Python support library for remote helpers\n - Basic build infrastructure for Python scripts\n - Allow helpers to report in \"list\" command that the ref is unchanged\n - Fix various memory leaks in transport-helper.c\n - Allow helper to map private ref names into normal names\n - Add support for \"import\" helper command\n - Allow specifying the remote helper in the url\n - Add a config option for remotes to specify a foreign vcs\n - Allow fetch to modify refs\n - Use a function to determine whether a remote is valid\n - Allow programs to not depend on remotes having urls\n - Fix memory leak in helper method for disconnect\n\nReplaced again.\n\n* mr/gitweb-snapshot (2009-11-07) 4 commits.\n - gitweb: Smarter snapshot names\n - gitweb: Document current snapshot rules via new tests\n - t/gitweb-lib.sh: Split gitweb output into headers and body\n  (merged to 'next' on 2009-10-11 at 22ba047)\n + gitweb: check given hash before trying to create snapshot\n\nReplaced commits near the tip with recent updates.\n\n* jc/pretty-lf (2009-10-04) 1 commit.\n - Pretty-format: %[+-]x to tweak inter-item newlines\n\n* ks/precompute-completion (2009-11-15) 4 commits.\n  (merged to 'next' on 2009-11-15 at 23cdb96)\n + Revert ks/precompute-completion series\n  (merged to 'next' on 2009-10-28 at cd5177f)\n + completion: ignore custom merge strategies when pre-generating\n  (merged to 'next' on 2009-10-22 at f46a28a)\n + bug: precomputed completion includes scripts sources\n  (merged to 'next' on 2009-10-14 at adf722a)\n + Speedup bash completion loading\n\nReverted out of 'next', to be replaced with jn/faster-completion-startup\ntopic.\n\n* sp/smart-http (2009-11-14) 37 commits\n  (merged to 'next' on 2009-11-17 at 11067eb)\n + http-backend: Let gcc check the format of more printf-type functions.\n + http-backend: Fix access beyond end of string.\n  (merged to 'next' on 2009-11-15 at 2a326b2)\n + http-backend: Fix bad treatment of uintmax_t in Content-Length\n + t5551-http-fetch: Work around broken Accept header in libcurl\n + t5551-http-fetch: Work around some libcurl versions\n + http-backend: Protect GIT_PROJECT_ROOT from /../ requests\n + Git-aware CGI to provide dumb HTTP transport\n  (merged to 'next' on 2009-11-06 at 666837c)\n + http-backend: Test configuration options\n + http-backend: Use http.getanyfile to disable dumb HTTP serving\n + test smart http fetch and push\n + http tests: use /dumb/ URL prefix\n + set httpd port before sourcing lib-httpd\n + t5540-http-push: remove redundant fetches\n + Smart HTTP fetch: gzip requests\n + Smart fetch over HTTP: client side\n + Smart push over HTTP: client side\n + Discover refs via smart HTTP server when available\n + http-backend: more explict LocationMatch\n + http-backend: add example for gitweb on same URL\n + http-backend: use mod_alias instead of mod_rewrite\n + http-backend: reword some documentation\n + http-backend: add GIT_PROJECT_ROOT environment var\n + Smart fetch and push over HTTP: server side\n + Add stateless RPC options to upload-pack, receive-pack\n + Git-aware CGI to provide dumb HTTP transport\n + remote-helpers: return successfully if everything up-to-date\n + Move WebDAV HTTP push under remote-curl\n + remote-helpers: Support custom transport options\n + remote-helpers: Fetch more than one ref in a batch\n + fetch: Allow transport -v -v -v to set verbosity to 3\n + remote-curl: Refactor walker initialization\n + Add multi_ack_detailed capability to fetch-pack/upload-pack\n + Move \"get_ack()\" back to fetch-pack\n + fetch-pack: Use a strbuf to compose the want list\n + pkt-line: Make packet_read_line easier to debug\n + pkt-line: Add strbuf based functions\n + http-push: fix check condition on http.c::finish_http_pack_request()\n\n* nd/sparse (2009-08-20) 19 commits.\n - sparse checkout: inhibit empty worktree\n - Add tests for sparse checkout\n - read-tree: add --no-sparse-checkout to disable sparse checkout support\n - unpack-trees(): ignore worktree check outside checkout area\n - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index\n - unpack-trees(): \"enable\" sparse checkout and load $GIT_DIR/info/sparse-checkout\n - unpack-trees.c: generalize verify_* functions\n - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone\n - Introduce \"sparse checkout\"\n - dir.c: export excluded_1() and add_excludes_from_file_1()\n - excluded_1(): support exclude files in index\n - unpack-trees(): carry skip-worktree bit over in merged_entry()\n - Read .gitignore from index if it is skip-worktree\n - Avoid writing to buffer in add_excludes_from_file_1()\n - Teach Git to respect skip-worktree bit (writing part)\n - Teach Git to respect skip-worktree bit (reading part)\n - Introduce \"skip-worktree\" bit in index, teach Git to get/set this bit\n - Add test-index-version\n - update-index: refactor mark_valid() in preparation for new options\n\nThe latest update I didn't look at very closely but I had an impression\nthat it was touching very generic codepath that would affect non sparse\ncases, iow the patch looked very scary (the entire series already is).\n\n--------------------------------------------------\n[For 1.7.0]\n\n* jc/1.7.0-no-commit-no-ff-2 (2009-10-22) 1 commit.\n - git-merge: forbid fast-forward and up-to-date when --no-commit is given\n\nThis makes \"git merge --no-commit\" fail when it results in fast-forward or\nup-to-date.  I haven't described this at the beginning of this message\nyet, as it is not clear if this change is even necessary.  Opinions?\n\n* jk/1.7.0-status (2009-09-05) 5 commits.\n - docs: note that status configuration affects only long format\n  (merged to 'next' on 2009-10-11 at 65c8513)\n + commit: support alternate status formats\n + status: add --porcelain output format\n + status: refactor format option parsing\n + status: refactor short-mode printing to its own function\n (this branch uses jc/1.7.0-status.)\n\nGives the --short output format to post 1.7.0 \"git commit --dry-run\" that\nis similar to that of post 1.7.0 \"git status\".\n\nThe tip one is not in 'next' as I have been hoping that somebody may want\nto change the code to make it unnecessary, but it does not seem to be\nhappening, so probably it should also go to 'next'.\n\n* jc/1.7.0-status (2009-09-05) 4 commits.\n  (merged to 'next' on 2009-10-11 at 9558627)\n + status: typo fix in usage\n + git status: not \"commit --dry-run\" anymore\n + git stat -s: short status output\n + git stat: the beginning of \"status that is not a dry-run of commit\"\n (this branch is used by jk/1.7.0-status.)\n\nWith this, \"git status\" is no longer \"git commit --dry-run\".\n\n* jc/1.7.0-send-email-no-thread-default (2009-08-22) 1 commit.\n  (merged to 'next' on 2009-10-11 at 043acdf)\n + send-email: make --no-chain-reply-to the default\n\n* jc/1.7.0-diff-whitespace-only-status (2009-08-30) 4 commits.\n  (merged to 'next' on 2009-10-11 at 546c74d)\n + diff.c: fix typoes in comments\n + Make test case number unique\n + diff: Rename QUIET internal option to QUICK\n + diff: change semantics of \"ignore whitespace\" options\n\nThis changes exit code from \"git diff --ignore-whitespace\" and friends\nwhen there is no actual output.  It is a backward incompatible change, but\nwe could argue that it is a bugfix.\n\n* jc/1.7.0-push-safety (2009-02-09) 2 commits.\n  (merged to 'next' on 2009-10-11 at 81b8128)\n + Refuse deleting the current branch via push\n + Refuse updating the current branch in a non-bare repository via push\n\n--------------------------------------------------\n[I have been too busy to purge these]\n\n* ne/rev-cache (2009-10-19) 7 commits.\n . support for commit grafts, slight change to general mechanism\n . support for path name caching in rev-cache\n . full integration of rev-cache into git, completed test suite\n . administrative functions for rev-cache, start of integration into git\n . support for non-commit object caching in rev-cache\n . basic revision cache system, no integration or features\n . man page and technical discussion for rev-cache\n\nThe author indicated that there is another round coming.  Does not seem to\npass the tests when merged to 'pu', so it has been ejected for now.\n\n* jc/log-tz (2009-03-03) 1 commit.\n - Allow --date=local --date=other-format to work as expected\n\nMaybe some people care about this.  I dunno.\n\n* jc/mailinfo-remove-brackets (2009-07-15) 1 commit.\n - mailinfo: -b option keeps [bracketed] strings that is not a [PATCH] marker\n\nMaybe some people care about this.  I dunno.\n\n* pb/gitweb-no-project-list (2009-11-06) 3 commits.\n . gitweb: Polish the content tags support\n . gitweb: Support for no project list on gitweb front page\n . gitweb: Refactor project list routines\n\nI picked these up but didn't queue as Warthog9's comments made certain\namount of sense to me.\n"},{"id":"127826","messageId":"be6fef0d0911180022r2f6b113ct9527a7abd4a96b2e@mail.gmail.com","threadId":"21656","inReplyTo":"7v7hto46ce.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Nov 2009, #04; Tue, 17)","fromName":"Tay Ray Chuan","fromEmail":"rctay89@gmail.com","sentAt":"2009-11-18T08:22:44Z","receivedAt":"2009-11-18T08:22:44Z","isPatch":false,"sender":{"key":"rctay89@gmail.com","avatar":"https://avatars.githubusercontent.com/u/61553?v=4"},"body":"Hi,\n\nOn Wed, Nov 18, 2009 at 3:53 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> * sp/smart-http (2009-11-14) 37 commits\n>  [snip]\n>  + Git-aware CGI to provide dumb HTTP transport\n\nhmm, it appears that this commit (92815b3) has an incorrect subject;\nit should instead read \"http-backend: Fix symbol clash on AIX 5.3\"\n(which is the first line in the commit message body).\n\nIt's from the email\n\n  From: \"Shawn O. Pearce\" <spearce@spearce.org>\n  To: git@vger.kernel.org\n  Subject: [PATCH 1/3] http-backend: Fix symbol clash on AIX 5.3\n  Date: Mon,  9 Nov 2009 10:10:35 -0800\n  Message-Id: <1257790237-30850-1-git-send-email-spearce@spearce.org>\n\n-- \nCheers,\nRay Chuan\n"},{"id":"127829","messageId":"4B03B315.2080407@viscovery.net","threadId":"21656","inReplyTo":"7v7hto46ce.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Nov 2009, #04; Tue, 17)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2009-11-18T08:40:53Z","receivedAt":"2009-11-18T08:40:53Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Junio C Hamano schrieb:\n> * rj/cygwin-msvc (2009-11-09) 3 commits.\n>  - Add explicit Cygwin check to guard WIN32 header inclusion\n>  - MSVC: Add support for building with NO_MMAP\n>  - Makefile: keep MSVC and Cygwin configuration separate\n>  (this branch uses rj/maint-simplify-cygwin-makefile.)\n> \n> I think J6t was not happy with the tip one.\n\nRamsay suggested to drop the one at the tip, and I agree. The other two\npatches are good.\n\n-- Hannes\n"},{"id":"127833","messageId":"20091118114808.GA13346@progeny.tock","threadId":"21656","inReplyTo":"7v7hto46ce.fsf@alter.siamese.dyndns.org","subject":"th/remote-usage","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2009-11-18T11:48:08Z","receivedAt":"2009-11-18T11:48:08Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Junio C Hamano wrote:\n> [New Topics]\n> \n> * th/remote-usage (2009-11-16) 1 commit.\n>  - git remote: Separate usage strings for subcommands\n\nGlancing at pu^2, I had two small nitpicks: [<options>...] is five\ncharacters longer than strictly necessary, and the argument to git\nremote set-head is not actually optional.\n\nIn other words, would it make sense to squash in something like the\nfollowing?\n\n-- %< --\nSubject: Tweak 'git remote' usage strings\n\nThe set-head argument is not optional.  <options>... is five\ncharacters wider than it needs to be.\n\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\n---\n builtin-remote.c |   12 ++++++------\n 1 files changed, 6 insertions(+), 6 deletions(-)\n\ndiff --git a/builtin-remote.c b/builtin-remote.c\nindex ee86810..cfd8a36 100644\n--- a/builtin-remote.c\n+++ b/builtin-remote.c\n@@ -7,14 +7,14 @@\n #include \"run-command.h\"\n #include \"refs.h\"\n \n-#define REMOTE_BARE_USAGE \"git remote [<options>...]\"\n-#define REMOTE_ADD_USAGE \"git remote add [<options>...] <name> <url>\"\n+#define REMOTE_BARE_USAGE \"git remote [options]\"\n+#define REMOTE_ADD_USAGE \"git remote add [options] <name> <url>\"\n #define REMOTE_RENAME_USAGE \"git remote rename <old> <new>\"\n #define REMOTE_RM_USAGE \"git remote rm <name>\"\n-#define REMOTE_SETHEAD_USAGE \"git remote set-head <name> [<options>...]\"\n-#define REMOTE_SHOW_USAGE \"git remote show [<options>...] <name>\"\n-#define REMOTE_PRUNE_USAGE \"git remote prune [<options>...] <name>\"\n-#define REMOTE_UPDATE_USAGE \"git remote update [<options>...]\"\n+#define REMOTE_SETHEAD_USAGE \"git remote set-head <name> (-a|-d|<branch>)\"\n+#define REMOTE_SHOW_USAGE \"git remote show [options] <name>\"\n+#define REMOTE_PRUNE_USAGE \"git remote prune [options] <name>\"\n+#define REMOTE_UPDATE_USAGE \"git remote update [options]\"\n \n static const char * const builtin_remote_usage[] = {\n \tREMOTE_BARE_USAGE,\n-- \n1.6.5.2\n"},{"id":"127835","messageId":"20091118120508.GB13346@progeny.tock","threadId":"21656","inReplyTo":"20091118114808.GA13346@progeny.tock","subject":"Re: th/remote-usage","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2009-11-18T12:05:08Z","receivedAt":"2009-11-18T12:05:08Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nAnother thought.\n\nYesterday, Tim Henigan wrote:\n\n> Do you object to the new #defines for the strings?  I added them since we now\n> really need to construct the usage string for 2 separate uses:\n>   (1) When 'git remote -h' is invoked, we need to return the usage\n> string showing\n>        all subcommands.\n>   (2) When 'git remote <subcommand> -h' is invoked, we need to return the\n>       usage for just that command.\n>\n> It doesn't make sense to me to maintain separate strings for the two use cases.\n\nAnother option would be to make the strings into static variables.\n\nI vaguely hoped this would help the code size a little, but gcc is\nalready smart enough to notice the strings are the same on its own.\nActually, this increases the text size by 15 bytes.  Apparently,\nstatic arrays have to live at 4-byte aligned addresses in the x86 ABI.\n\nSo there is not much to recommend this.  I am sending it mostly for\nacademic interest.  It also has the virtue of decreasing the density\nof capital letters in the code.\n\n builtin-remote.c |   47 ++++++++++++++++++++++++-----------------------\n 1 files changed, 24 insertions(+), 23 deletions(-)\n\ndiff --git a/builtin-remote.c b/builtin-remote.c\nindex cfd8a36..185ce42 100644\n--- a/builtin-remote.c\n+++ b/builtin-remote.c\n@@ -7,34 +7,35 @@\n #include \"run-command.h\"\n #include \"refs.h\"\n \n-#define REMOTE_BARE_USAGE \"git remote [options]\"\n-#define REMOTE_ADD_USAGE \"git remote add [options] <name> <url>\"\n-#define REMOTE_RENAME_USAGE \"git remote rename <old> <new>\"\n-#define REMOTE_RM_USAGE \"git remote rm <name>\"\n-#define REMOTE_SETHEAD_USAGE \"git remote set-head <name> (-a|-d|<branch>)\"\n-#define REMOTE_SHOW_USAGE \"git remote show [options] <name>\"\n-#define REMOTE_PRUNE_USAGE \"git remote prune [options] <name>\"\n-#define REMOTE_UPDATE_USAGE \"git remote update [options]\"\n+static const char remote_bare_usage[] = \"git remote [options]\";\n+static const char remote_add_usage[] = \"git remote add [options] <name> <url>\";\n+static const char remote_rename_usage[] = \"git remote rename <old> <new>\";\n+static const char remote_rm_usage[] = \"git remote rm <name>\";\n+static const char remote_sethead_usage[] =\n+\"git remote set-head <name> (-a|-d|<branch>)\";\n+static const char remote_show_usage[] = \"git remote show [options] <name>\";\n+static const char remote_prune_usage[] = \"git remote prune [options] <name>\";\n+static const char remote_update_usage[] = \"git remote update [options]\";\n \n static const char * const builtin_remote_usage[] = {\n-\tREMOTE_BARE_USAGE,\n-\tREMOTE_ADD_USAGE,\n-\tREMOTE_RENAME_USAGE,\n-\tREMOTE_RM_USAGE,\n-\tREMOTE_SETHEAD_USAGE,\n-\tREMOTE_SHOW_USAGE,\n-\tREMOTE_PRUNE_USAGE,\n-\tREMOTE_UPDATE_USAGE,\n+\tremote_bare_usage,\n+\tremote_add_usage,\n+\tremote_rename_usage,\n+\tremote_rm_usage,\n+\tremote_sethead_usage,\n+\tremote_show_usage,\n+\tremote_prune_usage,\n+\tremote_update_usage,\n \tNULL\n };\n \n-static const char * const builtin_remote_add_usage[] = { REMOTE_ADD_USAGE, NULL };\n-static const char * const builtin_remote_rename_usage[] = { REMOTE_RENAME_USAGE, NULL };\n-static const char * const builtin_remote_rm_usage[] = { REMOTE_RM_USAGE, NULL };\n-static const char * const builtin_remote_sethead_usage[] = { REMOTE_SETHEAD_USAGE, NULL };\n-static const char * const builtin_remote_show_usage[] = { REMOTE_SHOW_USAGE, NULL };\n-static const char * const builtin_remote_prune_usage[] = { REMOTE_PRUNE_USAGE, NULL };\n-static const char * const builtin_remote_update_usage[] = { REMOTE_UPDATE_USAGE, NULL };\n+static const char * const builtin_remote_add_usage[] = { remote_add_usage, NULL };\n+static const char * const builtin_remote_rename_usage[] = { remote_rename_usage, NULL };\n+static const char * const builtin_remote_rm_usage[] = { remote_rm_usage, NULL };\n+static const char * const builtin_remote_sethead_usage[] = { remote_sethead_usage, NULL };\n+static const char * const builtin_remote_show_usage[] = { remote_show_usage, NULL };\n+static const char * const builtin_remote_prune_usage[] = { remote_prune_usage, NULL };\n+static const char * const builtin_remote_update_usage[] = { remote_update_usage, NULL };\n \n #define GET_REF_STATES (1<<0)\n #define GET_HEAD_NAMES (1<<1)\n-- \n1.6.5.2\n"},{"id":"127852","messageId":"fcaeb9bf0911180643w5e659340jd845aa202e6feca3@mail.gmail.com","threadId":"21656","inReplyTo":"7v7hto46ce.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Nov 2009, #04; Tue, 17)","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2009-11-18T14:43:31Z","receivedAt":"2009-11-18T14:43:31Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On 11/18/09, Junio C Hamano <gitster@pobox.com> wrote:\n>  * nd/sparse (2009-08-20) 19 commits.\n>   - sparse checkout: inhibit empty worktree\n>   - Add tests for sparse checkout\n>   - read-tree: add --no-sparse-checkout to disable sparse checkout support\n>   - unpack-trees(): ignore worktree check outside checkout area\n>   - unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index\n>   - unpack-trees(): \"enable\" sparse checkout and load $GIT_DIR/info/sparse-checkout\n>   - unpack-trees.c: generalize verify_* functions\n>   - unpack-trees(): add CE_WT_REMOVE to remove on worktree alone\n>   - Introduce \"sparse checkout\"\n>   - dir.c: export excluded_1() and add_excludes_from_file_1()\n>   - excluded_1(): support exclude files in index\n>   - unpack-trees(): carry skip-worktree bit over in merged_entry()\n>   - Read .gitignore from index if it is skip-worktree\n>   - Avoid writing to buffer in add_excludes_from_file_1()\n>   - Teach Git to respect skip-worktree bit (writing part)\n>   - Teach Git to respect skip-worktree bit (reading part)\n>   - Introduce \"skip-worktree\" bit in index, teach Git to get/set this bit\n>   - Add test-index-version\n>   - update-index: refactor mark_valid() in preparation for new options\n>\n>  The latest update I didn't look at very closely but I had an impression\n>  that it was touching very generic codepath that would affect non sparse\n>  cases, iow the patch looked very scary (the entire series already is).\n\nI wonder if there is any other approach for sparse checkout? I'll see\nif I can improve it, but with a series touching unpack logic, diff\ncore, .gitattributes/.gitignore, it's hard to get it right and\nobvious.\n-- \nDuy\n"},{"id":"127861","messageId":"4B041D09.8090009@viscovery.net","threadId":"21656","inReplyTo":"fcaeb9bf0911180643w5e659340jd845aa202e6feca3@mail.gmail.com","subject":"Re: What's cooking in git.git (Nov 2009, #04; Tue, 17)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2009-11-18T16:12:57Z","receivedAt":"2009-11-18T16:12:57Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Nguyen Thai Ngoc Duy schrieb:\n> On 11/18/09, Junio C Hamano <gitster@pobox.com> wrote:\n>>  * nd/sparse (2009-08-20) 19 commits.\n>>\n>>  The latest update I didn't look at very closely but I had an impression\n>>  that it was touching very generic codepath that would affect non sparse\n>>  cases, iow the patch looked very scary (the entire series already is).\n> \n> I wonder if there is any other approach for sparse checkout? I'll see\n> if I can improve it, but with a series touching unpack logic, diff\n> core, .gitattributes/.gitignore, it's hard to get it right and\n> obvious.\n\nJust FYI: I run some of my installations with this series, but without\nusing sparse checkout to see if there are regressions. Nothing came up so\n far.\n\n-- Hannes\n"},{"id":"127873","messageId":"32c343770911181328v6d61967bna165f08b9e58d5be@mail.gmail.com","threadId":"21656","inReplyTo":"20091118114808.GA13346@progeny.tock","subject":"Re: th/remote-usage","fromName":"Tim Henigan","fromEmail":"tim.henigan@gmail.com","sentAt":"2009-11-18T21:28:33Z","receivedAt":"2009-11-18T21:28:33Z","isPatch":false,"sender":{"key":"tim.henigan@gmail.com","avatar":"https://avatars.githubusercontent.com/u/42022?v=4"},"body":"Hi and thanks for your review.\n\nOn Wed, Nov 18, 2009 at 6:48 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:\n> Junio C Hamano wrote:\n>> [New Topics]\n>>\n>> * th/remote-usage (2009-11-16) 1 commit.\n>>  - git remote: Separate usage strings for subcommands\n>\n> Glancing at pu^2, I had two small nitpicks: [<options>...] is five\n> characters longer than strictly necessary\n\nI based my patch on what I found in other builtin functions (such\nas push and diff).  That being said, I don't think that either my\noriginal patch or your updated version is completely correct.\nThe choices seem to be:\n  (1) [<options>...]:  My original based on my interpretation of\n      IEEE 1003.1. [1]\n  (2) [options]: Your proposal, which drops both the '<>' and '...'.\n  (3) <options>:  Used in builtin-diff.c.  Which does not show\n      that the options are -- optional.\n  (4) [<options>]: What I now believe is correct (based on the\n      current implementation of builtin-push.c).  This drops the\n      '...' which IEEE 1003.1 defines as allowing multiple options\n      to be specified, but it conforms to the conventions in other\n      commands.\n\nThere does not (yet) seem to be consistency in how options\nare presented.  My current plan is to change the patch to\nuse choice #4, but if Junio has a chance to comment, I will\nof course defer to his decision.\n\nI will send an updated patch that implements choice #4 as\nsoon as I can (should be within the next 12 hours).\n\n\n> and the argument to git\n> remote set-head is not actually optional.\n\nThis was obviously an oversight on my part.  I will include the\nfix in the next version.\n\n\n...and from your second email:\n> Another option would be to make the strings into static\n> variables.\n\nThanks for the analysis, but I don't plan to include this change\nunless specifically requested.\n\n\n[1]: http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap12.html\n"},{"id":"127913","messageId":"7veinubd1e.fsf@alter.siamese.dyndns.org","threadId":"21656","inReplyTo":"4B03B315.2080407@viscovery.net","subject":"Re: What's cooking in git.git (Nov 2009, #04; Tue, 17)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-11-19T18:11:09Z","receivedAt":"2009-11-19T18:11:09Z","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> Ramsay suggested to drop the one at the tip, and I agree. The other two\n> patches are good.\n\nThanks; will drop one and queue the rest to 'next'.\n"}]}