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 Edward d'Auvergne on July 25, 2013 - 15:08:
Hi,

True, the authors are not correct in the git repository.  But the 'git
svn dcommit' results in correct authors in the master subversion
repository.  But the '-A authors.txt' option is still useful.  Maybe
would could create a shell script (to go in devel_scripts/) which
would correctly 'git svn clone' targets in the relax subversion
repository and add all the authors correctly?  I.e. the authors are
not in authors.txt but all listed in the command line for the script.

For access to the full history in git, this runs for many, many hours,
or possibly days.  It's too much of a strain on the Gna!
infrastructure.  If there is a full migration from subversion to git
one day, then this can be done using an offline version of the
repository.  That should speed up the process by many orders of
magnitude and avoid the huge infrastructure strain.

As for the revision number in the relax log, so you mean when you type
'git log'?  For the latest commit in the relax_disp branch, I see the
revision number on the git-svn-id line:

-----
commit 029fe3b8f1495c733a5020c382a71cf12ae97190
Author: bugman <bugman@b7916896-f9f9-0310-9fe5-b3996d8957d5>
Date:   Thu Jul 25 11:37:36 2013 +0000

    Fixes for the clustering display in the GUI.

    This is for the relaxation dispersion GUI analysis tab.

    git-svn-id:
svn+ssh://svn.gna.org/svn/relax/branches/relax_disp@20477
b7916896-f9f9-0310-9fe5-b3996d8957d5

-----

This seems to be reasonable.  It has the git SHA key, a svn SHA key
(no idea where that came from), and the svn revision number.

Cheers,

Edward



On 25 July 2013 14:26, Troels Emtekær Linnet <tlinnet@xxxxxxxxx> wrote:
Hi Edward.

I have read your concerns, and have it mind. I am happy that you are open to
try it out, since i think trying is the only way to address problems
occuring.

When you do, gitk, or, git log, is the author or svn user history correctly
translated? Maybe you need to do a clone with, -A authors.txt

If you push the full history to a git rep, other users could skip the
lenghty svn clone step, and just clone from the git rep. You can practice at
bitbucket or github with our own account. Note, when you start relax, it is
unable to extract the revision number to the relax log. It should be
replaced with the git SHA key.
If each developer have online rep, they can benefit of developing a feature
branch, and still pull intermediate push to svn server, before making patch
or, git svn dcommit

Best
Troels

Hi Troels,

For my relax commits I will, from now on, use git-svn as a live
experiment.  I have worked with other git repositories before, so it's
more to see how the relax subversion repository can be managed.  I
will still have to use the svnmerge.py script for the relax_disp
branch, as I cannot find a git-svn solution for that.  I tried to set
up a git repository with all of relax's history with:

$ git svn clone svn+ssh://bugman@xxxxxxxxxxx/svn/relax -T 0.1 -T 0.2
-T 0.3 -T 1.0 -T 1.1 -T 1.2 -T 1.3 -T trunk -b branches -t tags

But this was taking an insanely long time and I had to terminate it!
There are just too many tags - relax has been around for 13 years and
it is quite a complex piece of code - and this command downloads the
subversion history going all the way back to r1 for each tag and
branch, one by one.  So instead I'll just 'git svn clone' the trunk
and the branches:

$ git svn clone svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk relax-trunk
$ git svn clone svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/relax_disp

I'll use local commits with one of:

$ git commit
$ git commit -a

And then push back the collection of commits to the subversion
repository, when ready, with:

$ git svn dcommit

This appears to be working ok for now.  Oh, and use:

$ git svn rebase

to get all changes from the subversion repository (and the other
git-svn commands when needed for branching, etc.).  I look forward to
seeing some conflicts :)  What are the advantages of instead pulling
from the Github code (at https://github.com/nmr-relax/relax_trunk,
https://github.com/nmr-relax/relax_scripts,
https://github.com/nmr-relax/relax_disp), that the above git-svn work
flow does not address?

Cheers,

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



Related Messages


Powered by MHonArc, Updated Fri Jul 26 14:00:08 2013