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

Tree conflicts directories bug - another issue 3334 variant

From: Mark Phippard <markphip_at_gmail.com>
Date: Wed, 4 Feb 2009 16:36:44 -0500

At a minimum this is a bug. When it is working I suspect the behavior
will be unexpected, but at least explainable. I am attaching script,
but let me explain. We stumbled on this testing Subclipse tree
conflict resolution work.

Suppose you delete a folder that has child folders. Do not commit
yet. Now commit the delete of one of the children, but not the
parent. The parent is now out of date, so it cannot be committed, so
you update. This creates a tree conflict (the unexpected part)
because the parent has to be updated but it is scheduled for delete.
The bug is that the update of the folder is skipped so you are in the
issue-3334 "loop" where you cannot commit the folder because you
cannot update it.

I tried this with the issue-3334-dirs branch and it still fails. Here
is the output:

$ ./script2.sh
### Display version...
svn, version 1.6.0 (dev build)
   compiled Feb 4 2009, 16:25:33

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme

### Making a Greek Tree for import...
### Done.

### Importing it...
### Done.

### remove A/B ...
D A/B/lambda
D A/B/E/alpha
D A/B/E/beta
D A/B/E
D A/B/F
D A/B
### but only commit A/B/E ...
Deleting A/B/E

Committed revision 2.
### Done, now update.
   C A/B
At revision 2.
Summary of conflicts:
  Tree conflicts: 1
D C A/B
> local delete, incoming edit upon update
D A/B/lambda
D A/B/F
Path: A/B
URL: file:///Users/mphippard/tree-conflicts/repos/trunk/A/B
Repository Root: file:///Users/mphippard/tree-conflicts/repos
Repository UUID: 55dfcbe6-c826-4636-9030-6409157708e5
Revision: 1
Node Kind: directory
Schedule: delete
Last Changed Author: mphippard
Last Changed Rev: 1
Last Changed Date: 2009-02-04 16:30:27 -0500 (Wed, 04 Feb 2009)
Tree conflict: local delete, incoming edit upon update
  Source left: (none) file:///Users/mphippard/tree-conflicts/repos/trunk/A/B_at_1
  Source right: (dir) file:///Users/mphippard/tree-conflicts/repos/trunk/A/B_at_2

### Resolve tree conflict on A/B.
Resolved conflicted state of 'A/B'
D A/B
D A/B/lambda
D A/B/F
Path: A/B
URL: file:///Users/mphippard/tree-conflicts/repos/trunk/A/B
Repository Root: file:///Users/mphippard/tree-conflicts/repos
Repository UUID: 55dfcbe6-c826-4636-9030-6409157708e5
Revision: 1
Node Kind: directory
Schedule: delete
Last Changed Author: mphippard
Last Changed Rev: 1
Last Changed Date: 2009-02-04 16:30:27 -0500 (Wed, 04 Feb 2009)

### Commit delete of A/B.
Deleting A/B
subversion/libsvn_client/commit.c:867: (apr_err=160028)
svn: Commit failed (details follow):
subversion/libsvn_repos/commit.c:124: (apr_err=160028)
svn: Directory '/trunk/A/B' is out of date

-- 
Thanks
Mark Phippard
http://markphip.blogspot.com/
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1104131

Received on 2009-02-04 22:37:07 CET

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