{"thread":{"id":"22155","subject":"What's cooking in git.git (Jan 2010, #03; Sun, 10)","startedAt":"2010-01-10T19:55:10Z","lastAt":"2010-01-13T08:58:07Z","messageCount":2,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"131235","messageId":"7vocl1pwf5.fsf@alter.siamese.dyndns.org","threadId":"22155","inReplyTo":null,"subject":"What's cooking in git.git (Jan 2010, #03; Sun, 10)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-01-10T19:55:10Z","receivedAt":"2010-01-10T19:55:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"What's cooking in git.git (Jan 2010, #03; Sun, 10)\n--------------------------------------------------\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\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* tr/http-updates (2009-12-28) 4 commits\n  (merged to 'next' on 2010-01-02 at cf25698)\n + Remove http.authAny\n + Allow curl to rewind the RPC read buffer\n + Add an option for using any HTTP authentication scheme, not only basic\n + http: maintain curl sessions\n\n* jk/maint-1.6.5-reset-hard (2009-12-30) 1 commit\n  (merged to 'next' on 2010-01-02 at 190d63b)\n + reset: unbreak hard resets with GIT_WORK_TREE\n\n* jk/push-to-delete (2009-12-30) 1 commit\n  (merged to 'next' on 2010-01-03 at 9ee293b)\n + builtin-push: add --delete as syntactic sugar for :foo\n\n* mm/config-path (2009-12-30) 1 commit\n  (merged to 'next' on 2010-01-03 at 9c0e81a)\n + builtin-config: add --path option doing ~ and ~user expansion.\n\n* pm/cvs-environ (2009-12-30) 1 commit\n  (merged to 'next' on 2010-01-03 at 4c22932)\n + CVS Server: Support reading base and roots from environment\n\n* tr/maint-1.6.5-bash-prompt-show-submodule-changes (2009-12-31) 1 commit\n  (merged to 'next' on 2010-01-03 at b785974)\n + bash completion: factor submodules into dirty state\n\n* bg/maint-remote-update-default (2009-12-31) 1 commit\n  (merged to 'next' on 2010-01-03 at 113009e)\n + Fix \"git remote update\" with remotes.defalt set\n\n* mm/diag-path-in-treeish (2009-12-07) 1 commit\n  (merged to 'next' on 2010-01-06 at 6b4201e)\n + Detailed diagnosis when parsing an object name fails.\n\n* fc/opt-quiet-gc-reset (2009-12-02) 1 commit\n  (merged to 'next' on 2010-01-06 at 03e00cd)\n + General --quiet improvements\n\n--------------------------------------------------\n[New Topics]\n\n* bk/fix-relative-gitdir-file (2010-01-08) 2 commits\n - Handle relative paths in submodule .git files\n - Test update-index for a gitlink to a .git file\n\n* jc/ident (2010-01-08) 3 commits\n - ident.c: treat $EMAIL as giving user.email identity explicitly\n  (merged to 'next' on 2010-01-10 at f1f9ded)\n + ident.c: check explicit identity for name and email separately\n + ident.c: remove unused variables\n\n* jc/ls-files-ignored-pathspec (2010-01-08) 4 commits\n - ls-files: fix overeager pathspec optimization\n - read_directory(): further split treat_path()\n - read_directory_recursive(): refactor handling of a single path into a separate function\n - t3001: test ls-files -o ignored/dir\n\n* js/exec-error-report (2010-01-10) 4 commits\n - Improve error message when a transport helper was not found\n - start_command: detect execvp failures early\n - run-command: move wait_or_whine earlier\n - start_command: report child process setup errors to the parent's stderr\n (this branch uses il/vcs-helper.)\n\n--------------------------------------------------\n[Stalled]\n\n* ap/merge-backend-opts (2008-07-18) 6 commits\n - Document that merge strategies can now take their own options\n - Extend merge-subtree tests to test -Xsubtree=dir.\n - Make \"subtree\" part more orthogonal to the rest of merge-recursive.\n - Teach git-pull to pass -X<option> to git-merge\n - git merge -X<option>\n - git-merge-file --ours, --theirs\n\n\"git pull\" patch needs sq-then-eval fix to protect it from $IFS\nbut otherwise seemed good.\n\n* jh/commit-status (2009-12-07) 1 commit\n - [test?] Add commit.status, --status, and --no-status\n\nNeeds tests.\n\n* mh/rebase-fixup (2009-12-07) 2 commits\n  (merged to 'next' on 2010-01-06 at c4779a7)\n + Add a command \"fixup\" to rebase --interactive\n + t3404: Use test_commit to set up test repository\n (this branch is used by ns/rebase-auto-squash.)\n\nExpecting further improvements to skip opening the editor if a pick is\nfollowed only by \"fixup\" and no \"squash\".\n\n* ns/rebase-auto-squash (2009-12-08) 1 commit\n  (merged to 'next' on 2010-01-06 at da4e2f5)\n + rebase -i --autosquash: auto-squash commits\n (this branch uses mh/rebase-fixup.)\n\nBlocked by the above.\n\n* jh/notes (2009-12-07) 11 commits\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 - Minor style fixes to notes.c\n  (merged to 'next' on 2010-01-02 at ae42130)\n + Add more testcases to test fast-import of notes\n + Rename t9301 to t9350, to make room for more fast-import tests\n + fast-import: Proper notes tree manipulation\n\nhttp://thread.gmane.org/gmane.comp.version-control.git/134738\n\nWhat's the status of the fourth and later patches on this topic?  Overall\nit looked reasonable, if I recall correctly what I thought when I reviewed\nit last time, and I am tempted to merge it to 'next' soonish.  Please\nfile complaints before I do so if people have objections.\n\nHold: JH on 2010-01-05, http://article.gmane.org/gmane.comp.version-control.git/136183\n\n--------------------------------------------------\n[Will graduate after a bit more cooking]\n\n* nd/sparse (2010-01-04) 25 commits\n  (merged to 'next' on 2010-01-10 at fa73d6e)\n + t7002: test for not using external grep on skip-worktree paths\n + t7002: set test prerequisite \"external-grep\" if supported\n  (merged to 'next' on 2010-01-02 at 5499bbe)\n + grep: do not do external grep on skip-worktree entries\n + commit: correctly respect skip-worktree bit\n + ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID\n + tests: rename duplicate t1009\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\nI've queued the (close to) original tests for external grep, but as a belt\nand suspender measure Nguyễn may also want to add the whitebox test\nin the review thread.\n\n* cc/reset-more (2010-01-08) 8 commits\n  (merged to 'next' on 2010-01-10 at 84730de)\n + t7111: check that reset options work as described in the tables\n  (merged to 'next' on 2010-01-06 at 96639cb)\n + Documentation: reset: add some missing tables\n  (merged to 'next' on 2010-01-04 at 8802c2c)\n + Fix bit assignment for CE_CONFLICTED\n  (merged to 'next' on 2010-01-03 at f83d4c6)\n + \"reset --merge\": fix unmerged case\n + reset: use \"unpack_trees()\" directly instead of \"git read-tree\"\n + reset: add a few tests for \"git reset --merge\"\n + Documentation: reset: add some tables to describe the different options\n + reset: improve mixed reset error message when in a bare repo\n\n* rs/maint-archive-match-pathspec (2009-12-12) 1 commit\n  (merged to 'next' on 2010-01-03 at 92d7d15)\n + archive: complain about path specs that don't match anything\n\n* il/vcs-helper (2010-01-09) 9 commits\n  (merged to 'next' on 2010-01-10 at 11e448e)\n + Reset possible helper before reusing remote structure\n  (merged to 'next' on 2010-01-06 at 7c79f42)\n + Remove special casing of http, https and ftp\n + Support remote archive from all smart transports\n + Support remote helpers implementing smart transports\n + Support taking over transports\n + Refactor git transport options parsing\n + Pass unknown protocols to external protocol handlers\n + Support mandatory capabilities\n + Add remote helper debug mode\n (this branch is used by js/exec-error-report.)\n\n--------------------------------------------------\n[Cooking]\n\n* jc/maint-1.6.1-checkout-m-custom-merge (2010-01-06) 1 commit\n  (merged to 'next' on 2010-01-10 at df14116)\n + checkout -m path: fix recreating conflicts\n\n* jn/makefile (2010-01-06) 4 commits\n  (merged to 'next' on 2010-01-10 at f5a5d42)\n + Makefile: consolidate .FORCE-* targets\n + Makefile: learn to generate listings for targets requiring special flags\n + Makefile: use target-specific variable to pass flags to cc\n + Makefile: regenerate assembler listings when asked\n\n* da/difftool (2010-01-09) 6 commits\n  (merged to 'next' on 2010-01-10 at 749c870)\n + git-diff.txt: Link to git-difftool\n + difftool: Allow specifying unconfigured commands with --extcmd\n + difftool--helper: Remove use of the GIT_MERGE_TOOL variable\n + difftool--helper: Update copyright and remove distracting comments\n  (merged to 'next' on 2010-01-06 at e957395)\n + git-difftool: Add '--gui' for selecting a GUI tool\n + t7800-difftool: Set a bogus tool for use by tests\n\n* jh/gitweb-cached (2010-01-03) 4 commits\n - gitweb: Makefile improvements\n - gitweb: Optionally add \"git\" links in project list page\n - gitweb: Add option to force version match\n - gitweb: Load checking\n\nHold: Warthog on 2010-01-06, http://article.gmane.org/gmane.comp.version-control.git/136306\n\n* tc/test-locate-httpd (2010-01-02) 1 commit\n  (merged to 'next' on 2010-01-06 at 9d913e5)\n + t/lib-http.sh: Restructure finding of default httpd location\n\n* jc/fix-tree-walk (2009-09-14) 7 commits\n - read-tree --debug-unpack\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\nResurrected from \"Ejected\" category.  This is fix for a tricky codepath\nand testing and improving before it hits 'next' by brave souls is greatly\nappreciated (I am using this in my private build).\n\n* jc/branch-d (2009-12-29) 1 commit\n  (merged to 'next' on 2010-01-10 at 61a14b7)\n + branch -d: base the \"already-merged\" safety on the branch it merges with\n\n* jc/rerere (2009-12-04) 1 commit\n  (merged to 'next' on 2010-01-10 at e295b7f)\n + Teach --[no-]rerere-autoupdate option to merge, revert and friends\n\n* jk/run-command-use-shell (2010-01-01) 8 commits\n  (merged to 'next' on 2010-01-10 at 7479e2a)\n + t4030, t4031: work around bogus MSYS bash path conversion\n + diff: run external diff helper with shell\n + textconv: use shell to run helper\n + editor: use run_command's shell feature\n + run-command: optimize out useless shell calls\n + run-command: convert simple callsites to use_shell\n + t0021: use $SHELL_PATH for the filter script\n + run-command: add \"use shell\" option\n\nShuffled the commits in the topic, following J6t's suggestion in\nhttp://thread.gmane.org/gmane.comp.version-control.git/136128\n\n* tc/clone-v-progress (2009-12-26) 4 commits\n  (merged to 'next' on 2010-01-10 at ec2bfd7)\n + clone: use --progress to force progress reporting\n + clone: set transport->verbose when -v/--verbose is used\n + git-clone.txt: reword description of progress behaviour\n + check stderr with isatty() instead of stdout when deciding to show progress\n\nPerhaps needs an entry in the Release Notes, but otherwise looked Ok.\n\n* tc/smart-http-restrict (2010-01-02) 4 commits\n  (merged to 'next' on 2010-01-06 at 82736cb)\n + Smart-http tests: Test http-backend without curl or a webserver\n + Smart-http tests: Break test t5560-http-backend into pieces\n + Smart-http tests: Improve coverage in test t5560\n + Smart-http: check if repository is OK to export before serving it\n\n* jc/cache-unmerge (2009-12-25) 9 commits\n - rerere forget path: forget recorded resolution\n - rerere: refactor rerere logic to make it independent from I/O\n - rerere: remove silly 1024-byte line limit\n - resolve-undo: teach \"update-index --unresolve\" to use resolve-undo info\n - resolve-undo: \"checkout -m path\" uses resolve-undo information\n - resolve-undo: allow plumbing to clear the information\n - resolve-undo: basic tests\n - resolve-undo: record resolved conflicts in a new index extension section\n - builtin-merge.c: use standard active_cache macros\n\nWill wait a bit more before moving it to 'next'.  J6t spotted an issue\nwith \"rerere forget\" and has a test script.\n\n* jc/checkout-merge-base (2010-01-07) 4 commits\n  (merged to 'next' on 2010-01-07 at 5229608)\n + rebase -i: teach --onto A...B syntax\n + rebase: fix --onto A...B parsing and add tests\n  (merged to 'next' on 2010-01-02 at 6a8f6fc)\n + \"rebase --onto A...B\" replays history on the merge base between A and B\n + \"checkout A...B\" switches to the merge base between A and B\n\n* tr/http-push-ref-status (2010-01-08) 6 commits\n - transport-helper.c::push_refs(): emit \"no refs\" error message\n - transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushed\n - transport.c::transport_push(): make ref status affect return value\n - refactor ref status logic for pushing\n - t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs\n - t5541-http-push.sh: add tests for non-fast-forward pushes\n\nRerolled.\n\n* sr/gfi-options (2009-12-04) 7 commits\n  (merged to 'next' on 2010-01-10 at 8b305fb)\n + fast-import: add (non-)relative-marks feature\n + fast-import: allow for multiple --import-marks= arguments\n + fast-import: test the new option command\n + fast-import: add option command\n + fast-import: add feature command\n + fast-import: put marks reading in its own function\n + fast-import: put option parsing code in separate functions\n"},{"id":"131444","messageId":"7veilupejk.fsf@alter.siamese.dyndns.org","threadId":"22155","inReplyTo":"7vocl1pwf5.fsf@alter.siamese.dyndns.org","subject":"[PATCH] t7502: test commit.status, --status and --no-status","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-01-13T08:58:07Z","receivedAt":"2010-01-13T08:58:07Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Make sure that the status information:\n\n - is shown as before without configuration nor command line option;\n\n - is shown if commit.status set to true without command line option,\n   or --status is given;\n\n - is not shown if commit.status set to false without command line option,\n   or --no-status is given.\n\nAlso make sure that the above does not affect the way lines taken from\nthe custom --template appear in the log message editor.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Junio C Hamano <gitster@pobox.com> writes:\n\n > What's cooking in git.git (Jan 2010, #03; Sun, 10)\n > --------------------------------------------------\n > ...\n > [Stalled]\n > * jh/commit-status (2009-12-07) 1 commit\n >  - [test?] Add commit.status, --status, and --no-status\n >\n > Needs tests.\n\n I think I have already given ample time for people to react, but ended up\n getting tired of waiting for tests to materialize and doing it myself, as\n I want to close merge window for 1.7.0-rc0 by the end of next week to\n have the final release early next month.\n\n t/t7502-commit.sh |  109 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 files changed, 109 insertions(+), 0 deletions(-)\n\ndiff --git a/t/t7502-commit.sh b/t/t7502-commit.sh\nindex fe94552..844fb43 100755\n--- a/t/t7502-commit.sh\n+++ b/t/t7502-commit.sh\n@@ -267,4 +267,113 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo\n \n '\n \n+cat >.git/FAKE_EDITOR <<EOF\n+#!$SHELL_PATH\n+mv \"\\$1\" \"\\$1.orig\"\n+(\n+\techo message\n+\tcat \"\\$1.orig\"\n+) >\"\\$1\"\n+EOF\n+\n+echo '## Custom template' >template\n+\n+clear_config () {\n+\t(\n+\t\tgit config --unset-all \"$1\"\n+\t\tcase $? in\n+\t\t0|5)\texit 0 ;;\n+\t\t*)\texit 1 ;;\n+\t\tesac\n+\t)\n+}\n+\n+try_commit () {\n+\tgit reset --hard &&\n+\techo >>negative &&\n+\tGIT_EDITOR=.git/FAKE_EDITOR git commit -a $* $use_template &&\n+\tcase \"$use_template\" in\n+\t'')\n+\t\t! grep \"^## Custom template\" .git/COMMIT_EDITMSG ;;\n+\t*)\n+\t\tgrep \"^## Custom template\" .git/COMMIT_EDITMSG ;;\n+\tesac\n+}\n+\n+try_commit_status_combo () {\n+\n+\ttest_expect_success 'commit' '\n+\t\tclear_config commit.status &&\n+\t\ttry_commit \"\" &&\n+\t\tgrep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit' '\n+\t\tclear_config commit.status &&\n+\t\ttry_commit \"\" &&\n+\t\tgrep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit --status' '\n+\t\tclear_config commit.status &&\n+\t\ttry_commit --status &&\n+\t\tgrep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit --no-status' '\n+\t\tclear_config commit.status &&\n+\t\ttry_commit --no-status\n+\t\t! grep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit with commit.status = yes' '\n+\t\tclear_config commit.status &&\n+\t\tgit config commit.status yes &&\n+\t\ttry_commit \"\" &&\n+\t\tgrep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit with commit.status = no' '\n+\t\tclear_config commit.status &&\n+\t\tgit config commit.status no &&\n+\t\ttry_commit \"\" &&\n+\t\t! grep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit --status with commit.status = yes' '\n+\t\tclear_config commit.status &&\n+\t\tgit config commit.status yes &&\n+\t\ttry_commit --status &&\n+\t\tgrep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit --no-status with commit.status = yes' '\n+\t\tclear_config commit.status &&\n+\t\tgit config commit.status yes &&\n+\t\ttry_commit --no-status &&\n+\t\t! grep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit --status with commit.status = no' '\n+\t\tclear_config commit.status &&\n+\t\tgit config commit.status no &&\n+\t\ttry_commit --status &&\n+\t\tgrep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+\ttest_expect_success 'commit --no-status with commit.status = no' '\n+\t\tclear_config commit.status &&\n+\t\tgit config commit.status no &&\n+\t\ttry_commit --no-status &&\n+\t\t! grep \"^# Changes to be committed:\" .git/COMMIT_EDITMSG\n+\t'\n+\n+}\n+\n+try_commit_status_combo\n+\n+use_template=\"-t template\"\n+\n+try_commit_status_combo\n+\n test_done\n-- \n1.6.6.292.ge84ea.dirty\n"}]}