On 2010-02-26 11:29-0800 David MacMahon wrote:

>
> On Feb 26, 2010, at 11:19 , Alan W. Irwin wrote:
>
>> (1) Update my local svn repository for PLplot.
>
> I can't resist pointing out that git always has a local repository!  It can't 
> really be called a local copy of *the* repository, but it is local. :-)
>
>> (2) Write a script to do the steps mentioned in the previous e-mail to
>> demonstrate the error.  This is straightforward, but it needs to be
>> done for every error where either git-bisect or svn-bisect is to be used
>> to find the revision that corresponds to introducing the regression.
>
> With this script, it should be very easy for me to run "git bisect".  It will 
> also make it easier for me to fit in that task time-wise! :-)

I am done.  The bad revision is 10794 (Andrew, the one where you
fixed up issues with embedded blanks in directory names according to
Arjen's suggestions.)  revision 10793 works fine.  Andrew, could you take
a look please?

The rest of this is about the method of finding that first bad revision.

Bisection is a clear winner here (whether done with git-bisect or
svn-bisect) to find the source of regressions. The script I used for this
purpose was scripts/test_bisect.sh (revision 10819).  Obviously (since that
script is under version control), you must copy that script elsewhere when
looking for a revision that executes the script without problems. There is
some art to finding a good revision.  For example, in the present case the
result of that rough search was revision 10775 as a "good" revision while
you cannot go back too far from that revision before you run into other -dev
tk issues that were solved somewhere between 10750 and 10775.

Once I determined that revision 10775 was good, then

svn-bisect --min 10775 --max 10819 start
svn-bisect run $OTHER_DIR/test_bisect.sh

==> revision 10794 was the bad one.  The whole svn-bisect approach
only took a few minutes.  I think it would have been a lot longer
if I was using the SF repo (see below about how to create and use
a local repo).

Clean up afterwards with

svn-bisect revert
svn update

For those who don't know this, here is how to create (or update in
my case) a local PLplot repo.

rsync -av --delete \
plplot.svn.sourceforge.net::svn/plplot/* plplot

This created /home/software/plplot_svn/svn_backup/plplot in my case. To use
that repo I executed

svn checkout file:///home/software/plplot_svn/svn_backup/plplot/trunk \
plplot_bisect

Subsequently, all my bisection work was done in the plplot_bisect directory
which made svn updates very fast.  Note, svn update is used initially (and
manually) a lot to find a good revision.  svn-bisect also uses svn update a
modest amount. The number of updates goes as the log base 2 of the revision
range.  Thus, a range of 1024 revisions only requires 10 updates to find
which revision fails by bisection.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to