[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Make 'svn commit --depth=foo' work.

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: 2007-07-12 21:59:45 CEST

Karl Fogel wrote:
> This email contains:
>
> 1. A log message (surrounded by "[[[ ... ]]]")
> 2. A patch (also surrounded by "[[[ ... ]]]")
> 3. A shell script for testing the patch (also surrounded by "[[[ ... ]]]")
>
> I'd love some review on this. It needs regression tests: what I plan
> to do is convert that shell script over to our test harness. But for
> getting this coded, it was easier to have a test script I could tweak
> quickly.
>
> This patch is in 'make check' right now. It passed basic_tests, but
> got one failure in commit_tests:
>
> commit_tests.py 26: commit named targets with -N (issues #1195, #1239)
>
> (It's currently in prop_tests, but has encountered only that single
> failure so far.)
>
> I haven't yet had a chance to look at how serious the commit_tests #26
> failure is. It might just be a case of "-N" behavior changing
> slightly (i.e., we should change the test, not the code), or perhaps
> it's a real bug in the code. I'll take a look at it later; right now
> it's time for bed :-)
>
> In the meantime, I wanted to send this so the change could get some
> review.

I've taken a glance at the patch, and I think that the changes you've made
look pretty good, at least in terms of the way the compiler and test
environment in my head evaluates them.

But before even reading the patch or trying your test script, I was anxious
to see how you would handle what I suspected would be a little booger of a
programming challenge, namely dealing with the situation where you have two
changes that are more than one depth level apart, yet individually specified
on the 'svn commit' command-line with different depth levels:

   $ svn st
   M A/D/G/rho
   M iota

Now, I try 'svn ci' with various depths that I think should catch both
changes. The following two combinations don't work:

   $ svn ci --depth immediates . A/D/G
   subversion/libsvn_wc/lock.c:561: (apr_err=155004)
   svn: Working copy '/home/cmpilato/tests/karl-patch/wc' locked
   svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
   $ svn ci --depth immediates . A/D/G/rho
   subversion/libsvn_wc/lock.c:561: (apr_err=155004)
   svn: Working copy '/home/cmpilato/tests/karl-patch/wc' locked
   svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

These seem to work, though:

   $ svn ci --depth files . A/D/G
   $ svn ci --depth files . A/D/G/rho
   $ svn ci --depth empty . A/D/G/rho

I wasn't able to quickly find the cause, though.

-- 
C. Michael Pilato <cmpilato@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on Thu Jul 12 21:59:11 2007

This is an archived mail posted to the Subversion Dev mailing list.