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

Committing metadata changes to a directory

From: Tobias Schäfer <tobiasschaefer_at_gmx.de>
Date: 2005-12-23 09:15:03 CET

Hi all,

a common user problem when committing metadata changes to a directory seems to
be that the directory is out of date and the commit therefore fails. The
solution is to update the directory. So far everything seems to be ok.

But consider the following scenarios:
Scenario 1:
The directory "d" was last updated to revision 5. Changes of revision 6 to 10
have taken place outside of directory "d". The repository is currently in
revision 10.
The commit of a metadata change of directory "d" is successfull without an
explicit update to revision 10. Perfect!

Scenario 2:
The directory "d" was last updated to revision 5. The directory "d" contains a
file "f" last commited as revision 7. Changes of revision 6, 8, 9 and 10 have
taken place outside of directory "d". The repository is currently in revision
10.
The commit of a metadata change of directory "d" fails with the error "out of
date".
Why? The update of the directory "d" would not change any file or metadata but
merely update the revision number to 10, since all changes between revision 5
and 10 have taken place outside of directory "d" or like revision 7 are
already applied within the directory "d".

My Idea: Why does subversion not silently update to HEAD prior to committing a
directory if (and only if) an update would not change any file or metadata
within the directory?

The documentation (http://svnbook.red-bean.com/en/1.1/ch02s03.html) says:
"Second, you cannot commit a metadata change to a directory unless it's fully
up-to-date. You'll learn about attaching “properties” to items in Chapter 6.
A directory's working revision defines a specific set of entries and
properties, and thus committing a property change to an out-of-date directory
may destroy properties you've not yet seen."

The question is how to interpret "unless it's fully up-to-date". Does it mean
a) The directory is update with revision HEAD or changes between the current
revision and HEAD have taken place outside of the directory.
or
b) An update to revision HEAD would not change any file or metadata within the
directory.

Currently a) seems to be implemented, but I would prefer b). It would prevent
a manual update of the directory which in my opinion is not needed.

I am using subversion 1.2.3.

Tobias

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sun Dec 25 00:45:03 2005

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