Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.
Imagine you have three teams of developers, alpha, beta, and gamma. We're in the process of switching from CVS to Subversion (after which, Ovid will be seen skipping around the office singing "Ding, dong, the Witch is dead"). We have several layouts we're considering. The first is "group code" (note that the projects expect to share a bit of testing infrastructure code, but other than that, no code sharing is currently done):
svn://svn.example.com/trunk/alpha/module
svn://svn.example.com/trunk/beta/modul e
svn://svn.example.com/trunk/gamma/module
svn://svn.example.com/branches/alph a/module
... etc....
(Where 'module' is the name of each module we currently have in CVS)
Or we could group things like this:
svn://svn.example.com/alpha/module/trunk
svn://svn.example.com/beta/module/trun k
svn://svn.example.com/gamma/module/trunk
svn://svn.example.com/alpha/module/ branches
... etc....
Without going into our debate, can anyone describe pros and cons of each? There's actually a third we're considering which is like alpha/{trunk,branches,tag}/module.
Why alpha/beta/gamma? (Score:1)
Curious...
Re: (Score:2)
The concern is that the various code bases are wildly divergent, but with extremely similar names (e.g., ControlPanel), that it would be confusing. The long term goal is to merge what we can.
Re: (Score:1)
In that case I think it depends on whether you think you're going to be tagging/branching all of a teams work (in which case you want your first layout) or tagging/branching on a per-module bass (in which case you want the second).
The first layout also allows you to checkout an entire teams modules in one go, where with the second you would have to check out each trunk individually. I guess you could use svn:externals to get over that.
Since you're planning to merge I'd probably go for the second, s
Re: (Score:2)
Well, I don't the target is to completely eliminate those distinctions. It's to have common infrastructure code that we can all share, but we'd be keeping our overall code bases separate.
Re: (Score:2)
It allows each team to check out their entire repo, which is a good thing. It's also equivalent to the situation where you're not three teams under the same roof, but three teams in three different organizations periodically sharing code amongst yourselves:
Re: layout (Score:1)
While it's a different situation, when I was setting up my CPAN repository on googlecode, what I thought about was how I (or others) would use SVK to work with the code. What parts of the repository would I mirror locally?
Putting the trunk too high up would mean I'd be mirroring everything or else having to separately mirror a trunk, tags, and branches if I only wanted to work on a single module.
3rd Option (Score:2)
2nd or 3rd Option, depends... (Score:1)
I usually go for the 2nd option, but mainly because I write few modules for very separated projects. One comment above points out that 3rd option can be useful to check out the complete bunch of stuff for one's group, that could be cool. OTOH, I'd still stick to a solution in which the module name comes before its variants: