I've fixed the git-svn tests for SVN 1.7 and tested with SVN 1.7.5. SVN 1.7
changed its expectations of path and URL formats and git-svn did not comply
with them. The new code uses SVN's own canonicalization routines where
available. This has been reported in several places...
It also split the internal classes out of git-svn.perl and into their own
modules in perl/Git/ to make them easier to work on. They compile alone, but
remain heavily intertwined with each other and git-svn. I didn't want to go
very far down that rabbit hole.
This makes the tests pass, but I'm pretty sure plenty of canonicalization
problems remain untested. Hopefully by attacking the problem at the root (ie.
in the Git::SVN and Git::SVN::Ra accessors) it will wipe out a range of
t9100-git-svn-basic.sh tests 11-13 continue to fail for what look like
unrelated reasons to do with SVN and symlinks.
There's a lot of work in this change, so I felt it better to submit the
patches as a link to a git repository rather than attach a pile of patches.
Here is my repository, the work is in the fix-canonical branch.
Here's a summary of what was done.
* Changed git-svn's main canonicalization routines to use SVN's API.
* Replaced other ad-hoc canonicalization routines with git-svn's
* Moved all the Git:: classes inside git-svn into their own .pm files
in perl/Git. They compile, but don't do much more than that alone.
They're still heavily dependent on git-svn. It's a start.
* Added Git::SVN->url, Git::SVN->path and Git::SVN::Ra->url to replace
code grabbing at hash keys.
* Made the above automatically canonicalize their path or url.
* Found some key locations which were not canonicalizing.
* Made the process of adding a new Perl module easier by having the
Makefile.PL scan for .pm files.
Alligator sandwich, and make it snappy!
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html