[Gdal-dev] RFC 2: Migration to OSGeo Subversion Repository

Daniel Morissette dmorissette at mapgears.com
Fri May 5 08:27:00 EDT 2006


Frank Warmerdam wrote:
> 
> Apparently you just copy the whole source tree from the "trunk" directory
> into an appropriately named directory under the "branch" directory.  No
> special commandline options or anything like that.  Apparently SVN
> maintains these copies efficiently (not copying actual data, just 
> pointers).
> 
> I haven't lived in that regime yet, but hopefully it will be straight
> forward.
> 
> CVS branches aren't really *all* that bad, and I've managed to handle
> work with them in mapserver.  But it took me years!
> 

I read a bit about SVN's branching methodology at 
http://svnbook.red-bean.com/en/1.1/ch04s02.html and my first reaction 
was "what a mess!". I mean it creates quite a mess over time if you 
expose all branches as new directories in the repository that are all 
checked out by default if you checkout the root of a project's repository.

My fear was confirmed by the following paragraph at the end of that page:
"Unlike many other version control systems, Subversion's branches exist 
as normal filesystem directories in the repository, not in an extra 
dimension. These directories just happen to carry some extra historical 
information."

I think I prefer CVS' way of handling branches as an extra dimension, 
but since everybody is going wild about SVN being better than CVS these 
days I guess I'll have to get used to it.



>> In the RFC you wrote:
>> "All source files in SVN will have the svn:keywords property set to 
>> "Id" by Frank after they are created."
>>
>> Does this mean that SVN doesn't use the "$Id: $" keyword by default 
>> and that any new files will need to have this flag set to it after 
>> it's been added to the repository?
> 
> 
> That is correct.  You need to mark files specially to tell them to
> expand special variables.  Bob Bray wrote up a bit of info on how to
> have SVN clients do some of this automatically for new files.
> 
>   https://mapguide.osgeo.org/subversionconfig.html
> 
> I imagine most of this would apply to us as well.
> 

Ouch! Are there not ways to control these defaults on the server side? 
It sounds a bit clunky to me to require that users/developers edit their 
default SVN config in order to get things working as expected.

If I understood correctly, if I don't edit my local SVN config and then 
create/commit a new file to the GDAL repository, then the auto props may 
not be set on it, and the "$Id: $" (for instance) would not be handled 
properly, is that right? If yes then I'm very disappointed.

With respect to the "$Id: $", should we not modify our std headers to 
use whatever is the SVN equivalent instead of relying on all developers 
maintaining their config locally to contain whatever auto prop the 
project requires for $Id: $ to work? I checkout CVS copies of projects 
to new systems all the time and I don't want to have to copy/edit my SVN 
config everytime I go to a new system.

Hopefully I misunderstood something and it's not really that bad.

Daniel
-- 
Daniel Morissette
http://www.mapgears.com/



More information about the Gdal-dev mailing list