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

[PATCH] consistent out-of-date handling by commit

From: Stephen Butler <sbutler_at_elego.de>
Date: Fri, 29 Feb 2008 17:43:28 +0100

Hi folks,

Here is a patch that resolves issue #2740 ("out-of-date" error text
varies depending on access method) and plugs a loophole in the commit
safety net, as far as tree conflict detection is concerned.

I mentioned this patch in an earlier email about the behavior of merge
(http://svn.haxx.se/dev/archive-2008-02/0872.shtml). Our current tree
conflict detection scheme relies on this patch, but this patch is not
specific to tree conflicts.



Subversion should cancel a commit that includes the deletion of a file
or directory that has already been deleted in the repository.

When cancelling a commit that tries to delete or modify a file or dir
that has already been deleted in the repo, the "out of date" error
message should be consistent for all remote access methods (v. issue

* subversion/libsvn_client/commit_util.c
   (out_of_date): New function.
   (do_item_commit): To give the user an "out of date" error instead of
    "not found", replace SVN_ERR() with manual error handling when
    asking the repo to delete dirs or files, to open files, or to
    receive property deltas during commit.

* subversion/libsvn_client/commit.c
   (svn_client_commit4): Give the user an "out of date" error instead
    of "not found", if the RA editor can't be initialized.

* subversion/libsvn_ra_serf/commit.c
   (delete_entry): Treat the response '404 Not Found' as an error.

* subversion/libsvn_ra_neon/commit.c
   (commit_delete_entry): Treat the response '404 Not Found' as an error.

* subversion/libsvn_repos/commit.c
   (out_of_date): Extend for case where we don't know the node type
    because the node does not exist.
   (delete_entry): If a path is not found, return an error.

* subversion/tests/cmdline/commit_tests.py
   (commit_out_of_date_deletions): Extend test cases to include all
    relevant combinations of deletion vs (property-change | text-change |
    deletion). Use svntest.actions.run_and_verify_commit consistently.


Stephen Butler | Software Developer
elego Software Solutions GmbH
Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elegosoft.com
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194

To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org

Received on 2008-02-29 17:45:47 CET

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.