mailRe: Suggested faster development with Git, keeping GNA infrastructure


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Gary Thompson on July 24, 2013 - 15:59:


Hi


this may be of some use on the git vs svn debate

http://maymay.net/blog/2009/02/24/how-to-use-git-svn-as-the-only-subversion-client-youll-need/

regards
gary


On 07/24/2013 10:44 AM, Edward d'Auvergne wrote:
Hi Troels,

This is the second message, the positive one :)  I will start off with
repeating the end of the last message
(http://thread.gmane.org/gmane.science.nmr.relax.devel/4244/focus=4245).
 I think that switching to git is a good idea and I would personally
benefit from having a distributed version control system (writing code
on the train, plane, etc. would be much easier).  Switching to git has
been something that I have considered for many years now.  The reason
why relax still uses subversion is that git is not currently supported
by the Gna! infrastructure.  Note that a shift is also incredibly
disruptive, so a quiet period in relax's development is needed for
this to even be considered.  I consider the migration to git as a real
solution and that git-svn is just a distraction.

Now, for the suggestion of using the archived mailing list messages,
you should take note that the messages at
http://www.mail-archive.com/relax-commits@xxxxxxx/ do not always
appear.  This is also a problem at
http://dir.gmane.org/gmane.science.nmr.relax.scm.  I don't know why,
but at random times a message will not be archived.  It is quite rare,
but would be fatal for maintaining a separate git repository.  The
other aspect that would be fatal is that you can see that the revision
numbers are out of order in these archives.  The messages do not
appear in order and can be delayed by days.  We can, however, get the
relax-commits mailing list to push out emails to a dedicated email
address - partly resolving this issue.  There are still issues of the
automatic subversion hooks at Gna! sending the message to the
relax-commits mailing list.  I don't know if it is the svn hooks or
the mailing list archivers which are the cause of the missing or
delayed messages.

Also note that the subversion work flow described in
http://wiki.nmr-relax.com/Git_development is not correct.  This is the
work flow for a new developer.  For an accepted developer, the
subversion process is much simpler - write code, then commit.  Patch
review is not part of this process.  If a process is in place, there
should be no patches involved - it takes too much time.  Therefore the
figure http://wiki.nmr-relax.com/File:Git_development.png is not
correct, and one of the standard git-svn solutions might be
sufficient.  One problem with this git-svn process is branch
management.  For this, the developer maintaining a branch will require
their git repository, a copy of the branch in an svn checked out copy,
and the use of the svnmerge.py script to keep the branch in sync (via
the svn code).  These complications might outweigh the benefits of
using git.

The better alternative, as mentioned above, would be to have the
entire relax subversion repository migrated to git.  This might have
already have happened if the Gna! infrastructure supported git.  This
is not really a suitable solution for now, but having a wiki page in
the future describing the full migration might be useful for the
process.  Therefore my suggestion is to have the goal of getting Gna!
to support git.

Note that the Gna! maintainers are quite inactive - they only make
sure that the infrastructure continues to function correctly.
Therefore they have refused in past service requests to add this
feature.  But they have indicated in private discussions with
individual developers that they are happy to have someone join them to
help make some minor changes.  One of the key people to discuss this
with is zerodeux (http://gna.org/users/zerodeux).  You should know the
admins (http://gna.org/projects/admin), especially the names of the
top 3, as well as beuc (http://gna.org/users/beuc).  And also note
that Eric S. Raymond (http://gna.org/users/esr) is an admin (if you
don't know who this is, see
http://en.wikipedia.org/wiki/Eric_S._Raymond).  If you are interested,
persistent and competent enough, you may be able to join the Gna!
admins and set up git.  You don't have to be in the same league as ESR
for this ;)

But you should also research the history of the Savane project
(http://en.wikipedia.org/wiki/GNU_Savannah#Savane).  That Savane has
stopped development (http://gna.org/projects/savane/).  That there are
two incomplete derivative projects
(http://savannah.nongnu.org/p/savane-cleanup and
http://savannah.nongnu.org/p/savane), but that Gna! is running on the
old savane code.  You should also read about Gna!
(http://about.gna.org/) and know that Gna! is the European equivalent
of GNA Savannah (US-based), but that the Gna! philosophy is slightly
different - it is more 'free software' oriented than 'open source'
oriented.  Gna! is also smaller than Savannah, and less up to date (it
uses the old savane code and hence it has no git support, whereas
Savannah uses savane-cleanup and has git support).

There are some very big names in open source there, including the one
who pioneered the 'open source' philosophy.  So I would suggest to
first build up some trust.  This would be to first contribute code to
relax and to become an accepted developer.  Then the Gna! people will
take you more seriously.  I would also recommend that you try to set
up a project on Gna!, maybe with your original scripts (after becoming
a relax developer).  This is more as a permanent repository and
reference rather than an active project.  This will teach you a huge
amount about the open source infrastructure - and that the source code
repository is only a tiny part of this.  This is the infrastructure
behind SourgeForge, GNU Savannah, and Gna!  There is a lot to learn.
So maybe the suggestion of getting Gna! to support git, by becoming a
Gna! admin and upgrading the entire site (maybe with ESR helping) to
savane-cleanup, might be too much effort.

The git-svn way might be easiest, but first try to get the code out
and become a full relax developer.  Then the git-svn picture
(http://wiki.nmr-relax.com/Git_development) will be quite different
and much simpler.  I still think that git-svn would be a non-ideal
temporary solution.

Regards,

Edward



On 24 July 2013 01:54, Troels Emtekær Linnet <tlinnet@xxxxxxxxx> wrote:
Hi relax developers.

I would like to suggest yet another development possibility by using Git.

Motivation:
Subversion needs an online repository, to store each commits.
Subsequent calls to svn diff > patch will generate the difference
according to the last revision.
Therefore the development at the moment require to:
* make some lines of code
* make a path file and a commit message
* use the support tracker to upload patch and commit message
wait for acceptance
wait for commit to official repository
then do an svn update
then return to point 1

This takes time, and require that repository maintainer is online.
If the above scheme is not followed, the patch files will come out of sync.

I suggest to introduce yet another development possibility by using Git.

I do not suggest to shift away from the GNA! infrasctructure,
I merely suggest to use the powers of Git, to collaborate on a feature
development, before
releasing a patch for review and commit to SVN repository.

This is maintained by a server, who tracks the relax-commit messages at
http://www.mail-archive.com/relax-commits@xxxxxxx/

That server translates the history, and commits to github.

Here a range of developers can pull the latest changes.
Make feature branches. Share those branches.
Make edits online. Use android/iphone apps.
Work on trains/planes etc. Allowing offline commits.

When the feature is ready, easily make a patch file, and upload
to the GNA trackers.

The patch file contains all the commit messages, and
changes between each commit.

That should make it easy to review, and comment on.

Git also allow to squash commits and rewrite commits.
A feature highly appreciated, based on the review comments.

I have made a wiki page, from where we can start discussing.
Here I tried to make an image of my idea.
I am very skilled in MS paint. :-)

http://wiki.nmr-relax.com/Git_development

Best
Troels Emtekær Linnet

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel
_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel


-- 
-------------------------------------------------------------------
Dr Gary Thompson                  [Homans Lab Research Coordinator]

Astbury Centre for Structural Molecular Biology,
University of Leeds,
Leeds, LS2 9JT, West-Yorkshire, UK             Tel. +44-113-3433024
email: garyt@xxxxxxxxxxxxxxx                   Fax  +44-113-3431935
-------------------------------------------------------------------




Related Messages


Powered by MHonArc, Updated Fri Jul 26 14:20:07 2013