Subversion, and moving mousepad in?

Brian J. Tarricone bjt23 at cornell.edu
Thu Mar 3 21:29:16 CET 2005


Ok, this complicates things.

Auke Kok wrote:

> technical comments coming up, please read carefully as they will 
> influence the future layout:
>
> options available:
>
> 1. make one huge svn archive
>
> (    a. everything under its own tree
>     b. some things under a separate tree (core, plugins?)   )
>
> - pro: you can move everything everywhere
> - con: access control is hard: requires subversions pre-hook hack to 
> separate people in groups, then assigning them writeable space
>
> 2. make one svn repo per tree (module) (either grouping core or not)
>
> - com: moving is hard: you're physically moving between different 
> repos (although as far as I understand it's possible without problems).
> - pro: fine-grained access is easy (same way we do cvs perms at the 
> moment)
>
> 3. use http auth / webdav method
>
> - pro: huge fine-grained control possible
> - con: large overhead on permission administration
> - con: security (not using ssh)

I'm not a big fan of #1 if it means that fine-grained permissions will 
be hard.  I think #2 makes good sense - we rarely need to move files 
between modules.  After we figure out exactly what will go where, there 
probably won't be much of a need to do this.  #3 seems to really suck on 
the security front.  Is there no security at all?  WebDAV works over 
SSL, right?

I think we're looking at this the wrong way.  We need to come up with a 
list of requirements, and then figure out which setup best fits those 
requirements.  Here's my first stab at such a list:

* Flexible permissions.  We want to give translators access to (ideally) 
just their own .po files.  In the common case, this will mean 
restricting each translator to one file per module.
* Xfce devs should have commit access to all of the Xfce core component 
modules, but not other projects (xfmedia, mousepad, non-core panel 
plugins).  It would be nice if non-core maintainers could easily give 
commit access to others (that is, other people who already have commit 
access to other parts of the repo), but this isn't a necessity.
* Ability to group components.  It would be useful to be able to 
designate certain modules (e.g., libxfcegui4, xfwm4, xfce4-panel, etc.) 
as "core Xfce components", and be able to check out/update based on 
that.  Basically I want an equivalent to "cvs co xfce4" which grabs the 
core without getting, e.g. xfmedia.
* Ability to branch/tag some modules without touching the others.  
Related to this, the ability to tag/branch a series of modules (e.g., 
Xfce core) without having to issue a dozen commands and do each one 
individually.
* Easy file renames/moves within modules.
* CVS-like operation.  If we can't do everything with svn that we 
already do with CVS, what's the point?

So, unless I'm mistaken, the WebDAV solution is looking even more 
attractive.  Personally, I wouldn't mind spending a few hours setting up 
all the permissions, as long as the big time committment is just the 
up-front cost of initial setup, with later admin time being just to add 
or remove people from specific components/files later as the need 
arises.  But perhaps I'm missing something, and you can do all these 
things without WebDAV.

    -brian



More information about the Xfce4-dev mailing list