#18618: sandpile revisions
-------------------------------------+-------------------------------------
       Reporter:  dperkinson         |        Owner:
           Type:  enhancement        |       Status:  positive_review
       Priority:  major              |    Milestone:  sage-6.8
      Component:  graph theory       |   Resolution:
       Keywords:  sandpile           |    Merged in:
        Authors:  David Perkinson    |    Reviewers:  Qiaoyu Yang, Kaui Yu
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  public/sandpile_updates            |  249b64720653fdd434e76336b442c1bbd5b6fe2c
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by dperkinson):

 Wow.  That's pretty complicated.  Thanks for your help.

 Just to make sure: if I am understanding correctly, you have just done
 everything that needs to be done for the moment.  In other words, the
 rebasing is done, right?

 In case further revisions are necessary, would it make sense for me now to
 start from a clean slate on my local machine, following the directions on
 the git-trac page (making sure to clone into a separate clean directory)?

 Thanks again.

 Replying to [comment:48 dimpase]:
 > As it is longer to explain how to proceed than to do it myself, I record
 steps I undertake;
 > please feel free to ask for explanation.
 > Start by cloning a clean Sage 6.8.beta8 (described in the manual). Go to
 its root, and do
 >
 > {{{
 > $ git fetch trac u/dperkinson/sandpile_revisions
 > From trac.sagemath.org:sage
 >  * branch            u/dperkinson/sandpile_revisions -> FETCH_HEAD
 > clpc171[/home/scratch/dimpase/sage/tmp]$ git merge FETCH_HEAD
 > Auto-merging src/sage/sandpiles/sandpile.py
 > CONFLICT (content): Merge conflict in src/sage/sandpiles/sandpile.py
 > Automatic merge failed; fix conflicts and then commit the result.
 > clpc171[/home/scratch/dimpase/sage/tmp]$ git status
 > On branch newsp
 > You have unmerged paths.
 >   (fix conflicts and run "git commit")
 >
 > Changes to be committed:
 >
 >       modified:   src/doc/en/thematic_tutorials/sandpile.rst
 >       modified:   src/sage/sandpiles/all.py
 >       new file:   src/sage/sandpiles/examples.py
 >
 > Unmerged paths:
 >   (use "git add <file>..." to mark resolution)
 >
 >       both modified:   src/sage/sandpiles/sandpile.py
 > }}}
 >
 > ok, so we need to sort out the conflict (cf. e.g.
 https://help.github.com/articles/resolving-a-merge-conflict-from-the-
 command-line/)
 >
 > serach for `HEAD` in the output of the following:
 >
 > {{{
 > $ git blame  src/sage/sandpiles/sandpile.py
 > ...
 > 00000000 (Not Committed Yet     2015-07-13 15:28:41 +0100  598) <<<<<<<
 HEAD
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  599)
 processed_g = {}
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  600)
 for k in g.keys():
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  601)
 temp = {}
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  602)
 for vertex in g[k]:
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  603)
 temp[vertex] = 1
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  604)
 processed_g[k] = temp
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  605)
 g = processed_g
 > 617b158e (Wilfried Luebbe       2014-03-28 16:56:44 +0100  606)
 elif isinstance(g, Graph):
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  607)
 processed_g = {}
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  608)
 for v in g.vertices():
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  609)
 edges = {}
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  610)
 for n in g.neighbors(v):
 > e82c8f99 (Jeroen Demeyer        2015-06-29 11:01:23 +0200  611)
 if (isinstance(g.edge_label(v,n), int)
 > e82c8f99 (Jeroen Demeyer        2015-06-29 11:01:23 +0200  612)
 and g.edge_label(v,n) >= 0):
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  613)
 edges[n] = g.edge_label(v,n)
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  614)
 else:
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  615)
 edges[n] = 1
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  616)
 processed_g[v] = edges
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  617)
 g = processed_g
 > 617b158e (Wilfried Luebbe       2014-03-28 16:56:44 +0100  618)
 elif isinstance(g, DiGraph):
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  619)
 processed_g = {}
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  620)
 for v in g.vertices():
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  621)
 edges = {}
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  622)
 for n in g.neighbors_out(v):
 > e82c8f99 (Jeroen Demeyer        2015-06-29 11:01:23 +0200  623)
 if (isinstance(g.edge_label(v,n), int)
 > e82c8f99 (Jeroen Demeyer        2015-06-29 11:01:23 +0200  624)
 and g.edge_label(v,n) >= 0):
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  625)
 edges[n] = g.edge_label(v,n)
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  626)
 else:
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  627)
 edges[n] = 1
 > 07981740 (Marshall Hampton      2011-01-12 00:17:35 -0600  628)
 processed_g[v] = edges
 > 00000000 (Not Committed Yet     2015-07-13 15:28:41 +0100  629) =======
 > 9e022d84 (David Perkinson       2015-06-11 07:10:23 -0700  630)
 processed_g = {i:dict(Counter(g[i])) for i in g}
 > 00000000 (Not Committed Yet     2015-07-13 15:28:41 +0100  631) >>>>>>>
 FETCH_HEAD
 > ...
 > }}}
 >
 > here (look at its date!) is the commit that prevents a clean merge:
 > {{{
 > commit e82c8f99d6493f48d3a02c598fc723e693f5616f
 > Author: Jeroen Demeyer <[email protected]>
 > Date:   Mon Jun 29 11:01:23 2015 +0200
 >
 >     Fix suspicious isinstance() changes
 > }}}
 > as it changes stuff in a place that has to be removed, we can basically
 ignore it.
 > (that is, when rebasing, the corresponding chunk can just be removed).
 >
 >
 > Now open `src/sage/sandpiles/sandpile.py` in an editor and remove the
 lines between `<<<..< HEAD` and `====`,
 > as well as the lines with `<<<..< HEAD`, `====`, and `>>>>>>>
 FETCH_HEAD`. Now we can commit our changes.
 > {{{
 > $ git add src/sage/sandpiles/sandpile.py
 > $ git commit -m "rebased over that
 e82c8f99d6493f48d3a02c598fc723e693f5616f"
 > }}}
 > Now locally everything is OK, run tests, etc...
 > Finally, I push it to trac (not using `git trac`, but rather "git the
 hard way" :-))
 > {{{
 > $ git push trac --set-upstream HEAD:public/sandpile_updates
 > }}}
 > and in the browser replace your (broken, shown in red) Branch:
 `u/dperkinson/sandpile_revisions` with `public/sandpile_updates`. And
 click Submit. (your branch is still there on the server, by the way, and
 your commits are in the new branch (click on `commits` to see this)).
 > ----
 > New commits:
 >
 
||[http://git.sagemath.org/sage.git/commit/?id=249b64720653fdd434e76336b442c1bbd5b6fe2c
 249b647]||{{{rebased over that
 e82c8f99d6493f48d3a02c598fc723e693f5616f}}}||

--
Ticket URL: <http://trac.sagemath.org/ticket/18618#comment:54>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to