Since the normalized basename of "." is "", the check for directory failed erroneously. Noticed by Fredrik Kuivinen. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- > Subject: Re: Another git-mv bug ... and another fix. On Fri, 18 Aug 2006, Fredrik Kuivinen wrote: > In a Git repository: > > $ git mv templates/info--exclude . > fatal: renaming templates/info--exclude failed: No such file or directory builtin-mv.c | 5 ++++- t/t7001-mv.sh | 4 ++++ 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/builtin-mv.c b/builtin-mv.c index c0c8764..b2ecc26 100644 --- a/builtin-mv.c +++ b/builtin-mv.c @@ -114,7 +114,10 @@ int cmd_mv(int argc, const char **argv, modes = xcalloc(count, sizeof(enum update_mode)); dest_path = copy_pathspec(prefix, argv + argc - 1, 1, 0); - if (!lstat(dest_path[0], &st) && + if (dest_path[0][0] == '\0') + /* special case: "." was normalized to "" */ + destination = copy_pathspec(dest_path[0], argv + i, count, 1); + else if (!lstat(dest_path[0], &st) && S_ISDIR(st.st_mode)) { dest_path[0] = add_slash(dest_path[0]); destination = copy_pathspec(dest_path[0], argv + i, count, 1); diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index e5e0bb9..b7fcdb3 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -82,4 +82,8 @@ test_expect_failure \ 'do not move directory over existing directory' \ 'mkdir path0 && mkdir path0/path2 && git-mv path2 path0' +test_expect_success \ + 'move into "."' \ + 'git-mv path1/path2/ .' + test_done -- 1.4.2.ge0502-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html