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