Re: [PATCH 1/2] t7001: add test for git-mv dir1 dir2/
- From
Junio C Hamano <junkio@cox.net>
- Date
- Jul 26, 2006, 18:23 UTC
- Message-ID
- <7virlkrzr4.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <9e4733910607261050k5f8d8d5dke5ded3a806b46f21@mail.gmail.com>
"Jon Smirl" <jonsmirl@gmail.com> writes:
Show 12 quoted lines
> An exact test case: > > git clone git foo > git clone git foo1 > cd foo > mkdir zzz > git mv gitweb zzz > cg diff >patch > cd ../foo1 > cg patch <../foo/patch > > This patch won't apply because zzz does not exist in foo1
A short and sweet reproduction recipe is essential for a problem report like this, and I appreciate it very much. "git mv" in "master" should do the right thing and I see Johannes fixing (or fixed) the problem of "git mv" failing in his version.
We should correctly handle cases that fit your general description (the test t/t4112-apply-renames.sh has a file in "klibc/arch/x86_64" which is renamed and copied to two different locations under "include/arch"). The above does not reproduce for me if I used "git diff HEAD >patch" in place of "cg diff" (I cannot make cg behave on my machine).
$ mkdir zzz $ ~/git-master/bin/git-mv gitweb zzz/ $ LANG=C LC_ALL=C find gitweb zzz -type f -print find: gitweb: No such file or directory zzz/gitweb/README zzz/gitweb/gitweb.cgi zzz/gitweb/gitweb.css zzz/gitweb/test/M??rchen zzz/gitweb/test/file with spaces zzz/gitweb/test/file+plus+sign $ git diff HEAD >patch $ git checkout -f HEAD $ LANG=C LC_ALL=C find gitweb zzz -type f -print gitweb/README gitweb/gitweb.cgi gitweb/gitweb.css gitweb/test/M??rchen gitweb/test/file with spaces gitweb/test/file+plus+sign find: zzz: No such file or directory $ git apply --index <patch $ LANG=C LC_ALL=C find gitweb zzz -type f -print zzz/gitweb/README zzz/gitweb/gitweb.cgi zzz/gitweb/gitweb.css zzz/gitweb/test/M??rchen zzz/gitweb/test/file with spaces zzz/gitweb/test/file+plus+sign
A couple of weeks ago test t/t4114-apply-typechange.sh was added by Eric Wong, and it caught cases where git-apply was assuming that leading directories of a new file already exists or was complaining when you create file "foo" and remove a file "foo/bar" (that is, you used to have directory at "foo"). The problems that test found were all fixed as far as I recall.