Re: [SVN-MIGRATION] Steps for the SVN migration
[email protected] (Gwynne Raskind)
| Newsgroups | svn.migration |
|---|---|
| Message-ID | <[email protected]> |
On Jul 25, 2008, at 7:18 PM, Lars Strojny wrote: > 1.) Do we want to use mod_dav_svn or svnserve, the subversion daemon? > > Pro: > * Allows to browse the repository with a normal webserver, very > handy > * Allows to use mod_authz_svn for fine grained access (different > format from the current format, but easily to read) > * Is writable with normal WebDAV clients which might be a handy > feature for those, who do not want to bother with learning SVN > (those who do documentation translations, website updates, etc.) > > Contra: > * Might be slower > * Forces us to use Apache 2, which we, as I heard, currently do not > use I've always personally preferred svnserve. It has Authz support these days and I think PHP's Apache servers have enough to deal with as it is. > 2.) Single repository, multiple repositories. Do we want to use a > single > repository for all things PHP, including PEAR, PECL etc.? > > Pro: > * It is how it is currently > * Only one repository to maintain and administer (e.g. hooks are > configured for everything or for nothing) > > Contra: > * Multiple repositories might be easier to scale, as they can be > distributed on various hosts. Not sure if this is likely to become > an issue > * Easier to include new projects and to move current projects to > another hosts if the situation requires such a change > * One repository itself does not become that huge and can be shared > over partitions, discs (while this is possible with symlinking old > revision data too, it is not very handy) I much prefer splitting the top-level projects (pear, pecl, php-src, php-doc, everything else) into separate repositories. It both eases the conversion and allows for future expansion. I think it will simplify rather than complexify the hooks, and we can maintain the hooks for most projects in a kind of "meta" repository. CVS already effectively functions this way; SVN is geared a bit more towards having multiple repositories. It would also help with keeping SVN revision numbers from scaling into the hundreds of thousands within days. > 3.) Directory structure: We will have the classical layout > (branches/tags/trunk), but what about subdirectories in tags like > releases, and feature tags. What about a developer folder in > branches to > allow developer specific branches? I'd like to see some "outside the box" thinking here. SVN gives us the flexibility to use any structure we want. I wouldn't be averse to seeing php-src, for one example, look like this: php-src/ PHP_6/ PHP_5_3/ PHP_4/ release_tags/ old_branches/ developer_branches/ other_tags/ other_branches/ There's not even a trunk/ or HEAD/ in there, one might notice. Why should there be? svn's history-preserving copy and move commands also make management of such branches deceptively simple. > 4.) Do we want to sync to CVS in the first time with a hook to allow > use > to switch back just in case of an unforeseeable failure with the > Subversion repository? With a redesign of the directory structure as suggested above, this becomes difficult at best, requiring a manual mapping of SVN directories to CVS branches. But it could and probably should be done for at least a month's time post-conversion. We have the people to make it work. > Research > ======== > 2. What would be the alternative to mod_authz_svn if we decide to > use svnserve? svnserve now has native authz database support. > 3. How can we improve the speed of the conversion process to make > the outage of the tree as short as possible. Does Gwynne need > hardware help here, can we provide resources (machines) to > help? Definitely. This is a 2008 iMac running Mac OS X 10.5.4, 2.4 Ghz Intel Core 2 Duo, 2 GB RAM. It's fine for my personal purposes, but a project like this strains my CPU something awful. > 4. What scripts to work with CVS are there, how can they be > converted to work with Subversion? Off the top of my head, anything in CVSROOT, the cvsclean script in php-src. -- Gwynne, Daughter of the Code "This whole world is an asylum for the incurable."