|
From: sfeam <sf...@us...> - 2017-10-26 03:52:10
|
On Wednesday, 25 October 2017 23:16:15 Eric S. Raymond wrote:
> Ethan A Merritt <sf...@us...>:
> > On Wednesday, October 25, 2017 3:18:37 PM PDT Eric S. Raymond wrote:
> > > I have successfully transplanted 4.2, but 4.0 has a problem. Rebasing
> > > it on /#include gp_time.h/ yields this diff at the tip:
> > >
> > > --- a/demo/gnuplot.rot 1998-04-22 09:38:42.000000000 -0400
> > > +++ b/demo/gnuplot.rot 2017-10-25 17:39:55.083147765 -0400
> > > @@ -1,12 +1,5 @@
> > > -# HBB: revised open-ended animation routine. Used to just turn
> > > -# round and round by somewhat large steps. Now, it tumbles
> > > -# back and forth smoothly.
> > > -# If 'limit_iterations' is set to a nonzero value, it'll stop after that
> > > -# many iterations (iteration_count=0 has to be set before this -#
> > > script is called)
> > > zrot=(zrot+10)%360
> > > xrot=(xrot+17)%180
> > > -set view (50.+30.*sin(xrot/180.*pi)),60.+45.*sin(zrot/180.*pi)
> > > +set view xrot,zrot
> > > replot
> > > -iteration_count=iteration_count+1
> > > -if ((!limit_iterations) || (iteration_count<=limit_iterations)) reread
> > > +reread
> >
> > That file has only been touched twice, once in 1998 and once in 2006.
> > The diff you list above was the 1998 change.
>
> Hm. That's not what I see.
>
> reposurgeon% [demo/gnuplot.rot] list
> 1009 1998-04-15T19:16:47Z :1008 *** empty log message ***
> 1370 1998-04-22T13:40:59Z :1369 Import of beta 344.
> 18500 2005-01-07T23:21:02Z :18499 Revise gif animation code to comply with
[shrug] In CVS view on SourceForge that revision "Revise gif animation code ..."
has timestamp
Sat Jan 7 23:21:02 2006 UTC (11 years, 9 months ago) by sfeam
http://gnuplot.cvs.sourceforge.net/viewvc/gnuplot/gnuplot/demo/gnuplot.rot?revision=1.2&view=markup
Nothing before that all the way to 1998.
Ethan
>
> That first one looks like the initial import. Two following changes, all
> right, first in 1998, but the second early in 2005 rather than in 2006.
>
> reposurgeon% :1008
> Event 1009 ==============================================================
> commit refs/tags/4.0.2
> mark :1008
> author Lars Hecking <lhe...@nm...> 892667807 +0100
> committer Lars Hecking <lhe...@nm...> 892667807 +0100
> data 26
> *** empty log message ***
> from :765
> M 100644 :766 00test
> M 100644 :767 0BUGS
> :
> M 100644 :836 demo/fit.dem
> M 100644 :600 demo/gnuplot.rot
> M 100644 :837 demo/hidden.dem
> M 100644 :838 demo/mgr.dem
> :
> (bulk of file manifest omitted)
> reposurgeon% inspect :600
> Event 601 ===============================================================
> blob
> mark :600
> data 71
> zrot=(zrot+10)%360
> xrot=(xrot+17)%180
> set view xrot,zrot
> replot
> reread
>
> The initial import brought in the short form. The longer form is in the
> 1998 change, which was actually a re-import of some different version of
> ancestral GNUPLOT.
>
> reposurgeon% :1369 inspect
> Event 1370 ==============================================================
> commit refs/tags/3.7.1
> mark :1369
> author Lars Hecking <lhe...@nm...> 893252459 +0100
> committer Lars Hecking <lhe...@nm...> 893252459 +0100
> data 20
> Import of beta 344.
> from :1207
> M 100644 :1208 0PORTING
> :
> M 100644 :1222 demo/animate.dem
> M 100644 :1223 demo/gnuplot.rot
> M 100644 :1224 demo/multimsh.dem
> :
> (most of the filelist omitted)
> reposurgeon% :1223 inspect
> Event 1224 ==============================================================
> blob
> mark :1223
> data 518
> # HBB: revised open-ended animation routine. Used to just turn
> # round and round by somewhat large steps. Now, it tumbles
> # back and forth smoothly.
> # If 'limit_iterations' is set to a nonzero value, it'll stop after that
> # many iterations (iteration_count=0 has to be set before this
> # script is called)
> zrot=(zrot+10)%360
> xrot=(xrot+17)%180
> set view (50.+30.*sin(xrot/180.*pi)),60.+45.*sin(zrot/180.*pi)
> replot
> iteration_count=iteration_count+1
> if ((!limit_iterations) || (iteration_count<=limit_iterations)) reread
>
> Here's the 2005 change:
>
> reposurgeon% :18499 inspect
> Event 18500 =============================================================
> commit refs/tags/4.2.1
> mark :18499
> author Daniel Sebald <dan...@ie...> 1105140062 -0800
> committer Ethan A Merritt <merritt@u.washington.edu> 1136676062 -0800
> data 57
> Revise gif animation code to comply with Gif89a standard
> from :18493
> M 100644 :18494 ChangeLog
> M 100644 :18495 demo/animate.dem
> M 100644 :18496 demo/animate2.dem
> M 100644 :18497 demo/gnuplot.rot
> M 100644 :18498 term/gd.trm
>
> reposurgeon% inspect :18497
> Event 18498 =============================================================
> blob
> mark :18497
> data 1294
> # A generic rotation routine for the gnuplot view. In the commands
> # that load this file, the following should be defined:
> #
> # iteration_count: set iteration_count=0
> #
> # limit_iterations: if set to a nonzero value, it'll stop after that
> # many iterations; if zero value, continues indefinitely
> #
> # xrot: the initial x rotation of the view
> #
> # xrot_delta: the amount to increment the x rotation for each new plot
> #
> # xview: function for generating x view value; for example
> # xview(xrot)=(50.+30.*sin((xrot%180)/180.*pi))
> #
> # zrot: the initial z rotation of the view
> #
> # zrot_delta: the amount to increment the z rotation for each new plot
> #
> # zview: function for generating z view value; for example
> # zview(zrot)=(60.+45.*sin(zrot/180.*pi))
> #
> # History:
> # - 1. 1. 2006 Dan Sebald: Made more generic so other demos could use
> # - ?. ?. ? Hans-Bernhard Broeker: Used to just turn round and round
> # by somewhat large steps. Now, it tumbles back and forth
> # smoothly.
> # - ?. ?. ? ?: Initial recursive script
>
> iteration_count=iteration_count+1
> if ((!limit_iterations) || (iteration_count<=limit_iterations)) \
> set view xview(xrot),zview(zrot); \
> replot; \
> zrot=(zrot+zrot_delta)%360; \
> xrot=(xrot+xrot_delta)%360; \
> reread
>
> > At a guess, the 07-Jan-2006 change is right at the time of the 4.2 branch
> > and got caught on the wrong side of it.
>
> Alas, it's nastier than that. The import of 344 is a commit that was only
> on the bizarro-branch leading to 3.7.1. The 4-0-stable branch was rooted
> in *that import*, not the trunk leading 4 4 and everything later.
>
> Here is what the repo structure looks like now, with the 5.0/4.6/4.4/4.2
> grafts done:
>
> ------+--------+---------+-------+----------+---------+-------- master
> | | | | | |
> | | | | | +----- 5-2-stable
> | | | | |
> | | | | +------------ 5-0 stable
> | | | |
> | | | +-------------------- 4-6-stable
> | | |
> | | +------------------------- 4-4-stable
> | |
> | +-------------------------------- 4.2-stable
> |
> +--------X---------- 3.7.1
> |
> +------------------ 4.0-stable
>
> X marks the spot where the shortened version of the demo visible at the
> 4-0-stable tip (before surgery) was introduced. When 4.0 is rerooted
> to the logical spot on the master branch, the longer 1998 version is exposed.
>
> This is not a conversion problem. It's not even like the 4.2/4.4/4.6
> branches, where an incomplete root-tag set threw the join point
> backwards in time. This is somebody's finger error that's been lurking
> in the repo metadata since the 4.0 branch was forked from the wrong
> place.
>
> As such, our options for fixing it are limited and unpleasant.
>
> If it were my call, I'd cut our losses - just drop the 3.7.x and 4.0
> branches entirely. That would leave the repo in a very clean state where
> we have confidence that what is there matches its actual development
> history quite closely.
>
> The second option would be to leave the mess as it is. I dislike this plan
> for one major reason: We know the 3.7.x branch is corrupt - its 3.7.1 state
> does not match the archived tarball.
>
> The third option is the heroic, possibly overinvested one. I could insert
> a synthetic commit between the master-branch root of 4.0 and the rest
> replicating the X change to gnuplot.rot, with a change comment explaining
> the mess. Then we could try to rectify the 3.7.x branch.
>
> You guys are the customer, you get to decide.
>
|