|
From: Eric S. R. <es...@th...> - 2017-10-26 03:16:24
|
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
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.
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
My work is funded by the Internet Civil Engineering Institute: https://icei.org
Please visit their site and donate: the civilization you save might be your own.
|