On 3/3/12 10:47 AM, Ivan Andrus wrote:
On Mar 1, 2012, at 4:49 PM, Keshav Kini wrote:
kcrisman<kcris...@gmail.com>  writes:
On Mar 1, 9:20 am, Keshav Kini<keshav.k...@gmail.com>  wrote:
The main thing I want for Sage's development process is a push/pull
architecture of some kind. I don't mind if that ends up meaning that we
finally start using Mercurial in the way it was "meant" to be used,

Using HG in this way has been a request for at least three or four
years, and probably since when Sage switched from darcs to hg.

Is doing all this stuff in Mercurial an option, especially for folks
like sage-combinat who have spent a lot of time taking people who are
*not* hard-core programmers, but want to do research math, up to speed
in hg?  This seems like a potential halfway point, assuming that there
is a site which would want to host this all - Sage seems so huge, I'm
kind of surprised even github would want to host it for free, though I
guess it's GPL...

I am very far from convinced that sage-combinat developers have been
learning anything substantial about *Mercurial*. Going by what I see on
the wiki pages about combinat, what a lot of time has been spent on is
taking people who are not hard-core programmers and teaching them how to
plant in and help to fertilize a colorful garden of *patch files*.

Learning git will be about equal to learning "real" Mercurial in terms
of head-scratching required, in my estimation (though of course I could
be wrong). Furthermore I intend to write a script called
$SAGE_LOCAL/bin/sage-dev which will walk people through the process of
using git to work on Sage - basically a "wizard", asking yes/no
questions and soliciting input with ample explanatory text - which I
believe will be pretty intuitive and simple, though we'll see how true
that is once I set out concrete design goals and ask for feedback.

For what it's worth, I have emailed the main sage-combinat developers a
little while ago and asked them for an overview of what I should keep in
mind when designing this SEP, so don't worry too much about
sage-combinat :) They will be kept informed at every step and included
in our planning discussions.

I'm not involved with sage-combinat so maybe this will be addressed in their 
work flow, but I have a question as to how one uses a version of sage with many 
patches applied.

For example, lets say that while using Sage I have found 4 (unrelated) bugs, 
one of which has a fix on trac that is being reviewed (or whatever).  Two of 
the others I fix myself and put up for review.  With a queue-based approach it 
is entirely trivial to have an instance of sage running that includes any 
combination of these fixes that I can use to test or (perhaps more importantly) 
do my actual calculations and research.  And at any point I can update any of 
the fixes and go right back to work.

I assume (since it's git) that there is some magic that will let me specify N 
branches and then merge them into an unnamed branch that I can then use to 
build and run the version I'm interested in.  Is this in fact possible?  Or 
rather, how much more difficult will this be than using queues?

git checkout -b mybranch
git pull trac-request-1
git pull trac-request-2
git pull trac-request-3

where trac-request-* are the URLS for the pull requests you'd like to apply (and that could include multiple commits in a single pull request---they are branches, not just single patches).

Jason

--
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to