{"thread":{"id":"18148","subject":"What's cooking in git.git (Mar 2009, #02; Thu, 05)","startedAt":"2009-03-05T10:07:26Z","lastAt":"2009-03-05T20:17:25Z","messageCount":10,"participants":["Junio C Hamano","Nanako Shiraishi","Jeff King","Johannes Schindelin","Jonas Fonseca","Michael Haggerty"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"107044","messageId":"7vbpsg2sgx.fsf@gitster.siamese.dyndns.org","threadId":"18148","inReplyTo":null,"subject":"What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-03-05T10:07:26Z","receivedAt":"2009-03-05T10:07:26Z","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\nThe master branch is slightly past 1.6.2, but embarrasingly enough we\nalready have a real commit on 'maint'.\n\n----------------------------------------------------------------\n[New Topics]\n\n* hv/cvsimport-tests (Mon Mar 2 18:59:36 2009 +0100) 1 commit\n - cvsimport: add test illustrating a bug in cvsps\n\nYet more tests without fixing anything...\n\n* jc/clone-branch-rebase (Tue Mar 3 22:29:55 2009 -0800) 1 commit\n - Make git-clone respect branch.autosetuprebase\n\nThis is rewrite of a patch from Pat Notz.\n\n* mg/maint-submodule-normalize-path (Tue Mar 3 16:08:21 2009 +0100) 2 commits\n - git submodule: Fix adding of submodules at paths with ./, .. and //\n - git submodule: Add test cases for git submodule add\n\n* kb/tracking-count-no-merges (Wed Mar 4 18:47:39 2009 +0100) 1 commit\n - stat_tracking_info(): only count real commits\n\nThis gives the merge commits zero weight when talking about how many\ncommits you have ahead (or behind) of the branch you are tracking.  Even\nthough I agree that they should carry much less weight than the \"real\"\ncommits, because your repeated merge from the other branch does not really\nadd any real value to the end result, giving them absolute zero weight\nsomehow feels wrong. At least it shows that your have been _active_ on the\nbranch.  But I do not feel very strongly about it.\n\n* js/rebase-i-opt (Tue Mar 3 10:55:31 2009 +0100) 1 commit\n - rebase -i: avoid 'git reset' when possible\n\n----------------------------------------------------------------\n[Will merge to 'master' soon]\n\n* jk/sane-relative-time (Tue Feb 24 00:42:16 2009 -0500) 1 commit\n + never fallback relative times to absolute\n\nI think I sent out a \"here is how\" patch for something related to\n--date=<format> option that may be related to this topic; I seem to have\nlost it.\n\n* js/send-email (Mon Mar 2 23:52:18 2009 -0500) 5 commits\n + send-email: add --confirm option and configuration setting\n + send-email: don't create temporary compose file until it is needed\n + send-email: --suppress-cc improvements\n + send-email: handle multiple Cc addresses when reading mbox message\n + send-email: allow send-email to run outside a repo\n\n* sg/rerere-cleanup (Sat Feb 14 23:21:04 2009 +0100) 1 commit\n + rerere: remove duplicated functions\n\n* jc/add-p-unquote (Mon Feb 16 22:43:43 2009 -0800) 1 commit\n + git-add -i/-p: learn to unwrap C-quoted paths\n\n* jw/imap-preformatted-html (Thu Feb 12 08:58:12 2009 -0600) 1 commit\n + imap.preformattedHTML to tell Thunderbird to send non-flowed text\n\nThe patch text should be identical to Jeremy's \"Virtual Patch\", except\nthat the configuration variable was renamed per list discussion.\n\n* jw/format-patch-attach (Thu Feb 12 09:51:55 2009 -0600) 1 commit\n + Enable setting attach as the default in .gitconfig for git-format-\n   patch.\n\n* sr/force-rebase (Fri Feb 13 23:48:01 2009 +0100) 1 commit\n + Teach rebase to rebase even if upstream is up to date\n\n* fg/exclude-bq (Tue Feb 10 15:20:17 2009 +0100) 1 commit\n + Support \"\\\" in non-wildcard exclusion entries\n\n* dm/add-i-edit-abort (Thu Feb 12 00:19:41 2009 -0500) 1 commit\n + add -i: revisit hunk on editor failure\n\n* tp/completion (Sat Feb 21 15:48:43 2009 +0100) 6 commits\n + Fixup: Add bare repository indicator for __git_ps1\n + Add bare repository indicator for __git_ps1\n + completion: More fixes to prevent unbound variable errors\n + completion: Better __git_ps1 support when not in working directory\n + completion: Use consistent if [...] convention, not \"test\"\n + completion: For consistency, change \"git rev-parse\" to __gitdir\n   calls\n\n* js/branch-symref (Wed Feb 18 22:34:44 2009 -0500) 4 commits\n + add basic branch display tests\n + branch: clean up repeated strlen\n + Avoid segfault with 'git branch' when the HEAD is detached\n + builtin-branch: improve output when displaying remote branches\n\n* al/ansi-color (Fri Feb 13 22:53:41 2009 +0100) 2 commits\n + builtin-branch.c: Rename branch category color names\n + Clean up use of ANSI color sequences\n\n* js/valgrind (Thu Feb 5 22:03:00 2009 +0100) 9 commits\n + valgrind: do not require valgrind 3.4.0 or newer\n + test-lib: avoid assuming that templates/ are in the GIT_EXEC_PATH\n + Tests: let --valgrind imply --verbose and --tee\n + Add a script to coalesce the valgrind outputs\n + t/Makefile: provide a 'valgrind' target\n + test-lib.sh: optionally output to test-results/$TEST.out, too\n + Valgrind support: check for more than just programming errors\n + valgrind: ignore ldso and more libz errors\n + Add valgrind support in test scripts\n\n* fc/config-editor (Sat Feb 21 02:48:54 2009 +0200) 3 commits\n + git config: trivial cleanup for editor action\n + git config: codestyle cleanups\n + config: Add new option to open an editor.\n\nRerolled and looked sane.\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.  Jakub seems to want this for gitweb.\n\n* ns/pretty-format (Tue Feb 24 15:33:29 2009 +0200) 5 commits\n + bash completion: add --format= and --oneline options for \"git log\"\n + Add tests for git log --pretty, --format and --oneline.\n + Add --oneline that is a synonym to \"--pretty=oneline --abbrev-\n   commit\"\n + Give short-hands to --pretty=tformat:%formatstring\n + Add --format that is a synonym to --pretty\n\n----------------------------------------------------------------\n[Discarded]\n\n* js/clone-depth-local (Fri Feb 27 00:04:06 2009 -0800) 3 commits\n . parse_options(): do not \"increment\" boolean\n . clone: ignore --depth when cloning locally (implicitly --local)\n . clone: do not ignore --no-local option\n\nJeff had a good suggestion for this series but it was tripped by\na misfeature in parse_options().\n\n* ns/stash-keep (Thu Feb 12 06:25:14 2009 +0900) 1 commit\n . stash: --keep option just saves\n\n----------------------------------------------------------------\n[Stalled and may need help and prodding to go forward]\n\n* lh/submodule-tree-traversal (Sun Jan 25 01:52:06 2009 +0100) 1 commit\n - archive.c: add support for --submodules[=(all|checkedout)]\n\nDiscussion stalled on the submodule selection criteria.\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.\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* 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.\nIndependent review sorely needed.\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, but\nJakub seems to be taking this over, so I'll probably discard these three\nshortly.\n\n----------------------------------------------------------------\n[Actively cooking]\n\n* kb/checkout-optim (Wed Mar 4 18:47:40 2009 +0100) 15 commits\n - better introduction of GIT with USE_NSEC defined\n + write_index(): update index_state->timestamp after flushing to\n   disk\n + verify_uptodate(): add ce_uptodate(ce) test\n + make USE_NSEC work as expected\n + fix compile error when USE_NSEC is defined\n + check_updates(): effective removal of cache entries marked\n   CE_REMOVE\n + lstat_cache(): print a warning if doing ping-pong between cache\n   types\n + show_patch_diff(): remove a call to fstat()\n + write_entry(): use fstat() instead of lstat() when file is open\n + write_entry(): cleanup of some duplicated code\n + create_directories(): remove some memcpy() and strchr() calls\n + unlink_entry(): introduce schedule_dir_for_removal()\n + lstat_cache(): swap func(length, string) into func(string, length)\n + lstat_cache(): generalise longest_match_lstat_cache()\n + lstat_cache(): small cleanup and optimisation\n\n* rs/memmem (Tue Mar 3 00:19:30 2009 +0100) 2 commits\n - optimize compat/ memmem()\n - diffcore-pickaxe: use memmem()\n\nAs always with patches from René, this is already next material.\n\n* jc/push-to-create (Mon Mar 2 22:36:16 2009 -0800) 1 commit\n - Push to create\n\nThis was a failed weatherbaloon patch to allow creation of a new\nrepository from the remote side.  Will discard.\n\n* mv/parseopt-ls-files (Tue Feb 17 15:27:11 2009 +0100) 2 commits\n - parse-opt: migrate builtin-ls-files.\n - Turn the flags in struct dir_struct into a single variable\n\n* tv/rebase-stat (Sun Mar 1 22:28:28 2009 +0100) 2 commits\n - git-pull: Allow --stat and --no-stat to be used with --rebase\n - git-rebase: Add --stat and --no-stat for producing diffstat on\n   rebase\n\n* jk/clone-post-checkout (Tue Mar 3 00:37:51 2009 -0500) 1 commit\n - clone: run post-checkout hook when checking out\n\n* js/remote-improvements (Wed Feb 25 03:32:28 2009 -0500) 22 commits\n - builtin-remote: new show output style for push refspecs\n - builtin-remote: new show output style\n - remote: make guess_remote_head() use exact HEAD lookup if it is\n   available\n - builtin-remote: add set-head subcommand\n - builtin-remote: teach show to display remote HEAD\n - builtin-remote: fix two inconsistencies in the output of \"show\n   <remote>\"\n - builtin-remote: make get_remote_ref_states() always populate\n   states.tracked\n - builtin-remote: rename variables and eliminate redundant function\n   call\n - builtin-remote: remove unused code in get_ref_states\n - builtin-remote: refactor duplicated cleanup code\n - string-list: new for_each_string_list() function\n - remote: make match_refs() not short-circuit\n - remote: make match_refs() copy src ref before assigning to\n   peer_ref\n - remote: let guess_remote_head() optionally return all matches\n - remote: make copy_ref() perform a deep copy\n - remote: simplify guess_remote_head()\n - move locate_head() to remote.c\n - move duplicated ref_newer() to remote.c\n - move duplicated get_local_heads() to remote.c\n - refactor find_ref_by_name() to accept const list\n - add basic http clone/fetch tests\n - test scripts: refactor start_httpd helper\n\n* fc/parseopt-config (Sat Feb 21 02:49:29 2009 +0200) 11 commits\n - git config: don't allow --get-color* and variable type\n - git config: don't allow extra arguments for -e or -l.\n - git config: don't allow multiple variable types\n - git config: don't allow multiple config file locations\n - git config: reorganize to use parseopt\n - git config: reorganize get_color*\n - git config: trivial rename in preparation for parseopt\n - git_config(): not having a per-repo config file is not an error\n + git config: trivial cleanup for editor action\n + git config: codestyle cleanups\n + config: Add new option to open an editor.\n\n* tr/format-patch-thread (Thu Feb 19 22:26:33 2009 +0100) 4 commits\n - format-patch: support deep threading\n - format-patch: thread as reply to cover letter even with in-reply-\n   to\n - format-patch: track several references\n - format-patch: threading test reactivation\n\n* el/blame-date (Fri Feb 20 14:51:11 2009 -0800) 1 commit\n - Make git blame's date output format configurable, like git log\n\nI think the above seven series were basically Ok; I'll hopefully have time\nto re-read them and merge them to 'next'.\n\n* mh/cvsimport-tests (Mon Feb 23 06:08:14 2009 +0100) 5 commits\n - Add a test of \"git cvsimport\"'s handling of tags and branches\n - Add some tests of git-cvsimport's handling of vendor branches\n - Test contents of entire cvsimported \"master\" tree contents\n - Use CVS's -f option if available (ignore user's ~/.cvsrc file)\n - Start a library for cvsimport-related tests\n\nTests without fixes are of dubious value.  Any takers?\n\n* tr/maint-1.6.0-send-email-irt (Sun Mar 1 23:45:41 2009 +0100) 1 commit\n - send-email: respect in-reply-to regardless of threading\n\nTests?\n\n* jc/maint-1.6.0-keep-pack (Sat Feb 28 00:37:19 2009 -0800) 6 commits\n + is_kept_pack(): final clean-up\n + Simplify is_kept_pack()\n + Consolidate ignore_packed logic more\n + has_sha1_kept_pack(): take \"struct rev_info\"\n + has_sha1_pack(): refactor \"pretend these packs do not exist\"\n   interface\n + git-repack: resist stray environment variable\n\nThis is in response to Linus's \"Really slow 'git gc'\" ($gmane/110743)\n\n* en/maint-hash-object (Sat Feb 28 12:56:49 2009 -0700) 1 commit\n + Ensure proper setup of git_dir for git-hash-object\n\nObvious fix that can also go to 1.6.1.X\n\n* tr/gcov (Thu Feb 19 12:13:42 2009 +0100) 8 commits\n - Test git-patch-id\n - Test rev-list --parents/--children\n - Test log --decorate\n - Test fsck a bit harder\n - Test log --graph\n - Test diff --dirstat functionality\n - Test that diff can read from stdin\n - Support coverage testing with GCC/gcov\n\n* js/notes (Wed Feb 18 11:17:27 2009 -0800) 14 commits\n - tests: fix \"export var=val\"\n - notes: refuse to edit notes outside refs/notes/\n - t3301: use test_must_fail instead of !\n - t3301: fix confusing quoting in test for valid notes ref\n - notes: use GIT_EDITOR and core.editor over VISUAL/EDITOR\n - notes: only clean up message file when editing\n - handle empty notes gracefully\n - git notes show: test empty notes\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\nRebased and then kicked back to 'pu' to give the author a chance to\nrearrange if necessary.  I might do some trivial squashing myself.\n\n----------------------------------------------------------------\n[On Hold]\n\n* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit\n - receive-pack: default receive.denyDeleteCurrent to refuse\n\n* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit\n - Refuse updating the current branch in a non-bare repository via\n   push\n\nThese are for 1.7.0, but the messages when they trigger together may need\nto be rethought.\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 was only meant as a weatherballoon to help facilitate discussion.\nWill be discarded.\n"},{"id":"107046","messageId":"20090305191221.6117@nanako3.lavabit.com","threadId":"18148","inReplyTo":"7vbpsg2sgx.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Nanako Shiraishi","fromEmail":"nanako3@lavabit.com","sentAt":"2009-03-05T10:12:21Z","receivedAt":"2009-03-05T10:12:21Z","isPatch":false,"sender":{"key":"nanako3@lavabit.com","avatar":"https://gravatar.com/avatar/3777b9e201c5883a62b1a6fdf7c53f2d712d1d80989146063ea861e33aad72a8?d=mp&s=160"},"body":"Quoting Junio C Hamano <gitster@pobox.com>:\n\n> * jk/sane-relative-time (Tue Feb 24 00:42:16 2009 -0500) 1 commit\n>  + never fallback relative times to absolute\n>\n> I think I sent out a \"here is how\" patch for something related to\n> --date=<format> option that may be related to this topic; I seem to have\n> lost it.\n\nDo you mean this one?\n\n\thttp://article.gmane.org/gmane.comp.version-control.git/112033\n\n-- \nNanako Shiraishi\nhttp://ivory.ap.teacup.com/nanako3/\n"},{"id":"107049","messageId":"7vzlg01d7e.fsf@gitster.siamese.dyndns.org","threadId":"18148","inReplyTo":"20090305191221.6117@nanako3.lavabit.com","subject":"Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-03-05T10:22:29Z","receivedAt":"2009-03-05T10:22:29Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nanako Shiraishi <nanako3@lavabit.com> writes:\n\n> Quoting Junio C Hamano <gitster@pobox.com>:\n>\n>> * jk/sane-relative-time (Tue Feb 24 00:42:16 2009 -0500) 1 commit\n>>  + never fallback relative times to absolute\n>>\n>> I think I sent out a \"here is how\" patch for something related to\n>> --date=<format> option that may be related to this topic; I seem to have\n>> lost it.\n>\n> Do you mean this one?\n>\n> \thttp://article.gmane.org/gmane.comp.version-control.git/112033\n\nYup, that's the one.  Thanks.\n"},{"id":"107057","messageId":"20090305110051.GA17921@coredump.intra.peff.net","threadId":"18148","inReplyTo":"7vbpsg2sgx.fsf@gitster.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-03-05T11:00:51Z","receivedAt":"2009-03-05T11:00:51Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Mar 05, 2009 at 02:07:26AM -0800, Junio C Hamano wrote:\n\n> * mh/cvsimport-tests (Mon Feb 23 06:08:14 2009 +0100) 5 commits\n>  - Add a test of \"git cvsimport\"'s handling of tags and branches\n>  - Add some tests of git-cvsimport's handling of vendor branches\n>  - Test contents of entire cvsimported \"master\" tree contents\n>  - Use CVS's -f option if available (ignore user's ~/.cvsrc file)\n>  - Start a library for cvsimport-related tests\n> \n> Tests without fixes are of dubious value.  Any takers?\n\nAt the very least, I think the first 3 are nice infrastructure cleanups\nthat will help future tests for cvsimport. So it makes sense to me to\napply them to help future testers (otherwise, they would have to know\nthat these patches existed and dig them out of the list).\n\nThe final two introduce the new tests. They look fine as far as fitting\ninto the test infrastructure, but I have to admit that I haven't\nactually looked closely at _what_ they are testing. I assumed since they\nare adapted from Michael's cvs2svn tests that they are showing real\nproblems that he had faced there. If they are meant to show failings of\ncvsps-based conversion (which is my understanding from Michael's other\nmessages), then I'm not even sure they _are_ fixable without a total\nrewrite.\n\nSo I don't know whether it makes sense to apply them if we never plan on\nfixing them. Michael said his goal was to document problems with\ncvsps-based importing, and I think he has done that in a way that will\nhelp anyone who wants to try fixing. We can help people out a little\nmore by carrying the tests in the tree (versus making them pull them\nfrom the list); the downside is that it may take the test suite a little\nlonger to run. I don't know how much we care; it might not matter for 2\ntests, but I certainly wouldn't want to 30 minutes of testing for\nsomething that isn't fixable (and CVS tests tend to be terribly slow).\n\n-Peff\n"},{"id":"107058","messageId":"alpine.DEB.1.00.0903051204010.6524@intel-tinevez-2-302","threadId":"18148","inReplyTo":"7vbpsg2sgx.fsf@gitster.siamese.dyndns.org","subject":"notes, was Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-03-05T11:04:26Z","receivedAt":"2009-03-05T11:04:26Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 5 Mar 2009, Junio C Hamano wrote:\n\n> * js/notes (Wed Feb 18 11:17:27 2009 -0800) 14 commits\n>  - tests: fix \"export var=val\"\n>  - notes: refuse to edit notes outside refs/notes/\n>  - t3301: use test_must_fail instead of !\n>  - t3301: fix confusing quoting in test for valid notes ref\n>  - notes: use GIT_EDITOR and core.editor over VISUAL/EDITOR\n>  - notes: only clean up message file when editing\n>  - handle empty notes gracefully\n>  - git notes show: test empty notes\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> \n> Rebased and then kicked back to 'pu' to give the author a chance to\n> rearrange if necessary.  I might do some trivial squashing myself.\n\nWill do.\n\nThanks,\nDscho\n"},{"id":"107066","messageId":"2c6b72b30903050440k6f9533bbq605d5f06161dff92@mail.gmail.com","threadId":"18148","inReplyTo":"alpine.DEB.1.00.0903051204010.6524@intel-tinevez-2-302","subject":"Re: notes, was Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Jonas Fonseca","fromEmail":"jonas.fonseca@gmail.com","sentAt":"2009-03-05T12:40:03Z","receivedAt":"2009-03-05T12:40:03Z","isPatch":false,"sender":{"key":"jonas.fonseca@gmail.com","avatar":"https://gravatar.com/avatar/9b7fa23cce50269e5d164312b6ac5ae818a180f837b38f28f3bdf689dd7f96cd?d=mp&s=160"},"body":"On Thu, Mar 5, 2009 at 12:04, Johannes Schindelin\n<Johannes.Schindelin@gmx.de> wrote:\n> On Thu, 5 Mar 2009, Junio C Hamano wrote:\n>\n>> * js/notes (Wed Feb 18 11:17:27 2009 -0800) 14 commits\n>>\n>> Rebased and then kicked back to 'pu' to give the author a chance to\n>> rearrange if necessary.  I might do some trivial squashing myself.\n>\n> Will do.\n\nAlthough laziness should not be rewarded, this might be something that\nyou could squash in as well.\n\n--- a/Documentation/git-notes.txt\n+++ b/Documentation/git-notes.txt\n@@ -43,4 +43,4 @@ Documentation by Johannes Schindelin\n\n GIT\n ---\n-Part of the gitlink:git[7] suite\n+Part of the linkgit:git[7] suite\n\n-- \nJonas Fonseca\n"},{"id":"107072","messageId":"49AFED56.3030102@alum.mit.edu","threadId":"18148","inReplyTo":"20090305110051.GA17921@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Michael Haggerty","fromEmail":"mhagger@alum.mit.edu","sentAt":"2009-03-05T15:18:46Z","receivedAt":"2009-03-05T15:18:46Z","isPatch":false,"sender":{"key":"mhagger@alum.mit.edu","avatar":"https://avatars.githubusercontent.com/u/119718?v=4"},"body":"Jeff King wrote:\n> On Thu, Mar 05, 2009 at 02:07:26AM -0800, Junio C Hamano wrote:\n> \n>> * mh/cvsimport-tests (Mon Feb 23 06:08:14 2009 +0100) 5 commits\n>>  - Add a test of \"git cvsimport\"'s handling of tags and branches\n>>  - Add some tests of git-cvsimport's handling of vendor branches\n>>  - Test contents of entire cvsimported \"master\" tree contents\n>>  - Use CVS's -f option if available (ignore user's ~/.cvsrc file)\n>>  - Start a library for cvsimport-related tests\n>>\n>> Tests without fixes are of dubious value.  Any takers?\n> \n> [...]\n> \n> The final two introduce the new tests. They look fine as far as fitting\n> into the test infrastructure, but I have to admit that I haven't\n> actually looked closely at _what_ they are testing. I assumed since they\n> are adapted from Michael's cvs2svn tests that they are showing real\n> problems that he had faced there. If they are meant to show failings of\n> cvsps-based conversion (which is my understanding from Michael's other\n> messages), then I'm not even sure they _are_ fixable without a total\n> rewrite.\n\nThe test script added by this patch:\n\n  Add some tests of git-cvsimport's handling of vendor branches\n\nindicates a breakage that will occur for any CVS repository that used\nthe CVS \"vendor branch\" feature by importing a vendor tree more than\nonce.  This is a standard-vanilla use of CVS, though probably used in a\nminority of repositories.  In such a case, the master branch of the\ncvsimported git repository will have different contents than the HEAD\nbranch of the CVS repository.  I don't know enough to say whether this\nis fixable without ditching cvsps.\n\nThe test script added by this patch:\n\n  Add a test of \"git cvsimport\"'s handling of tags and branches\n\nis even more basic.  In CVS it is possible, and common, to add some\nfiles but not others to a branch or tag, or to add files from multiple\nsource branches to a branch or tag.  For some workflows, this is\nrecommended practice in the CVS world.  AFAIK cvsps does not attempt to\nfigure out what files were added to a branch but rather assumes that an\nentire source branch was tagged/branched at a single moment in time.\nThe result of this false assumption is that the contents of the\nbranch/tag as checked out of git are different than those in the same\nbranch/tag in CVS.\n\nThe following patch by Heiko Voigt:\n\n* hv/cvsimport-tests (Mon Mar 2 18:59:36 2009 +0100) 1 commit\n - cvsimport: add test illustrating a bug in cvsps\n\noccurs due to out-of-order timestamps in the CVS repo, which can occur\nwhenever CVS *client* clocks are not synchronized.\n\nI have another failing test (patch not yet submitted) that reveals a\nconversion failure whenever CVS commits are applied to different files\nin different orders (even if the timestamps are in order).  This occurs\nshockingly often in CVS repositories because commits are not atomic, so\ncommits from two clients can be interleaved.  It can also occur if two\ncommits within cvsps's time window coincidentally have the same author\nand commit message (e.g., a blank commit message).  In this case\ngit-cvsimport commits changes *to a single file* in the wrong\ntopological order (e.g., revision 1.3 is overwritten by revision 1.2),\nalso potentially leaving obsolete file contents at HEAD.\n\nIn all of these cases *the git content is objectively wrong*.  These are\nnot quality-of-conversion quibbles, they are egregious correctness\nproblems that will occur in most nontrivial CVS repositories.\n\n> So I don't know whether it makes sense to apply them if we never plan on\n> fixing them. [...]\n\nIMHO there are only two intellectually honest alternatives:\n\n1. Commit the new tests in the hope that somebody will try to fix them,\nwhich probably requires ditching cvsps and starting almost from scratch.\n Until they are fixed add a disclaimer, in big red letters, to the\ngit-cvsimport documentation, saying that it *should not be trusted* to\nmake accurate conversions (though it might be useful in very restricted\nscenarios requiring incremental synchronization with a CVS repo).  In\nthis case the tests should be retained as documentation, though perhaps\nthey should not be run unless the user turns on a particular flag.\n\n2. Remove the git-cvsimport command altogether.\n\nThe status quo is untenable.  git-cvsimport is broken in ways that\ncasual users might easily overlook.  Their source tree might be altered,\npossibly on HEAD but even more likely on branches and historical tags.\nBy the time they notice, sometime in the future, that their repository\nis corrupt, it will be too late to fix because git development has taken\nplace on top of the faulty converted repository.\n\nMichael\n"},{"id":"107077","messageId":"20090305162824.GA4213@coredump.intra.peff.net","threadId":"18148","inReplyTo":"49AFED56.3030102@alum.mit.edu","subject":"Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-03-05T16:28:24Z","receivedAt":"2009-03-05T16:28:24Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Mar 05, 2009 at 04:18:46PM +0100, Michael Haggerty wrote:\n\n> In all of these cases *the git content is objectively wrong*.  These are\n> not quality-of-conversion quibbles, they are egregious correctness\n> problems that will occur in most nontrivial CVS repositories.\n\nThanks for the detailed descriptions. I don't think anyone is denying\nthat the results are objectively wrong; it is clear that cvsimport\ndoesn't handle complex cases well.\n\n> IMHO there are only two intellectually honest alternatives:\n> \n> 1. Commit the new tests in the hope that somebody will try to fix them,\n> which probably requires ditching cvsps and starting almost from scratch.\n>  Until they are fixed add a disclaimer, in big red letters, to the\n> git-cvsimport documentation, saying that it *should not be trusted* to\n> make accurate conversions (though it might be useful in very restricted\n> scenarios requiring incremental synchronization with a CVS repo).  In\n> this case the tests should be retained as documentation, though perhaps\n> they should not be run unless the user turns on a particular flag.\n\nI think committing the tests and putting a big warning onto cvsimport\nare two separate things. I don't want to hide the fact that cvsimport\nsucks, and I don't think anyone does. But I also don't want to bog down\nthe test suite with useless cruft that nobody is actually going to look\nat.\n\nI think your suggestion of disabling the tests unless flagged is\nreasonable. The tests themselves don't take up much space in the\nrepository, it's only running them that is painful.\n\nAs far as marking cvsimport with a disclaimer, I don't have an objection\nto warning people in the documentation. It seems like most people who\ncome to the list with a cvsimport problem end up getting the advice to\ntry something else, and then they end up happy. Putting a\nnot-inflammatory disclaimer into the documentation to check results and\nto consider some other options would save the list a little work.\n\n> 2. Remove the git-cvsimport command altogether.\n\nI don't think this is a good idea. It still has two uses which make it\nbetter than nothing:\n\n  1. It's the only (AFAIK) importer that is incremental. When you are\n     tracking relatively simple development on an existing CVS repo,\n     it is the only choice. Taking that choice away seems\n     counterproductive.\n\n  2. It _does_ work on relatively mundane cases, and there _are_ mundane\n     CVS repositories. Yes, other tools can also handle these cases, but\n     using the bundled cvsimport is much easier using an intermediate\n     svn.\n\nI am less sure of (2) above, because naive users might not _know_ that\nthey're screwing up their repository. So safety would dictate spending\nthe extra effort (which is the point you were making, I think).\n\nBut certainly cvsimport should hang around for (1), even it is with a\ndisclaimer.\n\nFor how long, I don't know. It seems like most people are putting their\nCVS repos to rest at this point, moving at least to SVN. I know there\nwill be people hanging on to CVS for at least a decade, but I'm not sure\nat what point we say \"there are not enough of you to care; go use a less\nconvenient one-time tool\". cvsimport is already suffering from bit-rot\nas people who like git enough to work on it converted their repos years\nago.\n\n-Peff\n"},{"id":"107088","messageId":"7vwsb3zsc5.fsf@gitster.siamese.dyndns.org","threadId":"18148","inReplyTo":"2c6b72b30903050440k6f9533bbq605d5f06161dff92@mail.gmail.com","subject":"Re: notes, was Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-03-05T19:23:54Z","receivedAt":"2009-03-05T19:23:54Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonas Fonseca <jonas.fonseca@gmail.com> writes:\n\n> On Thu, Mar 5, 2009 at 12:04, Johannes Schindelin\n> <Johannes.Schindelin@gmx.de> wrote:\n>> On Thu, 5 Mar 2009, Junio C Hamano wrote:\n>>\n>>> * js/notes (Wed Feb 18 11:17:27 2009 -0800) 14 commits\n>>>\n>>> Rebased and then kicked back to 'pu' to give the author a chance to\n>>> rearrange if necessary.  I might do some trivial squashing myself.\n>>\n>> Will do.\n>\n> Although laziness should not be rewarded, this might be something that\n> you could squash in as well.\n\nWhose laziness are you accusing?  Me giving Dscho a chance to make trivial\nclean-up of his own series instead of doing it myself???\n\nIn any case, I won't be squashing \"oops - fixup\" patch(es) in the original\nseries to the early parts of the sequence that introduced the \"oops\"\nmyself, as it would likely end up Dscho and I stepping on each other's\npaws.  I won't be squashing this patch in myself, either.\n\n> --- a/Documentation/git-notes.txt\n> +++ b/Documentation/git-notes.txt\n> @@ -43,4 +43,4 @@ Documentation by Johannes Schindelin\n>\n>  GIT\n>  ---\n> -Part of the gitlink:git[7] suite\n> +Part of the linkgit:git[7] suite\n"},{"id":"107093","messageId":"2c6b72b30903051217w3eb4511cn7a9f6e378af83174@mail.gmail.com","threadId":"18148","inReplyTo":"7vwsb3zsc5.fsf@gitster.siamese.dyndns.org","subject":"Re: notes, was Re: What's cooking in git.git (Mar 2009, #02; Thu, 05)","fromName":"Jonas Fonseca","fromEmail":"jonas.fonseca@gmail.com","sentAt":"2009-03-05T20:17:25Z","receivedAt":"2009-03-05T20:17:25Z","isPatch":false,"sender":{"key":"jonas.fonseca@gmail.com","avatar":"https://gravatar.com/avatar/9b7fa23cce50269e5d164312b6ac5ae818a180f837b38f28f3bdf689dd7f96cd?d=mp&s=160"},"body":"On Thu, Mar 5, 2009 at 20:23, Junio C Hamano <gitster@pobox.com> wrote:\n> Jonas Fonseca <jonas.fonseca@gmail.com> writes:\n>> On Thu, Mar 5, 2009 at 12:04, Johannes Schindelin\n>> <Johannes.Schindelin@gmx.de> wrote:\n>>> On Thu, 5 Mar 2009, Junio C Hamano wrote:\n>>>> * js/notes (Wed Feb 18 11:17:27 2009 -0800) 14 commits\n>>\n>> Although laziness should not be rewarded, this might be something that\n>> you could squash in as well.\n>\n> Whose laziness are you accusing?  Me giving Dscho a chance to make trivial\n> clean-up of his own series instead of doing it myself???\n\nI was referring to my own laziness of not sending a proper patch.\nSorry for the confusion.\n\n-- \nJonas Fonseca\n"}]}