|
From: Daniel J S. <dan...@ie...> - 2017-10-25 23:59:52
|
On 10/25/2017 02:48 PM, Daniel J Sebald wrote: > On 10/25/2017 12:16 PM, Eric S. Raymond wrote: [snip] >> I'm going to to do some more analysis on the 3.7 branch, but the odds >> that we'll have to write it off look pretty high. > > I'll look at this a bit more. For those with historical knowledge, I'm > going to write some checkin comments here that come from searching, but > only those that seem like they could give a clue about when the first > branch was done. (I'm using qgit, which has some nice searching and > file features.) Let me know if they ring a bell: > > "branch" > New function gp_strdup, from cvs MAIN branch. > Updated from cvs MAIN branch > New files from my branched-off 'monster patch' > Merged the pm3d branch back to MAIN > Merge axis-branch into MAIN. Lots of changes all over the places > a few changes after merging the axis branch > make the branched version compile under OS/2 > Updated from aquaterm cvs bugfix branch. > > "merge" > Final fixes for merger. > Update from current automake (lost in merge). > Some cleanups/fixes after the merge. Here's a bit of a clue about the branch point for that first branch. I noted that the two files that had changed with the "Windows linestyle fix." checkin are: ============================================================================= RCS file: /cvsroot/gnuplot/gnuplot/win/Attic/wgnuplib.h,v Working file: win/wgnuplib.h head: 1.6 branch: ---------------------------- revision 1.4.2.1 date: 1999/08/19 14:13:09; author: lhecking; state: Exp; lines: +4 -1 Windows linestyle fix. ============================================================================= ============================================================================= RCS file: /cvsroot/gnuplot/gnuplot/win/Attic/wgraph.c,v Working file: win/wgraph.c head: 1.7 branch: ---------------------------- revision 1.5.2.1 date: 1999/08/19 14:13:09; author: lhecking; state: Exp; lines: +12 -1 Windows linestyle fix. ============================================================================= However, compare the date with the following major modification which moved those files from the win/ directory to the win/src directory (and remember in CVS the "move" is actually as though these are completely different files, with new instantiation): ============================================================================= RCS file: /cvsroot/gnuplot/gnuplot/win/Attic/wgnuplib.h,v Working file: win/wgnuplib.h head: 1.6 branch: ---------------------------- revision 1.6 date: 1999/03/26 22:09:29; author: lhecking; state: dead; lines: +1 -1 Moved to src/win/. ---------------------------- ============================================================================= So, that modification "Windows linestyle fix" is dated five months *after* the file was moved, effectively terminated. There is no way the branch point could be near 1999/08/19 where I was searching. So, no surprise that search failed. I've searched back much earlier. I'm not familiar with CVS versioning, does the "revision 1.4.2.1 date: 1999/08/19 14:13:09;" mean that this particular revision was derived from "revision 1.4"? I.e., the user checked out "revision 1.4" as a start for creating the branch? In this case revision 1.4 was of ---------------------------- revision 1.4 date: 1998/12/10 18:30:13; author: lhecking; state: Exp; lines: +0 -2 branches: 1.4.2; Remove two defines. ---------------------------- So, maybe that is where I should look, around 1998/12/10. (I should probably just write a script to compare against all versions.) ... Nope. If I'm understanding correctly, based upon the "branches" number of 1.4.2.1, "Windows linestyle fix" could have happened any time between revision 1.5 (1999/02/14 18:13:55) and revision 1.4 (1998/12/10 18:30:13). The logical branch points in that range would be date: 1999/01/12 14:03:53; author: lhecking; state: Exp; lines: +4 -5 Version 3.7, patchlevel 0, update date string. and date: 1999/01/12 13:58:02; author: lhecking; state: Exp; lines: +3 -3 Updated to 3.7. but again, those don't seem to match well. Well, here's one encouraging result: I've done the directory comparison between CVS versions. If I pick CVS directory to be cvs update -rGNUPLOT_RELEASE_3_7_0 and compare against the git "Windows linestyle fix." directory it creates pretty good agreement but it looks like all the RCSid are rather different. Just to illustrate, here a diff of one of the files that supposedly changes both within CVS and across CVS and git: sebald@ ~/gnuplot/git_translation/branch_point_search/gnuplot $ cvs diff -u -r1.4 -r1.4.2.1 win/wgnuplib.h Index: win/wgnuplib.h =================================================================== RCS file: /cvsroot/gnuplot/gnuplot/win/Attic/wgnuplib.h,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -r1.4 -r1.4.2.1 --- win/wgnuplib.h 10 Dec 1998 18:30:13 -0000 1.4 +++ win/wgnuplib.h 19 Aug 1999 14:13:09 -0000 1.4.2.1 @@ -1,5 +1,5 @@ /* - * $Id: wgnuplib.h,v 1.4 1998/12/10 18:30:13 lhecking Exp $ + * $Id: wgnuplib.h,v 1.4.2.1 1999/08/19 14:13:09 lhecking Exp $ */ /* GNUPLOT - win/wgnuplib.h */ @@ -320,6 +320,9 @@ HPEN hbpen; /* border pen */ HPEN hapen; /* axis pen */ HPEN hpen[WGNUMPENS]; /* pens */ +#if 1 /* HBB 980118: new try ... */ + HPEN hsolidpen[WGNUMPENS]; /* solid pens (for point symbols) */ +#endif LOGPEN colorpen[WGNUMPENS+2]; /* logical color pens */ LOGPEN monopen[WGNUMPENS+2]; /* logical mono pens */ COLORREF background; /* background color */ sebald@ ~/gnuplot/git_translation/branch_point_search $ diff -ur --exclude=".git" gnuplot/win/wgnuplib.h branch_reference/win/wgnuplib.h --- gnuplot/win/wgnuplib.h 1998-12-10 12:30:13.000000000 -0600 +++ branch_reference/win/wgnuplib.h 2017-10-25 16:05:19.318473813 -0500 @@ -320,6 +320,9 @@ HPEN hbpen; /* border pen */ HPEN hapen; /* axis pen */ HPEN hpen[WGNUMPENS]; /* pens */ +#if 1 /* HBB 980118: new try ... */ + HPEN hsolidpen[WGNUMPENS]; /* solid pens (for point symbols) */ +#endif LOGPEN colorpen[WGNUMPENS+2]; /* logical color pens */ LOGPEN monopen[WGNUMPENS+2]; /* logical mono pens */ COLORREF background; /* background color */ The discouraging part, though, is that when I compare CVS GNUPLOT_RELEASE_3_7_0 against git master commit "Updated to 3.7.", it's not a good match at all. Shouldn't it be a good match? I think the key here is to first figure out and reconstruct what would be tag 3.7.0 in the git repository, so that it coincides with GNUPLOT_RELEASE_3_7_0. It might be the something is corrupted in the master branch in that first few years of checkins. My guess would be that release 3.7.0 was on the trunk, then "Windows linestyle fix" was a branch, which produced 3.7.1, 3.7.2, etc. I can see why this is so difficult to reconstruct now. Tags are the only sort of reliable CVS construct, so I suppose we should get those important ones working first. Dan |