Under git version 126.96.36.199, which as of writing is the current in ubuntu 8.04 hardy heron, trying to split out a folder from a git repo where the repo was an import from subversion (svn), and the folder was renamed in the past causes a failure as show below:
#!/bin/bash -v rm -rf test-case mkdir test-case cd test-case/ svnadmin create svnrepo export repo="`pwd`/svnrepo" mkdir -p import/a echo '1' >> import/a/file.txt svn import -m 'initial import' import file://$repo/trunk/ svn co file://$repo/trunk/ checkout echo '2' >> checkout/a/file.txt svn ci -m "file modified" checkout svn mv -m "moving file" file://$repo/trunk/a file://$repo/trunk/b svn up checkout echo '3' >> checkout/b/file.txt svn ci -m "modified again" checkout svn log -v checkout mkdir -p gitcopy/a git svn clone file://$repo/trunk/ gitcopy/a cd gitcopy/a git filter-branch --subdirectory-filter a # <= FAILS cd ../../ mkdir gitcopy/b git svn clone file://$repo/trunk/ gitcopy/b cd gitcopy/b git filter-branch --subdirectory-filter b
The marked line above fails with the following error:
 Rewrite bcfe73ef303832b6112a2419dc1da5f782672c14 (3/3)fatal: Not a valid object name bcfe73ef303832b6112a2419dc1da5f782672c14:a
This has been fixed in the latest build of git:
and no longer fails.
The “fatal: Not a git repository” error message that filter branch produces doesn’t seem to matter.