As most of you know on 1/26 Sourceforge engineers detected a successful
attack on their CVS services. SF is in the process of validating the
data and securing the systems. Everything is back up, except for CVS
which should return by the end of the week.
SF has mentioned they are considering retiring CVS and having projects
move to SVN or GIT. I've never personally used GIT, but am comfortable
with SVN. Mattias and Nick are both more active than me lately and
prefer GIT (correct me if I'm wrong guys).
I would prefer Git either CVS or SVN going forwards. Incidentally,
when I gave a talk on XMLTV to a local Perl Mongers meeting last year
the usage of CVS and lack of Git was seen as a likely barrier to new
developers ("CVS - what's that?"...). Whether this is actually the
case I don't know (and doubt to an extent), but with more and more
active developers using Git - and other distributed VCS software -
coupled with the ease at which you can throw code around in git, I can
see their point. The linear and segregated development of XMLTV lends
well to the current CVS usage (as Davide mentions, although I disagree
about his revisioning comment) and it's not a surprise that existing
developers are comfortable using it.
I do wonder that if there is a hesitancy for new developers to
contribute, whether that hesitancy is brought about because of
i) the need to learn a VCS they are not familiar with; or
ii) the inflexibility of CVS compared to git that will restrict their
ability to play with the code
My question to all the developers out there, does anyone have a strong
feeling against GIT, if so why?
Here are some of my thoughts in support of a move to Git (or keeping
the status quo) and against a move to Subversion:
If there is a change of versioning system, moving to Subversion rather
than Git (or another distributed VCS) would be a backwards move in my
opinion. The project would still suffer from the same central
repository problem that the current CVS deployment does, and the
benefits of SVN over CVS for a project with the commit activity of
XMLTV would be negligible at best (again, IMO based on my XMLTV
development experience).
SVN: same disadvantages as CVS, no real advantages, not worth the effort.
Git: new, so devs would need to learn to use it, real advantages,
worth it (both now and in the longer term).
i) Moving to Git gives everybody who clones the repository a local
copy of the entire development history, which can be worked on and
committed to even when offline.
ii) Committing to SF Git would be a two command process (git
commit...; git push ...), rather than the current single command (cvs
commit ...) required at present. Not exactly a burden.
iii) The additional disk space requirement for a git clone of the
XMLTV repository is negligible in absolute terms (an increase of ~5MB
over the 10MB used for a particular CVS checkout).
iv) As Chris noted, the benefit of moving to Git is the option of
having online mirrors of the primary Git repository that can be pulled
from or pushed to as necessary.
v) Git commits are cryptographically signed, which means it is
impossible to change existing code without alarm bells going off. One
of the key reasons for the delay in SF getting the CVS service back
online was due to the lack of such support making data validation a
much more significant effort.
vi) Git is available on most platforms including Linux, Mac and Windows.
vii) This week's SF CVS outage is the only major issue I can remember
since I started contributing some years ago, and I think it would be
good to continue to use SF's services for the project. I would suggest
moving across to SourceForge's Git service (if we are going to change
VCS) and keeping one or more mirrors (Github, etc) that are kept in
sync and can be used as backups if SF suffers any future outages.
I don't want to see developers abandon their code over this.
Me neither. CVS seems to have served the project well over the years,
and if there is no overriding feeling to move away from it, that's OK.
I wonder from time to time how many XMLTV developers contribute to
other projects and whether they are asking the same question.
I guess the CVS vs SVN vs Git issue will just turn into a variant of
the age-old "Why doesn't the project have a forum instead of a mailing
list" question.
Cheers,
Nick
--
Nick Morrott
MythTV Official wiki: http://mythtv.org/wiki/
MythTV users list archive: http://www.gossamer-threads.com/lists/mythtv/users
"An investment in knowledge always pays the best interest." - Benjamin Franklin