diff options
author | Eric Wong <normalperson@yhbt.net> | 2006-02-17 21:04:47 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-02-18 01:22:39 -0800 |
commit | 0870321548806e85fbf1433a6e016fa3cc09d524 (patch) | |
tree | 3eac1410d8893ca30b70e51d205cee167be84dd7 /contrib | |
parent | 45d2b286acf4a1191e6199c41a034cb0677a0965 (diff) | |
download | git-0870321548806e85fbf1433a6e016fa3cc09d524.tar.gz git-0870321548806e85fbf1433a6e016fa3cc09d524.tar.xz |
git-svn: remove files from the index before adding/updating
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>
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/git-svn/git-svn | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/contrib/git-svn/git-svn b/contrib/git-svn/git-svn index 2caf0570f..71a8b3b2e 100755 --- a/contrib/git-svn/git-svn +++ b/contrib/git-svn/git-svn @@ -580,13 +580,12 @@ sub svn_info { 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'". - "| 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 $? } sub s_to_file { |