{"thread":{"id":"17170","subject":"[BUG] assertion failure in builtin-mv.c with \"git mv -k\"","startedAt":"2009-01-14T13:20:07Z","lastAt":"2009-01-16T12:57:05Z","messageCount":14,"participants":["Matthieu Moy","Michael J Gruber","Johannes Schindelin","Jeff King","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"100406","messageId":"vpqwscy81o8.fsf@bauges.imag.fr","threadId":"17170","inReplyTo":null,"subject":"[BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2009-01-14T13:20:07Z","receivedAt":"2009-01-14T13:20:07Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Hi,\n\nJust found a bug in builtin-mv.c. Here's a script to reproduce:\n\nmkdir git\ncd git\ngit init\ntouch controled\ngit add controled && git commit -m \"init\"\ntouch foo1 foo2\nmkdir dir\ngit mv -k foo* dir/\n\nThe output is the following:\n\nInitialized empty Git repository in /tmp/git/.git/\n[master (root-commit)]: created 694563b: \"init\"\n 0 files changed, 0 insertions(+), 0 deletions(-)\n create mode 100644 controled\ngit: builtin-mv.c:216: cmd_mv: Assertion `pos >= 0' failed.\n./bug.sh: line 10: 12919 Aborted                 git mv -k foo* dir/\n\nApparently, this happens when using \"git mv -k\" with more than one\nunversionned file. The code ignores the first one, but still goes\nthrough this\n\n\tfor (i = 0; i < argc; i++) {\n\t\tconst char *src = source[i], *dst = destination[i];\n\t\tenum update_mode mode = modes[i];\n\t\tint pos;\n\t\tif (show_only || verbose)\n\t\t\tprintf(\"Renaming %s to %s\\n\", src, dst);\n\t\tif (!show_only && mode != INDEX &&\n\t\t\t\trename(src, dst) < 0 && !ignore_errors)\n\t\t\tdie (\"renaming %s failed: %s\", src, strerror(errno));\n\n\t\tif (mode == WORKING_DIRECTORY)\n\t\t\tcontinue;\n\n\t\tpos = cache_name_pos(src, strlen(src));\n\t\tassert(pos >= 0); /* <----- this is the one */\n\t\tif (!show_only)\n\t\t\trename_cache_entry_at(pos, dst);\n\t}\n\nfor the second, and it crashes on the assertion (gdb says \"pos\" here\nis an unversionned file name).\n\nIf anyone has time to fix this ...\n\nThanks,\n\n-- \nMatthieu\n"},{"id":"100413","messageId":"496DFC75.2000904@drmicha.warpmail.net","threadId":"17170","inReplyTo":"vpqwscy81o8.fsf@bauges.imag.fr","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T14:53:41Z","receivedAt":"2009-01-14T14:53:41Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Matthieu Moy venit, vidit, dixit 14.01.2009 14:20:\n> Hi,\n> \n> Just found a bug in builtin-mv.c. Here's a script to reproduce:\n> \n> mkdir git\n> cd git\n> git init\n> touch controled\n> git add controled && git commit -m \"init\"\n> touch foo1 foo2\n> mkdir dir\n> git mv -k foo* dir/\n> \n> The output is the following:\n> \n> Initialized empty Git repository in /tmp/git/.git/\n> [master (root-commit)]: created 694563b: \"init\"\n>  0 files changed, 0 insertions(+), 0 deletions(-)\n>  create mode 100644 controled\n> git: builtin-mv.c:216: cmd_mv: Assertion `pos >= 0' failed.\n> ./bug.sh: line 10: 12919 Aborted                 git mv -k foo* dir/\n> \n> Apparently, this happens when using \"git mv -k\" with more than one\n> unversionned file. The code ignores the first one, but still goes\n> through this\n> \n> \tfor (i = 0; i < argc; i++) {\n> \t\tconst char *src = source[i], *dst = destination[i];\n> \t\tenum update_mode mode = modes[i];\n> \t\tint pos;\n> \t\tif (show_only || verbose)\n> \t\t\tprintf(\"Renaming %s to %s\\n\", src, dst);\n> \t\tif (!show_only && mode != INDEX &&\n> \t\t\t\trename(src, dst) < 0 && !ignore_errors)\n> \t\t\tdie (\"renaming %s failed: %s\", src, strerror(errno));\n> \n> \t\tif (mode == WORKING_DIRECTORY)\n> \t\t\tcontinue;\n> \n> \t\tpos = cache_name_pos(src, strlen(src));\n> \t\tassert(pos >= 0); /* <----- this is the one */\n> \t\tif (!show_only)\n> \t\t\trename_cache_entry_at(pos, dst);\n> \t}\n> \n> for the second, and it crashes on the assertion (gdb says \"pos\" here\n> is an unversionned file name).\n> \n> If anyone has time to fix this ...\n> \n> Thanks,\n> \n\nThe problem is actually in the loop before, with just one line missing.\nI'll send a patch but I'm not sure if this needs a test case.\n\nMichael\n"},{"id":"100422","messageId":"1231947737-23803-1-git-send-email-git@drmicha.warpmail.net","threadId":"17170","inReplyTo":"vpqwscy81o8.fsf@bauges.imag.fr","subject":"[PATCH] fix handling of multiple untracked files for git mv -k","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T15:42:17Z","receivedAt":"2009-01-14T15:42:17Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"The \"-k\" option to \"git mv\" should allow specifying multiple untracked\nfiles. Currently, multiple untracked files raise an assertion if they\nappear consecutively as arguments. Fix this by decrementing the loop\nindex after removing one entry from the array of arguments.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n builtin-mv.c |    1 +\n 1 files changed, 1 insertions(+), 0 deletions(-)\n\nReported by the OP. Do we need a test case for this? It's a really\ntrivial change. The patch is off master but builtin-mv.c hasn't change\nsince 81dc2307d0ad87a4da2e753a9d1b5586d6456eed tags/v1.6.0-rc1~1, so I\nsuggest this patch for maint.\n\ndiff --git a/builtin-mv.c b/builtin-mv.c\nindex 4f65b5a..bce9959 100644\n--- a/builtin-mv.c\n+++ b/builtin-mv.c\n@@ -192,6 +192,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)\n \t\t\t\t\tmemmove(destination + i,\n \t\t\t\t\t\tdestination + i + 1,\n \t\t\t\t\t\t(argc - i) * sizeof(char *));\n+\t\t\t\t\ti--;\n \t\t\t\t}\n \t\t\t} else\n \t\t\t\tdie (\"%s, source=%s, destination=%s\",\n-- \n1.6.0.6\n"},{"id":"100424","messageId":"alpine.DEB.1.00.0901141653540.3586@pacific.mpi-cbg.de","threadId":"17170","inReplyTo":"496DFC75.2000904@drmicha.warpmail.net","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-01-14T15:54:43Z","receivedAt":"2009-01-14T15:54:43Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 14 Jan 2009, Michael J Gruber wrote:\n\n> I'll send a patch but I'm not sure if this needs a test case.\n\nUmm, Michael, you have been here long enough to know that the answer is a \n\"YES!\".  If you fix something, you want to provide a test case just to \nmake sure you do not need to fix it again later.\n\nCiao,\nDscho\n"},{"id":"100429","messageId":"496E0D1C.20807@drmicha.warpmail.net","threadId":"17170","inReplyTo":"alpine.DEB.1.00.0901141653540.3586@pacific.mpi-cbg.de","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T16:04:44Z","receivedAt":"2009-01-14T16:04:44Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Johannes Schindelin venit, vidit, dixit 14.01.2009 16:54:\n> Hi,\n> \n> On Wed, 14 Jan 2009, Michael J Gruber wrote:\n> \n>> I'll send a patch but I'm not sure if this needs a test case.\n> \n> Umm, Michael, you have been here long enough to know that the answer is a \n> \"YES!\".  If you fix something, you want to provide a test case just to \n> make sure you do not need to fix it again later.\n> \n> Ciao,\n> Dscho\n> \n\nIt was a lame attempt at getting around it, it's just one line... I\ndidn't know I've been being noticed long enough ;)\nSo, should I prepare a series like:\n\n1: test case and mark known fail\n2: the 1 line fix\n3: mark test pass\n\nOr should 2+3 be squashed into one?\n\nCheers,\nMichael\n"},{"id":"100435","messageId":"20090114164742.GA15758@coredump.intra.peff.net","threadId":"17170","inReplyTo":"496E0D1C.20807@drmicha.warpmail.net","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-01-14T16:47:43Z","receivedAt":"2009-01-14T16:47:43Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jan 14, 2009 at 05:04:44PM +0100, Michael J Gruber wrote:\n\n> It was a lame attempt at getting around it, it's just one line... I\n> didn't know I've been being noticed long enough ;)\n> So, should I prepare a series like:\n> \n> 1: test case and mark known fail\n> 2: the 1 line fix\n> 3: mark test pass\n> \n> Or should 2+3 be squashed into one?\n\nDefinitely the fix and marking the test as passing should be one patch,\nsince then you see that it is the fix which causes the test to pass. But\nreally, for a simple fix I usually just squash it all into a single\npatch. Then somebody looking at the patch later says \"Oh, this is what\nwas broken, and here is how it was fixed.\"\n\n-Peff\n"},{"id":"100440","messageId":"1231952603-32527-1-git-send-email-git@drmicha.warpmail.net","threadId":"17170","inReplyTo":"alpine.DEB.1.00.0901141653540.3586@pacific.mpi-cbg.de","subject":"[PATCH v2 0/3] Add test cases for \"git mv -k\" and fix a known breakage.","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T17:03:20Z","receivedAt":"2009-01-14T17:03:20Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"This adds test cases for the \"-k\" option of \"git mv\", including one\nknown breakage reported by Matthieu Moy <Matthieu.Moy@imag.fr> which\nappears when multiple untracked files are specified as consecutive\narguments. This breakage is fixed in the second patch and marked\n\"expect_pass\" in the last one.\n\nThe cumulative code/other ratio is 1 line/27 lines which I blame solely\non Dscho ;) Seriously, feel free to squash. But on the other hand: How\nelse can I see the beautiful \"1 known breakage fixed\" other than by\nhaving 2 and 3 separate in this series...\n\nThe patch is off master but builtin-mv.c hasn't changed since \n81dc2307d0ad87a4da2e753a9d1b5586d6456eed tags/v1.6.0-rc1~1, so I suggest\nthis patch for maint.\n\nMichael J Gruber (3):\n  add test cases for \"git mv -k\"\n  fix handling of multiple untracked files for git mv -k\n  mark fixed breakage as expect pass for \"git mv -k\" multiple files\n\n builtin-mv.c  |    1 +\n t/t7001-mv.sh |   25 +++++++++++++++++++++++++\n 2 files changed, 26 insertions(+), 0 deletions(-)\n"},{"id":"100442","messageId":"1231952603-32527-2-git-send-email-git@drmicha.warpmail.net","threadId":"17170","inReplyTo":"1231952603-32527-1-git-send-email-git@drmicha.warpmail.net","subject":"[PATCH v2 1/3] add test cases for \"git mv -k\"","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T17:03:21Z","receivedAt":"2009-01-14T17:03:21Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Add test cases for ignoring nonexisting and untracked files using the -k\noption to \"git mv\". There is one known breakage related to multiple\nuntracked files specfied as consecutive arguments.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n t/t7001-mv.sh |   25 +++++++++++++++++++++++++\n 1 files changed, 25 insertions(+), 0 deletions(-)\n\ndiff --git a/t/t7001-mv.sh b/t/t7001-mv.sh\nindex 575ef5b..5c1485d 100755\n--- a/t/t7001-mv.sh\n+++ b/t/t7001-mv.sh\n@@ -39,6 +39,31 @@ test_expect_success \\\n     grep \"^R100..*path1/COPYING..*path0/COPYING\"'\n \n test_expect_success \\\n+    'checking -k on non-existing file' \\\n+    'git mv -k idontexist path0'\n+\n+test_expect_success \\\n+    'checking -k on untracked file' \\\n+    'touch untracked1 &&\n+     git mv -k untracked1 path0 &&\n+     test -f untracked1 &&\n+     test ! -f path0/untracked1'\n+\n+test_expect_failure \\\n+    'checking -k on multiple untracked files' \\\n+    'touch untracked2 &&\n+     git mv -k untracked1 untracked2 path0 &&\n+     test -f untracked1 &&\n+     test -f untracked2 &&\n+     test ! -f path0/untracked1\n+     test ! -f path0/untracked2'\n+\n+# clean up the mess in case bad things happen\n+rm -f idontexist untracked1 untracked2 \\\n+     path0/idontexist path0/untracked1 path0/untracked2 \\\n+     .git/index.lock\n+\n+test_expect_success \\\n     'adding another file' \\\n     'cp \"$TEST_DIRECTORY\"/../README path0/README &&\n      git add path0/README &&\n-- \n1.6.0.6\n"},{"id":"100441","messageId":"1231952603-32527-3-git-send-email-git@drmicha.warpmail.net","threadId":"17170","inReplyTo":"1231952603-32527-2-git-send-email-git@drmicha.warpmail.net","subject":"[PATCH v2 2/3] fix handling of multiple untracked files for git mv -k","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T17:03:22Z","receivedAt":"2009-01-14T17:03:22Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"The \"-k\" option to \"git mv\" should allow specifying multiple untracked\nfiles. Currently, multiple untracked files raise an assertion if they\nappear consecutively as arguments. Fix this by decrementing the loop\nindex after removing one entry from the array of arguments.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n builtin-mv.c |    1 +\n 1 files changed, 1 insertions(+), 0 deletions(-)\n\ndiff --git a/builtin-mv.c b/builtin-mv.c\nindex 4f65b5a..bce9959 100644\n--- a/builtin-mv.c\n+++ b/builtin-mv.c\n@@ -192,6 +192,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)\n \t\t\t\t\tmemmove(destination + i,\n \t\t\t\t\t\tdestination + i + 1,\n \t\t\t\t\t\t(argc - i) * sizeof(char *));\n+\t\t\t\t\ti--;\n \t\t\t\t}\n \t\t\t} else\n \t\t\t\tdie (\"%s, source=%s, destination=%s\",\n-- \n1.6.0.6\n"},{"id":"100439","messageId":"1231952603-32527-4-git-send-email-git@drmicha.warpmail.net","threadId":"17170","inReplyTo":"1231952603-32527-3-git-send-email-git@drmicha.warpmail.net","subject":"[PATCH v2 3/3] mark fixed breakage as expect pass for \"git mv -k\" multiple files","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-14T17:03:23Z","receivedAt":"2009-01-14T17:03:23Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"The new tests pass now so mark them as such.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n t/t7001-mv.sh |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/t/t7001-mv.sh b/t/t7001-mv.sh\nindex 5c1485d..ef2e78f 100755\n--- a/t/t7001-mv.sh\n+++ b/t/t7001-mv.sh\n@@ -49,7 +49,7 @@ test_expect_success \\\n      test -f untracked1 &&\n      test ! -f path0/untracked1'\n \n-test_expect_failure \\\n+test_expect_success \\\n     'checking -k on multiple untracked files' \\\n     'touch untracked2 &&\n      git mv -k untracked1 untracked2 path0 &&\n-- \n1.6.0.6\n"},{"id":"100461","messageId":"7vbpu91zjf.fsf@gitster.siamese.dyndns.org","threadId":"17170","inReplyTo":"496E0D1C.20807@drmicha.warpmail.net","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-01-14T19:02:44Z","receivedAt":"2009-01-14T19:02:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> So, should I prepare a series like:\n>\n> 1: test case and mark known fail\n> 2: the 1 line fix\n> 3: mark test pass\n>\n> Or should 2+3 be squashed into one?\n\nIf \"git mv\" already has its own sets of tests with a good coverage, please\nstrive to add a case that covers your fix to an existing script.  Then\nstep #1 above would be a patch to add a few \"test_expect_failure\" tests to\nan existing file, and step #3 would be a patch to flip expect_failure to\nexpect_success.\n\nAnd in such a case, for a single liner, all three can be squashed in to a\nsingle patch.  It would show what changed in the code and have a few new\ntest_expect_success tests added to the test suite, and it would be obvious\nto anybody who looks at such a change 6 months down the road that the test\ncases added by the patch are the cases that did not work without the\nchanges to the code.  It never makes sense to separate steps #2 and #3 for\nany fix.\n\nIf \"git mv\" did not have adequate test coverage, then please add a test\nscript with both expect_success (for cases that should have been there\nwhen somebody worked on \"git mv\" originally), and expect_failure to expose\nthe bug you found in your first patch.  Again, the second patch would\nupdate the code and flip expect_failure to expect_success.\n\nI see there is t7001-mv and even though it claims to concentrate on its\noperation from subdirectory, it has tests for more basic modes of the\noperation.\n\nSo my recommendation would be to have a single patch that:\n\n (1) retitles t7001;\n (2) adds your new -k tests to it; and\n (3) adds the 1-liner fix.\n"},{"id":"100558","messageId":"496F15B4.2040104@drmicha.warpmail.net","threadId":"17170","inReplyTo":"7vbpu91zjf.fsf@gitster.siamese.dyndns.org","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-01-15T10:53:40Z","receivedAt":"2009-01-15T10:53:40Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Junio C Hamano venit, vidit, dixit 14.01.2009 20:02:\n...\n> If \"git mv\" did not have adequate test coverage, then please add a test\n> script with both expect_success (for cases that should have been there\n> when somebody worked on \"git mv\" originally), and expect_failure to expose\n> the bug you found in your first patch.  Again, the second patch would\n> update the code and flip expect_failure to expect_success.\n> \n> I see there is t7001-mv and even though it claims to concentrate on its\n> operation from subdirectory, it has tests for more basic modes of the\n> operation.\n> \n> So my recommendation would be to have a single patch that:\n> \n>  (1) retitles t7001;\n>  (2) adds your new -k tests to it; and\n>  (3) adds the 1-liner fix.\n> \n\nSorry to bother you again, even after your detailed reply, but I'm a bit\nconfused in multiple ways (I guess that makes for multiple bits...).\nFirst, you replied to my post, not my patch v2, but (time-wise) after my\npatch v2, so I'm not sure whether your reply applies to v2 as well or\nthat one is OK.\n\nSecond, I took the title of t7001 to mean \"mv into subdir\" or \"mv in and\nout subdir\" in order to distiguish it from \"mv oldname newname\", albeit\nin English that leaves room from improvement.\n\nThird, various parts of that test are in vastly different styles, and I\nhaven't found any test writing directions other than \"follow what is\nthere\", which leaves several alternatives. (Some use the test-lib repo,\nsome create their own underneath, some make assumptions about the\ncontents of \"$TEST_DIRECTORY\"/../.)\n\nFourth, t7001-mv is missing any test for \"mv -k\", and 2 of my 3\nadditional tests cover cases which work (pass) without the fix, which is\nwhy I kept it separate, being unrelated. Following all your arguments\nlead to the conclusion I should squash 2+3 (fix + mark expect_pass) -\nuntil I read your conclusion, which says squash all.\n\nI'm happy to follow any variant (\"1+2+3\", \"1 2+3\", \"1 2 3\", in\nincreasing order of preference) so there's no need to discuss or explain\nthis further, just tell me \"do x\" ;)\n\nCheers,\nMichael\n"},{"id":"100663","messageId":"7vr634qkjn.fsf@gitster.siamese.dyndns.org","threadId":"17170","inReplyTo":"496F15B4.2040104@drmicha.warpmail.net","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-01-15T22:19:40Z","receivedAt":"2009-01-15T22:19:40Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> I'm happy to follow any variant (\"1+2+3\", \"1 2+3\", \"1 2 3\", in\n> increasing order of preference) so there's no need to discuss or explain\n> this further, just tell me \"do x\" ;)\n\nDo nothing ;-) Your 1=3772923 and 2+3=be17262d are already in and we can\ninclude the fix in the next 1.6.1.X maintenance release.\n\nThanks.\n"},{"id":"100737","messageId":"vpqwscvjtni.fsf@bauges.imag.fr","threadId":"17170","inReplyTo":"7vr634qkjn.fsf@gitster.siamese.dyndns.org","subject":"Re: [BUG] assertion failure in builtin-mv.c with \"git mv -k\"","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2009-01-16T12:57:05Z","receivedAt":"2009-01-16T12:57:05Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n>\n>> I'm happy to follow any variant (\"1+2+3\", \"1 2+3\", \"1 2 3\", in\n>> increasing order of preference) so there's no need to discuss or explain\n>> this further, just tell me \"do x\" ;)\n>\n> Do nothing ;-) Your 1=3772923 and 2+3=be17262d are already in and we can\n> include the fix in the next 1.6.1.X maintenance release.\n\nThanks!\n\n-- \nMatthieu\n"}]}