|
From: Daniel J S. <dan...@ie...> - 2017-11-13 09:46:54
|
Attached is a script file that will compare a CVS repository against a git repository using the numeric tags. I've found reasonable agreement with all but the git version tagged 4.6.3, which is tested against CVS version tagged Release_4_6_3. For this particular case, I've also compared against the tarball archived here: https://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.3/gnuplot-4.6.3.tar.gz/download Let me first compare CVS Release_4_6_3 against that tarball for a benchmark. The differences I see are: diff -ur '--exclude=.git' -I '\$[A-Z]*[a-z]*' gnuplot-cvs-checkout/gnuplot/docs/pdffigures.tex /home/sebald/src/gnuplot/gnuplot-4.6.3/docs/pdffigures.tex --- gnuplot-cvs-checkout/gnuplot/docs/pdffigures.tex 2010-03-08 17:41:15.000000000 -0600 +++ /home/sebald/src/gnuplot/gnuplot-4.6.3/docs/pdffigures.tex 2013-04-12 12:26:25.000000000 -0500 @@ -1,7 +1 @@ -% -% $Id: pdffigures.tex,v 1.1 2010/03/08 23:41:15 sfeam Exp $ -% -% This file is modified dynamically by "make" depending on whether or not -% figures are to be included in the documentation -% \usepackage{graphicx} -% \usepackage{picins} + diff -ur '--exclude=.git' -I '\$[A-Z]*[a-z]*' gnuplot-cvs-checkout/gnuplot/src/version.c /home/sebald/src/gnuplot/gnuplot-4.6.3/src/version.c --- gnuplot-cvs-checkout/gnuplot/src/version.c 2017-11-12 23:37:09.492098620 -0600 +++ /home/sebald/src/gnuplot/gnuplot-4.6.3/src/version.c 2013-04-12 12:24:08.000000000 -0500 @@ -41,7 +41,7 @@ const char gnuplot_version[] = "4.6"; const char gnuplot_patchlevel[] = "3"; -const char gnuplot_date[] = "April 2013"; +const char gnuplot_date[] = "2013-04-12 "; const char gnuplot_copyright[] = "Copyright (C) 1986-1993, 1998, 2004, 2007-2013"; const char faq_location[] = FAQ_LOCATION; The difference is an automatically generated file (I'm not sure what the ramifications of that are, but as far as the actual program goes it doesn't change anything) and what looks to be a touched-up version date that didn't make its way into the repository. Now the git repository (as gotten from https://git.code.sf.net/p/gnuplot/git-main. There are the following changesets near the 4.6.3 tag in the list: fix memory allocation for large matrices Ethan A Merritt [4.6.3] Release 4.6 patchlevel 3 Bastian Maerkisch bump patchlevel to 4.6.3 Ethan A Merritt *** empty log message *** Ethan A Merritt Suffice it to say that all of these changeset versions show mis-matches of a half-dozen lines of code or more. Rather than show these diff hunks, let me just explain. It looks like Ethan created the gnuplot-4.6.3.tar.gz tarball including the changesets above with his name attached. In the mean time, Bastian probably created changes to the Windows files (which Ethan isn't familiar with) but that changeset ([4.6.3] above) didn't find its way into the tarball, although it is part of the 4.6.3 release (for Windows). cvs2git resolved this by putting in an extra branch commit (the one listed [Release_4_6_3] below): fix memory allocation for large matrices Ethan A Merritt Release 4.6 patchlevel 3 Bastian Maerkisch [Release_4_6_3] This commit was manufactured by cvs2svn to create tag 'Release_4_6_3'. cvs2git<> bump patchlevel to 4.6.3 Ethan A Merritt *** empty log message *** Ethan A Merritt That extra commit (on a stub branch) is the exact same differences as that for the changeset "fix memory allocation for large matrices". Given that, it looks like you'll need to add something there to get release 4.6.3 in line with the tarball. And the easiest thing is probably to mimic what cvs2git did as follows: 1) Create a branch from "bump patchlevel to 4.6.3" version git checkout c21a99aa6caecac5f125219e791665953c816b37 git checkout -b Release_4_6_3_tarball_stub (or some similar name) 2) Merge changeset "fix memory allocation for large matrices" to the newly created stub branch: git cherry-pick 7d0989dd8cf3b3c18a1fa7181c8a1d38ab14d0b3 3) Change the tags as follows (where the indentation means a different branch, however the viewer chooses to display the graph): [4.6.3] fix memory allocation for large matrices Ethan A Merritt [4.6.3-Windows] fix memory allocation for large matrices Ethan A Merritt Release 4.6 patchlevel 3 Bastian Maerkisch bump patchlevel to 4.6.3 Ethan A Merritt *** empty log message *** Ethan A Merritt That is, delete tag [4.6.3] and add a new tag [4.6.3] on the new branch (stub) which has the patch. This puts version tagged [4.6.3] in line with cvs-repository and the tarball. Add a new tag [4.6.3-Windows] to signify that is the release that Bastian has published for 4.6.3 that includes everything in the 4.6.3 tagged version plus the mods to four Windows-related files. Dan |