[Koha-devel] Re: distributed VCS, some thoughts.
Kyle Hall
kyle.m.hall at gmail.com
Fri Mar 16 18:46:22 CET 2007
I've been chatting with kados, and he suggested I get some feedback from
Jerry.
It seems that if we switched to git we would need someone full-time just
managing commits from the way I read Jerry Van Baren's post. It seems like
the koha community, though dedicated, just isn't big enough to absorb the
cost of losing development time to managing source code control. I doubt
there are many programmers out there that would prefer to be managing the
code they've written rather than writing more code ; )
What leads me to these conclusions is the whole hierarchy of 'pull' rather
than push. It means that at each level of development, say me->chris->josh,
everyone except the first person (me ) has to actively pull changes from the
level below them. Please correct me if I am mistaken.
Kyle
On 3/16/07, Jerry Van Baren <gerald.vanbaren at smiths-aerospace.com> wrote:
>
> Paul POULAIN wrote:
> > thinking of it, I was wondering wether a distributed VCS should be
> > considered as a "Release Manager" oriented VCS.
> >
> > I explain : unless i'm mistaken, it means :
> > - kados is the RM
> > - paul & chris are working on some feature
> > - paul "commit" the feature to kados repository, who will accept it (or
> > how is he warned that I made something ?)
> > - chris update his copy from kados one.
> >
> > iiuc, a D-VCS is in fact a RM-VCS to my mind. Thus the question : do we
> > have a RM that can afford that task/responsability ?
> > Once again, I may be mistaken, but i'm a little bit less enthusiasm if
> > i'm right...
>
> This is where a D-VCS *really* shines (at least git, probably the others
> as well). The advantages of D-VCS is that you have not only branches
> but also replicated repositories to work with. The following is how
> things work with linux and git. It may apply to other D-VCS, but I
> don't know.
>
> You have a development master repository. For linux, it is Linus
> Torvald's on kernel.org. For Koha, this likely would be the 3.x
> development one. Only Paul Poulain (or whoever is the development
> master) does commits into this repo. Paul and Chris would have their
> own feeder repos and _ask_ Paul to pull changes, they would not
> (normally) push changes into the RM repo.
>
> The RM (Kados) also has a master repository. Bugfixes and also any
> backporting of new features get pulled into the repository by Kados.
> Pulls is the norm, pushes are generally not done.
>
> You then have feeder repositories that the master maintainer (Paul for
> the development repo, Kados for the release repo) pulls improvements
> from after they've been vetted. This would be Paul & Chris & everybody
> else in a hierarchy.
>
> All the koha developers then have their local working repository, which
> is a clone of the master + "value added". In the local repository, they
> pull changes from the master RM repo to keep up to date, as well as
> doing their local work. If another feeder repo has a change they
> want/need, they can pull that change directly from the feeder repo
> (including "cherry-picking" changes). Since git keeps track of changes
> by their hash name, when the master RM repo picks up a feeder's change,
> the local repos that already have that change just say "been there, done
> that, fast forward" and life is good. Otherwise a merge is done and
> life is still good (except for a collision, but that is unavoidable and
> is no different than what happens with CVS/SVN).
>
> Local changes are source controlled in the local repo - something I've
> never succeeded in doing well with CVS/SVN, but is transparently trivial
> with git. When a local change is considered ready for inclusion, by
> convention a branch is created in the local repo with a distinctive name
> and the appropriate upstream repo owner is notified (traditionally by
> posting a patch on the developers' email list so everybody can review
> the change). The upstream repo owner then pulls the change into the
> upstream repo, ultimately ending up in the master RM repo (or the "new
> HEAD" repo) and spreading back out over the world from there.
>
> Poor ASCII-art diagram:
>
> backport
> Development --------> Release
> ^ ^ ^ ^
> | \ _______/ /
> | \ / _____/ bugfixes
> feeder1 feeder2 /
> ^ ^ ^ ^ ^ /
> / |/ | \ /
> dev1 | dev3 dev4
> dev2
>
> (I tried to make a line from "dev2" into both feeder1 and feeder2 - the
> tree need not be a strict hierarchy. Dev2 can generate a change that
> gets pulled into both feeder1 and feeder2 and subsequently into
> Development with no confusion - if feeder2 gets pulled into Development
> first, the duplicate in feeder1 will be identified and "fast forwarded.")
>
> HTH,
> gvb
>
>
> _______________________________________________
> Koha-devel mailing list
> Koha-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/koha-devel
>
--
IT Tech
Crawford County Federated Library System
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-devel/attachments/20070316/5af4df30/attachment-0002.htm>
More information about the Koha-devel
mailing list