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

Re: svn commit: r26745 - in trunk/subversion: include libsvn_client svn

From: Karl Fogel <kfogel_at_red-bean.com>
Date: 2007-09-24 00:58:52 CEST

"Joe Swatosh" <joe.swatosh@gmail.com> writes:
> D:\SVN\r26758>svn propset pn pv wc -R
> property 'pn' set (recursively) on 'wc'
>
> D:\SVN\r26758>svn commit wc -m ""
> Sending wc
> svn: Commit failed (details follow):
> svn: Out of date: '/wc' in transaction '2-2'
>
> D:\SVN\r26758>svn up wc
> At revision 2.
>
> D:\SVN\r26758>svn commit wc -m ""
> Sending wc
> Sending wc\t.txt
>
> Committed revision 3.
>
> I was suprised that I couldn't commit the propset until after an update. I
> always thought after committing the add of the file that the working copy
> would be in sync with the repository. The tests obviously already consider
> this.

I haven't looked at the Ruby failures in detail yet, but I think
what's going on above is that the "-R" is causing property "pn" to be
set to value "pv" down through the entire working copy -- on
directories as well as files. Subversion requires directories to be
completely up-to-date before you can commit property changes to them.

IOW, if you have a directory at r1 in your working copy (even though
some files/subdirs under it might be at higher revisions), then you
shouldn't be able to commit a property change to that directory until
you update it to the latest revision (even though you could commit
property changes to files or subdirs within it).

This restriction applies even if the property in question hasn't
changed (or never existed) between the working copy directory's
current revision and the latest revision in the repository.

Below is a shell script demonstrating this; it produces the following
output:

   subversion/libsvn_client/commit.c:914: (apr_err=160028)
   svn: Commit failed (details follow):
   subversion/libsvn_repos/commit.c:124: (apr_err=160028)
   svn: Out of date: '' in transaction '2-2'

---------------------------------------------------------------------------
#!/bin/sh

SVNDIR=/home/kfogel/src/subversion

SVN=${SVNDIR}/subversion/svn/svn
SVNSERVE=${SVNDIR}/subversion/svnserve/svnserve
SVNADMIN=${SVNDIR}/subversion/svnadmin/svnadmin
URL=file:///`pwd`/repos

rm -rf repos wc import-me

${SVNADMIN} create repos
mkdir import-me
echo "This is a file." > import-me/f
(cd import-me; ${SVN} import -q -m "Initial import." ${URL})
${SVN} co -q ${URL}/ wc

cd wc
echo "a change to f" > f
${SVN} ci -q -m "changing f"
${SVN} propset -q pv pv .
${SVN} ci -q -m "try to commit propchange top level directory"
cd ..

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Sep 24 00:59:02 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.