I'm playing around with smudge and clean filters, and I've discovered
that they seem to completely break git-svn. When trying to fetch
commits A and B from the SVN repos, it will fetch A, and then clean(A)
is committed to my repository. Then when it tries to fetch B, it is
horribly confused - it complains of a checksum mismatch, since the
md5sums of the files in A in the SVN repos don't match up with the
md5sums of the files in the clean(A) commit in git land. Is this a
known problem? And, are there any work arounds other than just not
using filters when using git-svn? Could git-svn be made to accept the
md5sum of *either* A or clean(A) instead?
Thanks!
~Matt
PS - Please CC me if possible; I'm not subscribed
Hi Matt,
Matt Wozniski wrote:
When trying to fetch
commits A and B from the SVN repos, it will fetch A, and then clean(A)
is committed to my repository. Then when it tries to fetch B, it is
horribly confused - it complains of a checksum mismatch, since the
md5sums of the files in A in the SVN repos don't match up with the
md5sums of the files in the clean(A) commit in git land.
Interesting. Yeah, that sounds like a bug.
I am not convinced cleaning fetched files is the right thing to do in
the first place (why not just trust the SVN repo?), but I assume
people with workflows involving such filters could make a better call.
Is this a
known problem?
There is no test for it in git.git, so in that sense no.
Could git-svn be made to accept the
md5sum of *either* A or clean(A) instead?
I don’t think that would be right. It’s not just the md5sums not
matching that is the problem; it is that in these situations git-svn
and the SVN server do not agree about the file’s current content.
Once the code makes the semantics clear, I assume it should Just
Work™.
Good luck,
Jonathan