[Biojava-dev] [Biojava-l] should biojava svn be moved to github ?

Spencer Bliven sbliven at ucsd.edu
Wed Aug 8 08:03:26 UTC 2012


I thought people here might be interested to know that Rosetta is currently
switching from SVN to GIT. They have a pretty complicated build
configuration, but GIT seems up to the challenge. They had an interesting
list of benefits drafted on the internal Baker
wiki<http://docu.bakerlab.org/doku.php?id=proposed_changes:switch_to_git>I
thought would be interesting to share:

End User ( You only use the binaries)

   - Your database version will always match the binary version ( so no
   more segfaults because your database is different)
   - You can switch to other people's patched databases easily!

 Infrequent Developers( A commit every so often )

   - Everything from End User applies
   - You can update every day *SAFELY*
   - You can work locally, and never actually commit your changes if you
   don't want to ( but still benefit from having version control, rollbacks,
   etc.)
   - You benefit from other people's uncommited changes( see below )
   - Committing your small change is much easier because you don't
*MERGE*with trunk, you
   *PATCH **ON TOP* of trunk
   - Workflow stays pretty much the same

 Frequent Developers

   - Everything from Infrequent Developers applies
   - You can create many local branches, one for each feature or bugfix
   - When you commit, you commit a whole branch at a time, which makes
      reading history very easy
       - You can update your local branch on *TOP* of the trunk
   - By applying your local branch as a series of patches, conflict
      resolution is MUCH easier (no enormous merge conflict resolutions)
       - Everyone's local branch is completely visible to you, allowing you
   to share uncommited changes very easily
   - Workflow changes quite a bit, but for the better

 Repository Manager

   - Other than setting up initial users, you don't have to do anything
   - Automated testing handles rejections of commits


Cheers,

Spencer



On Fri, Aug 3, 2012 at 8:54 PM, Spencer Bliven <sbliven at ucsd.edu> wrote:
>
> I'm all for it, provided (as others have mentioned)
>
> Eclipse support is now good enough for day-to-day stuff (maybe falling
back to command line for complicated merges and branches)
> It integrates with Maven for releases
>
> I was also slightly concerned with the overhead of storing the full git
repository. Surprisingly, a git checkout doesn't have that much more
overhead than a SVN checkout, despite storing full histories for each file.
>
> Biojava trunk checkout
> Bare files: 29MB
> SVN checkout: 60MB (107% overhead)
> GIT checkout: 74MB (155% overhead)
>
> However, GIT did take substantially longer to download from github than
SVN took from the biojava server. Since server speeds likely differ
significantly, that's not apples-to-apples, but it might be realistic.
>
> SVN checkout: 1m9.333s
> GIT checkout: 4m50.871s
>
> Overall I'm in favor of making the switch.
>
> -Spencer
>
>
>
>
> On Fri, Aug 3, 2012 at 4:11 PM, Michael Heuer <heuermh at gmail.com> wrote:
>>
>> Thanks, Andreas, that is a good document.
>>
>> One problem we might face is that some of the repository operations
>> are performed by the maven release plugin itself and then we're at the
>> mercy of the implementers of that plugin to have done it correctly.
>>
>>    michael
>>
>>
>> On Fri, Aug 3, 2012 at 6:00 PM, Andreas Prlic <andreas at sdsc.edu> wrote:
>> > Hi Michael,
>> >
>> > About the question how to cut a release from a distributed repository:
>> > I found this article an interesting read:
>> >
>> > http://nvie.com/posts/a-successful-git-branching-model/
>> >
>> > Andreas
>> >
>> >
>> > On Fri, Aug 3, 2012 at 8:57 AM, Michael Heuer <heuermh at gmail.com>
wrote:
>> >> -0
>> >>
>> >> I use github for quite a few personal things and mercurial via Google
>> >> Code on a different project and while I think there are some benefits
>> >> to the distributed model I don't understand how it would work from the
>> >> point of view of a release manager.  Does anyone have any pointers to
>> >> documentation on how to manage and cut a release from a distributed
>> >> repository?
>> >>
>> >> With the current svn mirror on github, developers can already fork and
>> >> create pull requests, they just need to be applied back to the svn
>> >> repository.  Is there any advantage to moving the repository to
>> >> github?  Are there any people who will start contributing because the
>> >> repository is on github that are unwilling to do so with the current
>> >> model (send patches to the mailing list or issue tracker)?
>> >>
>> >> My current client just started a new project on Google Code and we had
>> >> a similar conversation:  subversion on Google Code vs. git/mercurial
>> >> on Google Code vs. git at github vs. subversion on Google Code + read
>> >> only git mirror at github vs. subversion on Google Code + read/write
>> >> git mirror at github.  In the end we went with subversion on Google
>> >> Code with possibility of git mirror later because we understand how
>> >> the Maven release process works with subversion and we liked the issue
>> >> tracker at Google Code a lot better than the one at github.
>> >>
>> >>    michael
>> >>
>> >>
>> >> On Thu, Aug 2, 2012 at 11:14 PM,  <daniel.quest at gmail.com> wrote:
>> >>> Github ==awesome.
>> >>> Go for it and let the social coding begin
>> >>>
>> >>> Dan
>> >>>
>> >>> Sent from my iPhone
>> >>>
>> >>> On Aug 2, 2012, at 10:11 PM, Hannes Brandstätter-Müller<
biojava at hannes.oib.com> wrote:
>> >>>
>> >>>> On Fri, Aug 3, 2012 at 1:52 AM, Andreas Prlic <andreas at sdsc.edu>
wrote:
>> >>>>> Hi,
>> >>>>>
>> >>>>> I was wondering how people feel about migrating the BioJava  svn
>> >>>>> repository and starting to use github for the trunk development?
>> >>>>> (Currently github is only a read-only copy of our developer svn).
>> >>>>>
>> >>>>> Any opinions?
>> >>>>>
>> >>>>> Andreas
>> >>>>
>> >>>> I'm in favor - git pull requests make submitting patches so much
easier, IMHO.
>> >>>>
>> >>>> Hannes
>> >>
>> >> _______________________________________________
>> >> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
>> >> http://lists.open-bio.org/mailman/listinfo/biojava-l
>>
>> _______________________________________________
>> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/biojava-l
>
>




More information about the biojava-dev mailing list