Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 311548

Summary: History lost or error when moving multiple nested directories...
Product: [Technology] Subversive Reporter: Jochen Darley <debugger>
Component: CoreAssignee: Igor Burilo <igor.burilo>
Status: RESOLVED WORKSFORME QA Contact:
Severity: major    
Priority: P3 CC: a.gurov, guido.schaumann
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Jochen Darley CLA 2010-05-04 09:49:43 EDT
Build Identifier: Build id: 20100218-1602

I had a layout like this:
res/abc/lib/*.jar
res/abc/TXTFILE
res/abc/DELFILE

and changed the layout to:

res/def/abc/*.jar
res/def/abc/TXTFILE

Subversive should "delete" all resources in res/abc and recreate them (with history?) in res/build-libs/abc/.

This failed to work with:
Native JavaHL 1.6.5 r38866 (for SVN 1.6.5, win32 platform only)

But SVN Kit also failed to perform these operations:
SVNKit 1.3.0 r5847 (for SVN 1.6.2, all platforms)

SVN Repository is working with revision 1.4.2 (r22196). So I tested it with the proper connector (Subversive never warned me about using a incompatible/newer connector for the repository). But does not parse the local .svn folders after changing the connector to:

SVNKit 1.1.7 r4142 (for SVN 1.4.5, all platforms)

with this connector I got:

<code>
*** Commit
svn commit "...\workspace\Folder\res" -m "bigger move test with complex directory structure changes" --username "XXX"
	D .../workspace/Folder/res/abc
svn: Commit failed (details follow):
svn: Item '/branches/test-svn-branch/Folder/res/abc' is out of date
svn: DELETE of '/repos/!svn/wrk/6b6a7c63-2801-0010-aa90-b78794af66df/branches/test-svn-branch/Folder/res/abc': 409 Conflict (https://svn.XXX)
svn: Commit failed (details follow):
svn: Item '/branches/test-svn-branch/Folder/res/abc' is out of date
svn: DELETE of '/repos/!svn/wrk/6b6a7c63-2801-0010-aa90-b78794af66df/branches/test-svn-branch/Folder/res/abc': 409 Conflict (https://svn.XXX)
*** Error (took 00:00.821)
</code>

I need a working solution for this. Single file renames seem to keep the history, but checking in partial commits breaks the SVN history on the server side! Result:

Folder/res/def has it's history
Folder/res/def/* has lost all history information!

Please add warnings or provide some reference if there are know good workarounds. This behaviour really breaks productive work with SVN.

I want/need:
1) A Warning about using mismatching connector (if that is part of the problem)
2) A Warning about renaming nested folders if it's not supported!
3) Fixes / Workarounds ... thx

Reproducible: Always

Steps to Reproduce:
see above
Comment 1 Igor Burilo CLA 2010-06-29 07:09:14 EDT
From the description you provided I can see that you failed to commit moved resources because of 'out of date' error. This is not Subversive or SVN problem you just need to run Update action before performing refactoring.
Comment 2 Jochen Darley CLA 2010-06-29 10:42:32 EDT
The svn repository was up to date. As far as I can tell the error is caused by applying the changes in the wrong order (this might be a bug in svn 1.4.2 server side implementation).

For reference: Sublipse rejected the commit with a warning. I can recall right now if the warning was about multiple renames in one commit or that a newly created folder was not yet under svn control (new folders from rename operation).

The "out of date" message is probably eithercaused by 
 - the mismatched versions of SVN connector and SVN server implementation or
 - a bug in the SVN server implementation...

My expectation is that NO partial commit is possible without atleast a warning before a partial commit (Continue / abort). 

A commit as described has removed a file's svn history and usually caused duplicated or missing files.
Comment 3 Jochen Darley CLA 2010-06-29 10:48:03 EDT
(In reply to comment #2)
> For reference: Sublipse rejected the commit with a warning.
I *can't* recall right
> now if the warning was about multiple renames in one commit or that a newly
> created folder was not yet under svn control (new folders from rename
> operation).

Clarification of "wrong order": This was a single commit after multiple operations with files nested inside the folders. If the svn implementation performes the changes in the wrong order the error messages make sense to me.
Comment 4 Igor Burilo CLA 2010-07-01 03:49:29 EDT
I don't fully understand what the problem you have, at first I though it's about 'out of date' error.
Sorry for my misunderstanding (as there're notes about out of date error, SVN server problem, wrong commit order etc.) but could you please describe what exact problem do you have and steps to reproduce it?
Comment 5 Alexander Gurov CLA 2014-09-22 11:33:54 EDT
1) SVN connectors are compatible from the oldest versions to the newest but not backwards. So, you shouldn't expect that SVN 1.1 compatible connector will work with SVN 1.6 compatible working copy.
2) How the SVN client library processes the working format compatibility and which error it throws is out of our scope, since the client libraries are made and supported by their own teams.
3) When I see "out-of-date" message in this case I can say it is not that some files were not updated but that local folder versions is not up to date. So, just do update from the root of the project before committing. If you had an error already, do Cleanup action first.