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