[Shotwell] Want to contribute but I have some problems here and a question.
Bruno Girin
brunogirin at gmail.com
Tue Jun 22 04:46:52 PDT 2010
On Tue, 2010-06-22 at 13:10 +0200, ZedTuX ZedR00t wrote:
> Hi Bruno, and thanks for all your information.
>
> Just to be sure to be clear with you, in a first step I will not
> implement face recognition, but a feature to be able to define who is
> on the picture manually.
>
> I'm ok to work on a copy of the trunk and just put a svn diff in the
> ticket, but svn (and others) have the feature to create branches. Why
> shouldn't I create a branch that I maintain myself (merging) to do my
> work ?
The reason for this is that version control software generally use one
of two models:
1. centralised model like CVS or SVN
2. de-centralised model like git or bzr (Launchpad uses bzr)
In model #1, everything is kept in a central repository (in the case of
Shotwell that's the Yorba SVN repository) and any update or branch
actually affects that repository. This is well suited to situations
where you have a core development team or a single organisation that is
responsible for maintaining the software.
In model #2, there is no central repository (although there is usually a
trunk somewhere that holds the "official" version) and every contributor
can create his own branch without affecting anyone else. Branches can be
merged with one another easily and the software is generally packaged
from a well known branch: in the case of Launchpad, the software is
packaged from the Launchpad trunk branch. This is well suited to
situations like a lot of open source projects where there is no central
development team but a group of de-centralised contributors.
Having said this, Yorba use model #1 so in order to create a branch in
the SVN repository, you would need write access to that repository,
which only core developers have the ability to do. Furthermore, merging
back in model #1 is more complicated than with model #2 (which is
exactly the problem that Linus Torvald tried to solve when he created
git). In practice, when dealing with a source control system that uses
model #1, it is easier to create patches and let the core team integrate
those patches.
Now, if Shotwell starts seeing a lot more external contributions, it may
be sensible at some point to move to model #2 but for now model #1 is
more adapted.
I hope this explanation helps and wasn't too confusing :-)
Bruno
More information about the Shotwell
mailing list