Hi, this is my first post to this list and I'm not subscribed, so please CC me when answering.
I'm investigating how to improve using git-svn with svn-externals, either with an additional script or directly in within git. In any case I would need git-svn to display the externals. There is "git svn propget", but there is no "recursive" parameter yet. A long time ago "git svn show-externals" was written, which gets the svn:externals property recursively and does some very crude processing. Unfortunetly it can only deal with the pre 1.5 format for svn:externals. Since external definitions are quite complex by now, with the old and new format, with comments and empty lines, (peg) revisions, relative and absolute URLs, it would be nice to get a parsed form of these externals with the URLs already resolved and the order always the same irrespective of whether the actual definitions are in the old or the new format. The obvious way to get those parse external definitions would be through the language bindings. I looked at the python bindings for example, but didn't find anything of the likes. In the case of git-svn, they use the perl bindings, but I guess it is a similar story there. I have the following questions: 1) Is there a way to leverage an existing svn:externals parser through the language bindings (and I have been unable to find it)? 2) If not, would it be easy to add this to the language bindings? A quick look at hgsubversion indicates that their handling of svn:externals is far more sophisticated that that of git-svn at the moment, but even in their code they mention that they don't support escaping of special characters in paths, like spaces for example (this was introduced in svn 1.6, I think). So in any case it would be hard and error prone, if every tool that wants to deal with externals has to write a parser itsself. Also, the documentation on the special cases and all the details is not so easy to find. The svn book explains it from a user perspective, but doesn't give a full specification of the exact format. The most accurate and concise description is maybe "svn help propget", but even there some things are missing, e.g. that empty lines and trailing/perceding white space seems to be allowed etc. I hope someone can give me some insight in the matter. Currently the simplest way to get my svn repository with many externals working nicely in git, is to first use hgsubversion to create a mercurial repo and then export that to git using hggit. I hope thats not the end of the story... Best, Nikolaus Demmel