This fixes a bug when importing where a directory gets removed/renamed
but is immediately replaced by a file of the same name in the same
revision.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
sub sys { system(@_) == 0 or croak $? }
sub git_addremove {
sub sys { system(@_) == 0 or croak $? }
sub git_addremove {
- system( "git-ls-files -z --others ".
+ system( "git-diff-files --name-only -z ".
+ " | git-update-index --remove -z --stdin; ".
+ "git-ls-files -z --others ".
"'--exclude-from=$GIT_DIR/$GIT_SVN/info/exclude'".
"'--exclude-from=$GIT_DIR/$GIT_SVN/info/exclude'".
- "| git-update-index --add -z --stdin; ".
- "git-ls-files -z --deleted ".
- "| git-update-index --remove -z --stdin; ".
- "git-ls-files -z --modified".
- "| git-update-index -z --stdin") == 0 or croak $?
+ " | git-update-index --add -z --stdin; "
+ ) == 0 or croak $?