Today I removed the svn:externals used in GeoServer app-schema-test to access test data from the GeoTools repository. This was always a bit nasty, as the right way to depend on other projects is via maven artifacts (I now get all the GeoTools app-schema test data from the GeoTools test jar). Getting rid of the svn:externals allows me to handle inter-project test data dependencies in my local maven repo, without manual copying or going through the svn repo.
One consequence of this change is that developers will be left with a stale external directory in an existing GeoServer svn working directory: src/extension/app-schema/app-schema-test/src/test/resources/test-data The presence of this directory will cause build failures. Please remove it if you have it. I like to look for non-version-controlled files with "svn stat". I just had to do this on our buildbot: rm -rf src/extension/app-schema/app-schema-test/src/test/resources/test-data Sorry for any inconvenience. One other advantage of the removal of svn:externals is improved support of DVCS such as git, especially through tools such as git-svn. I have reliable reports that svn:externals in GeoServer causes problems with DVCS interoperability. http://www.mail-archive.com/geoserver-devel@lists.sourceforge.net/msg08952.html See also the #geoserver log snippet below, in which Andrea convinces Ben of the merits of a DVCS and the problems with svn:externals, and gives some useful advice on how to use git-svn. (I recommend reading this to anyone contemplating branch maintenance.) - Can we use maven resource handling as a substitute for svn:externals? - Will this make it easier to use git for GeoServer branch maintenance? Kind regards, Ben. Appendix A: Discussion in #geoserver on freenode, in which Andrea convinces Ben of the merits of a DVCS and the problems with svn:externals, and gives some useful advice on how to use git-svn: [2010-05-26 14:44:56] <aaime> bencaradocdavies, wondering, is the use of app-schema resolver going to eliminate the usage of svn externals? [2010-05-26 14:46:55] <bencaradocdavies> aaime, no, but it will remove their size, as we should (in time) be able to remove all the schemas. [2010-05-26 14:47:20] <aaime> sigh, ok [2010-05-26 14:47:31] <bencaradocdavies> aaime, We still like to share mapping files between geotools and geoserver as they are such a pain to write. [2010-05-26 14:48:07] <aaime> I wonder if a jar dependency could be used... but yeah, it's my own personal problem, I work much better using git but it does not work with externals [2010-05-26 14:48:13] <aaime> so I have to keep the up to date manually [2010-05-26 14:48:35] <bencaradocdavies> aha, now I see the motivation. I was looking at git earlier this week. [2010-05-26 14:49:41] <bencaradocdavies> Let me think about it. I suppose we could ship test resources in a test jar, depend on that, then load them off the classpath. That would work. [2010-05-26 14:49:55] <aaime> Eh, lately I would have killed myself with it [2010-05-26 14:50:17] <bencaradocdavies> It was the schemas that were preventing this, as we had no support for loading them off the classpath while encoding. Now we do. [2010-05-26 14:50:19] <aaime> I've been working on some major new features and generally speaking have 4-5 concurrent branches of each trunk [2010-05-26 14:50:47] <bencaradocdavies> Ooh manual externals == pain. [2010-05-26 14:51:01] <aaime> each one of them needs to go through review so the old develop-commit-develop-commit cycle would have been broken solid for me if it wasn't for git local branching abilities [2010-05-26 14:51:31] |<-- walterdeane has left freenode (Quit: walterdeane) [2010-05-26 14:51:32] <aaime> generally speaking teh current attention on patch review made svn not a viable option anymore... [2010-05-26 14:51:54] <aaime> I cannot keep 5 different patch sets up to date with svn easily while I wait for a review on them... [2010-05-26 14:52:08] <aaime> but with git that is doable and not hard [2010-05-26 14:52:31] <bencaradocdavies> I have been getting away with svn diff | patch -p2 for branch maintenance, but it rapidly becomes horrible as branch and trunk diverge. I'd love to use git instead, so I am learning it. [2010-05-26 14:53:07] <aaime> yeah, the nice thing about git is that somehow it manages to rebuild the commit history with minimal conflicts [2010-05-26 14:53:10] <aaime> unlike patch [2010-05-26 14:53:53] <aaime> so you take a bit patch you did not work for a couple of weeks on, rebase, and most of the time the history gets rewritten with your commits at the end and with no conflicts [2010-05-26 14:54:02] <aaime> (bit -> big) [2010-05-26 14:54:13] <bencaradocdavies> And patch is completely useless when deleting or renaming files, and requires manual intervention when new files are added. A little operator error can easily break the build when a file is not svn added. [2010-05-26 14:54:59] <aaime> another thing I like is the fast ability to put aside what you're working on, switch to a branch that has completely different work going, and come back [2010-05-26 14:55:08] <bencaradocdavies> Getting ready to drink the DVCS Kool-Aid. :-) [2010-05-26 14:55:08] <aaime> with just a refresh in eclispe... it's fast [2010-05-26 14:55:24] <aaime> the thing is that I'm not root for git D abilities [2010-05-26 14:55:36] <aaime> but for its abilities to be a great svn client [2010-05-26 14:56:12] <bencaradocdavies> What is the size of a local repo for GT or GS? [2010-05-26 14:56:26] <aaime> I don't give a damn about the distributed part, I like the local branching, speed and history management abilities [2010-05-26 14:56:36] <aaime> smaller than a svn checkout [2010-05-26 14:56:44] <aaime> but I don't have full history [2010-05-26 14:56:54] <aaime> getting gt full history would take days [2010-05-26 14:57:05] <aaime> getting full gs history took like 8 hours [2010-05-26 14:57:18] <aaime> but you can instruct it to start from a certain revision, say one year ago [2010-05-26 14:57:23] <aaime> most of the time it's all you need [2010-05-26 14:58:38] <bencaradocdavies> That is nice. I was worried I'd be forced to get the entire history and fill up my poor little 60 GB SSD [2010-05-26 14:58:46] <aaime> nah, it's pretty efficient [2010-05-26 14:58:57] <aaime> a GS with full history is just slightly larger than a SVN checkout [2010-05-26 14:59:11] <aaime> (as far as I can remember) [2010-05-26 14:59:23] <aaime> but it's just too painful to grab (at least with my connection) [2010-05-26 14:59:55] <bencaradocdavies> He he, we have 10 Gbps all the way to the US. :-D [2010-05-26 15:00:18] * aaime barely reaches 4Mbits [2010-05-26 15:00:46] <bencaradocdavies> *pain* [2010-05-26 15:00:59] <aaime> now you know why I hate externals [2010-05-26 15:01:03] <aaime> they take forever to be handled [2010-05-26 15:01:33] <bencaradocdavies> It isn't your speed, it is the remote server per-query overhead. They take forever for me too. [2010-05-26 15:02:05] <bencaradocdavies> GeoTools has no externals and is much quicker. [2010-05-26 15:02:06] <aaime> I see... I thought it was a latency issue [2010-05-26 15:02:21] <aaime> yep, it is, despite being located on a slower server [2010-05-26 15:02:34] <bencaradocdavies> Well, I am assuming it is the per-query overhead. [2010-05-26 15:02:56] <aaime> can be, not sure, afaik svn has a very chatty protocol [2010-05-26 15:03:00] <bencaradocdavies> I think svn is optimised for one query with a lot of content. [2010-05-26 15:03:27] <aaime> he he [2010-05-26 15:03:33] <aaime> it's slow anyways :-) [2010-05-26 15:03:44] <bencaradocdavies> I have this nasty feeling that each external is a new connection. Or at least that is how it feels. [2010-05-26 15:03:57] <aaime> cloning a git repo is an entirely differen world -> designed for speed [2010-05-26 15:04:37] <aaime> (but making a git clone of an svn repo is of course just as slow as using svn) [2010-05-26 15:04:57] <aaime> (actually, much slower since git tries to get the whole history) Timestamps are AWST (UTC+8). -- Ben Caradoc-Davies <ben.caradoc-dav...@csiro.au> Software Engineering Team Leader CSIRO Earth Science and Resource Engineering Australian Resources Research Centre ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel