[Catalyst-dev] [RFC] ditch svn

Brandon Black blblack at gmail.com
Wed Apr 18 17:27:25 GMT 2007


On 4/18/07, Adam Jacob <adam at stalecoffee.org> wrote:
>
> On Apr 17, 2007, at 11:21 PM, Jonathan Rockway wrote:
>
> > I think it's pretty clear that Subversion is a failure for our
> > project.  We
> > use topic branches heavily, and that's just not something svn (or
> > really svk)
> > is designed for.
> >
> > I hearby propose that we switch to git.  I envision each project in
> > trunk to
> > be a separate repository.  That will allow us to easily manage commit
> > permissions, and keep branches sane (branching Catalyst-Runtime
> > need not
> > affect Catalyst-Plugin-Foobar).  I'm willing to setup and
> > administer All
> > Things Git if we decide to switch.
>
> Why not just reorganize trunk?  The fact that every project hosted in
> the
> Catalyst repository is all under a single repository is perhaps your
> real issue.
>
> Something like:
>
> Catalyst-Runtime/trunk
> Catalyst-Runtime/tags
> Catalyst-Runtime/branches
> ..
> ..
> ..
> Catalyst-Action-REST/trunk
> Catalyst-Action-REST/tags
> Catalyst-Action-REST/branches
>
> Would probably make more sense, in terms of repository management.
> It would
> also solve the permissions issues.
>

That does make it easier for someone to checkout a single project, and
it does make it easier to do permissions, but it doesn't solve the
other problem, which is long version histories.  They'll still all get
version-bumped when anything changes anywhere.

If you actually make them separate repos at the module-level, then
you've got an even worse problem: people who work on lots of modules
have to maintain tons of checkouts (or tons of svk syncs), whereas the
current situation is more ideal (svk sync one giant repo and you've
got everything).

Perhaps some hybrid approach could be used, where the some subset of
the Cat repo is forked off into only a small handful of new repos
(like "Core" for Runtime/Devel/Docs/etc, "Components" for separate
plugins/views/actions/etc, and "Other"[?] for all of the things in
there that don't start with Catalyst::), combined with the reversal of
trunk/PkgName to PkgName/trunk in each of the repos.

This kind of re-org comes at a high cost though.  It becomes difficult
for people to review history across the barrier, and even more
difficult to merge any branches that were in-progress at the time.

Git looks really interesting too.  I'd almost be inclined to say that
if one were to be making the kinds of disruptive changes above
anyways, why not go ahead and convert.  But the problem with
converting to git (aside from Windows), is that fewer people are
familiar with it, and even fewer really "get" git.  This would impede
the tons of contributions we rely on from the Common Everyday User who
makes a cool new plugin, etc; to whom even svk is a stretch because
they're not used to having to think about this stuff (and quite
frankly, they shouldn't have to).

-- Brandon



More information about the Catalyst-dev mailing list