Package: subversion
Version: 1.5.1dfsg1-1
Severity: wishlist
Tags: patch

Hi,

I found myself needing to track a regression, and since I suck so much at
keeping the whole status mentally, I wrote this script that keeps track of
it all.

It's inspired by git-bisect and the syntax is almost the same (except it
doesn't have all the features).  A typical user session would be:

  svn-bisect start
  svn-bisect bad 4321   # mark 4321 as bad
  svn-bisect good 1234  # mark 1234 as good
  # svn-bisect picks a new revision and updates to it
  # user tests it
  svn-bisect bad        # user determined it is bad
  # svn-bisect picks a new revision and updates to it
  etc

While upstream wasn't really interested in it, I think it's very useful
and would to have it provided in Debian.  I would package it myself, but
for such a small utility I think it's much better if it's part of the
subversion package.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.18-6-amd64 (SMP w/2 CPU cores)
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages subversion depends on:
ii  libapr1                  1.2.12-5        The Apache Portable Runtime Librar
ii  libc6                    2.7-15          GNU C Library: Shared libraries
ii  libsasl2-2               2.1.22.dfsg1-23 Cyrus SASL - authentication abstra
ii  libsvn1                  1.5.1dfsg1-1    Shared libraries used by Subversio

subversion recommends no packages.

Versions of packages subversion suggests:
pn  db4.6-util                    <none>     (no description available)
ii  patch                         2.5.9-5    Apply a diff file to an original
pn  subversion-tools              <none>     (no description available)

-- no debconf information
#!/bin/sh -e
#
# Copyright (C) 2008  Robert Millan
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


get_curr_rev ()
{
  svn info | sed -ne "s/^Revision: //p"
}

case $1 in
  start)
    rm -rf .svn-bisect
    mkdir .svn-bisect
  ;;
  bad|good)
    what=$1
    shift
    if [ "$1" = "" ] ; then
      get_curr_rev > .svn-bisect/$what
    else
      echo $1 > .svn-bisect/$what
    fi
  ;;
esac

if ! test -e .svn-bisect/good || ! test -e .svn-bisect/bad ; then
  exit 0
fi

good=`cat .svn-bisect/good`
bad=`cat .svn-bisect/bad`
target=$(((${good}+${bad})/2))

if [ "$target" = "$good" ] ; then
  echo "Regression found!"
  echo "Last good revision: $good"
  echo "First bad revision: $bad"
  exit 0
fi

svn up -r $target

Reply via email to