{"thread":{"id":"17500","subject":"What's cooking in git.git (Feb 2009, #01; Sun, 01)","startedAt":"2009-02-02T07:59:48Z","lastAt":"2009-02-02T07:59:48Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"102838","messageId":"7vk589l157.fsf@gitster.siamese.dyndns.org","threadId":"17500","inReplyTo":null,"subject":"What's cooking in git.git (Feb 2009, #01; Sun, 01)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-02-02T07:59:48Z","receivedAt":"2009-02-02T07:59:48Z","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 branches, but I am still\nholding onto them.\n\nThe topics list the commits in reverse chronological order.  The topics\nmeant to be merged to the maintenance series have \"maint-\" in their names.\n\n----------------------------------------------------------------\n[New Topics]\n\n* gt/utf8-width (Fri Jan 30 04:41:29 2009 -0500) 2 commits\n - builtin-blame.c: Use utf8_strwidth for author's names\n - utf8: add utf8_strwidth()\n\nI am not sure if utf8_strwidth() behaves sensibly when fed a non-UTF8\nstring (a possible failure mode is utf8_width() says \"no\" and it returns\n0, resulting in width of all zero and causing division by zero somewhere\ndownstream, or something silly like that), but other than that, I do not\nthink it would hurt, and will actively improve the current code.\n\n* jc/refuse-push-to-current (Sat Jan 31 17:34:05 2009 -0800) 2 commits\n - Set receive.denyCurrentBranch to true in a new non-bare repository\n - receive-pack: explain what to do when push updates the current\n   branch\n\nThis prepares to finally switch the default for receive.denyCurrentBranch\nto \"refuse\".  The idea is to issue a big warning to people who push into\ncurrently checked out branch when the configuration is unset and we\ndefault to \"warn\", and explain in detail (1) why it is not likely to be\nwhat they want to do (to help new people), (2) if it is what they want,\nhow to squelch that annoyingly long message, and (3) the default will be\nchanged to \"refuse\" in a future release of git.  The tip commit also sets\nthe configuration to refuse in a newly created repository, but with a\ntwist.  People who get the \"refusal\" configuration this way may be\nexpecting the recipe they picked up to push into a live repository,\nperhaps a website, and let its post-update hook to \"reset --hard\" the\ndeployment, and we will explain that (1) it will no longer work (because\nwe default to \"refuse\" in a newly created repository), (2) how to\nconfigure it to work again, and (3) how to squelch the annoying message.\n\nI personally do not think anything short of an approach like this would\nwork without a huge fallout like we had when yanked git-foo commands from\npeople's $PATH in 1.6.0, but I can still be pursuaded by a better\nalternative, and that is why they are not in 'next' yet.  Saying \"old\ntimers can flip a single switch just once\" is not a better alternative, as\nI explained already.\n\n* jc/fsck (Fri Jan 30 02:44:13 2009 -0800) 7 commits\n - fsck: revert --quick to the default and introduce --medium\n - fsck: three levels of validation\n - verify-pack: add --quick\n - verify_pack(): allow a quicker verification for a pack with\n   version 2 idx\n - pack-check.c: minor formatting fix to match coding style\n + fsck: check loose objects from alternate object stores by default\n + fsck: HEAD is part of refs\n\nI haven't heard anything positive nor negative about this series.  I\nconsider the bottom two changes are pure bugfixes and should probably be\nin 1.6.2.\n\nI think the tip two commits should be squashed (and perhaps the option\nparser cleaned up as suggested on the list) if we were to take the\nremainder.\n\n* rc/http-push (Sat Jan 31 07:51:55 2009 +0800) 1 commit\n + http-push: refactor request url creation\n\nLooked fine for 1.6.2.\n\n* jk/head-symref (Thu Jan 29 03:33:02 2009 -0500) 2 commits\n + symbolic ref: refuse non-ref targets in HEAD\n + validate_headref: tighten ref-matching to just branches\n\nLooked fine for 1.6.2.\n\n* kb/checkout-optim (Sun Feb 1 21:23:39 2009 +0100) 7 commits\n - unpack-trees.c: introduce schedule_dir_for_removal()\n - lstat_cache(): print a warning if doing ping-pong between cache\n   types\n - combine-diff.c: remove a call to fstat() inside show_patch_diff()\n - write_entry(): use fstat() instead of lstat() when file is open\n - cleanup of write_entry() in entry.c\n - remove some memcpy() and strchr() calls inside\n   create_directories()\n - symlinks.c: small cleanup and optimisation\n\nLove to have in 1.6.2\n\n----------------------------------------------------------------\n[Stalled and may need help and prodding to go forward]\n\n* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit\n - git-merge-file: allow converting the results for the work tree\n\nThis is a feature waiting for a user.  I do not need it in 1.6.2\n\nWe did not give scripted Porcelains a way to say \"this temporary file I am\nusing for merging is for this path, so use the core.autocrlf and attributes\nrules for that final path\".  Instead, merge-file simply wrote out the\ndata in the canonical repository representation.\n\nrerere has the same issue, but it is a lot worse.  It reads the three\nfiles (preimage, postimage and thisimage) from the work tree in the work\ntree representation, merges them without converting them to the canonical\nrepresentation first but inserts the conflict markers with the canonical\nrepresentation and writes the resulting mess out.  It needs to be fixed to\nread with convert_to_git(), merge them while they are still in the\ncanonical representation and possibly add conflict markers, and then write\nthe results out after convert_to_working_tree().  It also needs to write\nin binary mode as well.\n\n* jc/blame (Wed Jun 4 22:58:40 2008 -0700) 2 commits\n + blame: show \"previous\" information in --porcelain/--incremental\n   format\n + git-blame: refactor code to emit \"porcelain format\" output\n\nThis gives Porcelains (like gitweb) the information on the commit _before_\nthe one that the final blame is laid on, which should save them one\nrev-parse to dig further.  The line number in the \"previous\" information\nmay need refining, and sanity checking code for reference counting may\nneed to be resurrected before this can move forward.\n\n* db/foreign-scm (Sun Jan 11 15:12:10 2009 -0500) 3 commits\n - Support fetching from foreign VCSes\n - Add specification of git-vcs helpers\n - Add \"vcs\" config option in remotes\n\nThe \"spec\" did not seem quite well cooked yet, but in the longer term I\nthink something like this to allow interoperating with other SCMs as if\nthe other end is a native git repository is a very worthy goal.\n\n* cc/replace (Mon Feb 2 06:13:06 2009 +0100) 11 commits\n - builtin-replace: use \"usage_msg_opt\" to give better error messages\n - parse-options: add new function \"usage_msg_opt\"\n - builtin-replace: teach \"git replace\" to actually replace\n - Add new \"git replace\" command\n - environment: add global variable to disable replacement\n - mktag: call \"check_sha1_signature\" with the replacement sha1\n - replace_object: add a test case\n - object: call \"check_sha1_signature\" with the replacement sha1\n - sha1_file: add a \"read_sha1_file_repl\" function\n - replace_object: add mechanism to replace objects found in\n   \"refs/replace/\"\n - refs: add a \"for_each_replace_ref\" function\n\nI think the code is much cleaner than the first round, but I am not\nconvinced it is doing the right thing in the connectivity traverser.  \nI'd like to keep this out of 1.6.2.\n\n* lh/submodule-tree-traversal (Sun Jan 25 01:52:06 2009 +0100) 6 commits\n - archive.c: add support for --submodules[=(all|checkedout)]\n - tree.c: allow read_tree_recursive() to traverse gitlink entries\n + Revert round #1 of the series\n + builtin-ls-tree: enable traversal of submodules\n + archive.c: enable traversal of submodules\n + tree.c: add support for traversal of submodules\n\nSorry, but what's the status of this one?  I am not particularly\ninterested in this new feature myself, so unless I hear otherwise from\npeople, I'd like to keep this out of 1.6.2.  That would have the added\nbenefit of being able to discard the first four that is already in 'next'\nto get a fresh start post 1.6.2 ;-)\n\n* sc/gitweb-category (Fri Dec 12 00:45:12 2008 +0100) 3 commits\n - gitweb: Optional grouping of projects by category\n - gitweb: Split git_project_list_body in two functions\n - gitweb: Modularized git_get_project_description to be more generic\n\nDesign discussion between Jakub and Sebastien seems to have stalled.\n\n----------------------------------------------------------------\n[Reverted]\n\n* mh/unify-color (Fri Jan 23 01:25:23 2009 -0800) 3 commits\n ? Revert previous two commits\n ? move the color variables to color.c\n ? handle color.ui at a central place\n\nThis broke git-format-patch badly.\n\n----------------------------------------------------------------\n[Actively cooking]\n\n* wp/add-patch-find (Thu Nov 27 04:08:03 2008 +0000) 3 commits\n + In add --patch, Handle K,k,J,j slightly more gracefully.\n + Add / command in add --patch\n + git-add -i/-p: Change prompt separater from slash to comma\n\nI think this is Ok to have in 1.6.2\n\n* cb/mergetool (Fri Jan 30 23:20:11 2009 +0000) 3 commits\n - mergetool: fix running mergetool in sub-directories\n - mergetool: Add a test for running mergetool in a sub-directory\n + mergetool: respect autocrlf by using checkout-index\n\nThe fix to its subdirectory behaviour looked somewhat iffy and may have a\npotential for cleaning up.  But we should have it in 1.6.2.\n\n* js/valgrind (Wed Jan 21 02:36:40 2009 +0100) 2 commits\n - valgrind: ignore ldso errors\n - Add valgrind support in test scripts\n\nDscho and Peff had further exchanges on the list; I am sort of waiting for\nthe conclusion before picking any intermediate version up.\n\n* js/notes (Tue Jan 13 20:57:16 2009 +0100) 6 commits\n + git-notes: fix printing of multi-line notes\n + notes: fix core.notesRef documentation\n + Add an expensive test for git-notes\n + Speed up git notes lookup\n + Add a script to edit/inspect notes\n + Introduce commit notes\n\nIt would be nice to hear a real world success story using the notes\nmechanism; Dscho says he also wants to make sure the current choice\nof the structure scales well before casting it in stone.\n\n----------------------------------------------------------------\n[Graduated to \"master\"]\n\n* jc/maint-1.6.0-split-diff-metainfo (Mon Jan 26 00:08:24 2009 -0800) 1 commit\n + diff.c: output correct index lines for a split diff\n\nThis is slated for maintenance series 1.6.0.X.\n\n* jc/maint-split-diff-metainfo (Tue Jan 27 01:08:02 2009 -0800) 2 commits\n + Merge branch 'jc/maint-1.6.0-split-diff-metainfo' into jc/maint-\n   split-diff-metainfo\n + diff.c: output correct index lines for a split diff\n\nEarly conflict resolution branch for the above to carry it to 1.6.1.X\nseries.\n\n* js/maint-rebase-i-submodule (Tue Jan 27 12:42:31 2009 +0100) 2 commits\n + Fix submodule squashing into unrelated commit\n + rebase -i squashes submodule changes into unrelated commit\n\n* jg/tag-contains (Mon Jan 26 09:13:25 2009 -0500) 3 commits\n + git-tag: Add --contains option\n + Make has_commit() non-static\n + Make opt_parse_with_commit() non-static\n\n* jc/maint-allow-uninteresting-missing (Tue Jan 27 23:19:30 2009 -0800) 1 commit\n + revision traversal: allow UNINTERESTING objects to be missing\n\nThis is a small follow-up to the fix to send-pack in 1.6.1; meant to go in\n1.6.1.X maintenance series and newer.\n\n* am/maint-push-doc (Mon Jan 26 00:45:33 2009 +0100) 3 commits\n + Documentation: rework src/dst description in git push\n + Documentation: more git push examples\n + Documentation: simplify refspec format description\n\n* jc/maint-apply-fix (Sun Jan 25 23:41:26 2009 -0800) 1 commit\n + builtin-apply.c: do not set bogus mode in check_preimage() for\n   deleted path\n\n* ks/maint-mailinfo-folded (Tue Jan 13 01:21:04 2009 +0300) 4 commits\n + mailinfo: tests for RFC2047 examples\n + mailinfo: add explicit test for mails like '<a.u.thor@example.com>\n   (A U Thor)'\n + mailinfo: 'From:' header should be unfold as well\n + mailinfo: correctly handle multiline 'Subject:' header\n\nGraduated with a follow-up patch from the original author.\n\n* jg/mergetool (Sat Jan 24 00:12:45 2009 +0100) 1 commit\n + mergetool: Don't repeat merge tool candidates\n\n* jk/signal-cleanup (Thu Jan 22 01:03:28 2009 -0500) 5 commits\n + pager: do wait_for_pager on signal death\n + refactor signal handling for cleanup functions\n + chain kill signals for cleanup functions\n + diff: refactor tempfile cleanup handling\n + Windows: Fix signal numbers\n\n* sp/runtime-prefix (Sun Jan 18 13:00:15 2009 +0100) 7 commits\n + Windows: Revert to default paths and convert them by\n   RUNTIME_PREFIX\n + Compute prefix at runtime if RUNTIME_PREFIX is set\n + Modify setup_path() to only add git_exec_path() to PATH\n + Add calls to git_extract_argv0_path() in programs that call\n   git_config_*\n + git_extract_argv0_path(): Move check for valid argv0 from caller\n   to callee\n + Refactor git_set_argv0_path() to git_extract_argv0_path()\n + Move computation of absolute paths from Makefile to runtime (in\n   preparation for RUNTIME_PREFIX)\n\nThere was a report that this breaks with older GNU Make.\n\n----------------------------------------------------------------\n[Will merge to \"master\" soon]\n\n* jc/maint-add-u-remove-conflicted (Wed Jan 28 14:24:53 2009 -0800) 1 commit\n - add -u: do not fail to resolve a path as deleted\n\nThis has been updated from the posted version with a correction.  We\nshould have it in 1.6.2\n\n* jk/maint-cleanup-after-exec-failure (Wed Jan 28 02:38:14 2009 -0500) 4 commits\n + git: use run_command() to execute dashed externals\n + run_command(): help callers distinguish errors\n + run_command(): handle missing command errors more gracefully\n + git: s/run_command/run_builtin/\n\nLooked good for 1.6.2.\n\n* ns/am-slacker (Sat Jan 24 10:18:02 2009 +0900) 2 commits\n + git-am: Add --ignore-date option\n + am: Add --committer-date-is-author-date option\n\nIt is a (probably) useful new feature with a sort-of cute explanation.\nI am not sure if it needs further work (such as hooking it to rebase),\nbut other than that, I think it is Ok to have in 1.6.2.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/commit-assume-also-during-merge (Thu Jan 22 22:21:49 2009 -0800) 3 commits\n - git commit: pathspec without -i/-o implies -i semantics during a\n   merge\n - builtin-commit: shorten eye-sore overlong lines\n - Add \"partial commit\" tests during a conflicted merge\n\nThis is only meant as a weatherballoon to help facilitate discussion.\n\n* jk/renamelimit (Sat May 3 13:58:42 2008 -0700) 1 commit\n . diff: enable \"too large a rename\" warning when -M/-C is explicitly\n   asked for\n\n* jc/stripspace (Sun Mar 9 00:30:35 2008 -0800) 6 commits\n . git-am --forge: add Signed-off-by: line for the author\n . git-am: clean-up Signed-off-by: lines\n . stripspace: add --log-clean option to clean up signed-off-by:\n   lines\n . stripspace: use parse_options()\n . Add \"git am -s\" test\n . git-am: refactor code to add signed-off-by line for the committer\n\n* jc/post-simplify (Fri Aug 15 01:34:51 2008 -0700) 2 commits\n . revision --simplify-merges: incremental simplification\n . revision --simplify-merges: prepare for incremental simplification\n"}]}