Hi all,

I've been reading docs (good job done, BTW!) and experimenting a bit with 
git in the past days to get acquaintance with the new git workflow for Sage 
trac tickets.
There's a common situation I didn't find well described yet, and I wanted 
to ask whether my thoughts/my intuition is right.
(Hopefully it is OK do ask here on sage-devel and not on sage-git, where I 
possibly could have added the 35th or so post to that other "diff" thread : 
https://groups.google.com/forum/#!topic/sage-git/mbAH7xAia3Y .)
Assume the following resp., is it then OK to use the desribed recipe:

1. The current Sage version is (would be), say, "6.2".

2. I've got that in my local git Sage repo, especially the tag "6.2" is 
there listed (by "git tag --list").

3. I want to review some ticket #abcde from trac, the corresponding trac 
branch is u/johndoe/tracabcde

4. Now comes the important twist: that branch "u/johndoe/tracabcde" was/is 
based on some previous Sage version, say "6.1" instead of "6.2"!

5. According to the development docs ("Git the Hard Way / Checking Out 
Tickets") I would do:

git fetch trac u/johndoe/tracabcde


6. And then create a new branch, say "my_branch", to work (do the review) 
on, if I choose not to work "detached":

git checkout -b my_branch FETCH_HEAD


7. But since the "u/johndoe/tracabcde" branch misses everything that went 
into Sage in between 6.1 and 6.2, I suppose the first thing I now should do 
is: 

git merge --no-edit 6.2

(Note: As integrator, I would be "on" the master branch (e.g. "vanilla 
6.2"), and merge into this branch that other ticket u/johndoe/tracabcde 
branch. But merging in git is symmetric, so to check whether merging works, 
we can do it the other way around, "merging in" 6.2 into the ticket branch.)

8a. Assume the (automated in git) merge went fine, then one of the next 
things to do (among "sage -b", "sage -t", checking doctest coverage of 
canged/new files  etc.) is to visually inspect the exact diff output for 
the code that is added/changed/deleted by ticket #abcde:

git diff 6.2..


(or equivalently: 

git diff 6.2..my_branch
)

and if all is fine, I can give a positive review. Of course, in the review 
comment, I should comment clearly that the review was done *against Sage 
v6.2*.

8b.  Or else, assume the merge attempt does not succeed automatically. Then 
I might as a first step do the manual work necessary to complete the merge.
As a result, the local branch "my_branch" contains a rebased version (from 
6.1 to 6.2) of the changes that the trac ticket #abcde is about.

9. Now I would amend the commit message if necessary, and push the re-based 
changes back to trac (also changing the branch that ticket points to).

10. Ultimately, I could still give the original author (John Doe) a 
positive review for his part of the changes (i.e. the bulk of it), and 
possibly he (or a third person, of course) gives me a positive review for 
the 6.1 -> 6.2 rebasing part (non-trivial by assumption).
So the ticket might reach a "positive review" status nevertheless, although 
the original author (John Doe) did not himself "run behind and catch up" 
with every new Sage version that appeared after the original code was 
published to ticket #abcde.
And again, the ticket comments should say clearly that the work was done 
(re-)based to Sage version 6.2.


Let me emphasize that I consciously did not use the "master" branch 
directly in any way in the above description, because e.g. "sage -dev 
vanilla" drops me currently where I want, i.e. at tag "6.0.rc0", but "git 
branch --list" tells me that's detached from master (which is at tag 5.13 I 
suppose) ...


Thoughts?

I would be especially interested in a kind of "moving tag" named "CURRENT" 
or so, which is always identical to the latest official Sage release tag.
(So I could have written "git merge --no-edit CURRENT" and "git diff 
CURRENT.." in the above.)

Or is this already somewhere encoded in the dev scripts and described their 
documentation, and it was just me to not find it?


Cheers,

Georg

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to