Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.7.x
-
None
-
Windows 7
Description
Hello there, I'm posting this issue after some emails in the userlist. We are facing the following issue with svn 1.7: Exec summary: - We need to incrementally checkout a multi-GB repository, which contains unexpected files with invalid chars from time to time. - We need to checkout as much as possible for analysis. We don't have commit rights to fix the filenames. - With svn 1.6, every time we faced that issue in our way, we could clean up the aborted update command, and continue checking out the other directories (just skipping the failed one). - With svn 1.7, the last failed update leaves the _entire_ multiGB local working copy in an unrecoverable state, being impossible to fix it with svn cleanup, forcing us to check several hundred MBs again and manually moving uncommitted changes. Details: 1) Clean install of svn 1.7 on Windows 7 32 bits. 2) Clean checkout of multi-GB repo, using --deph immediates to avoid checking out everything. 3) Checked out more dirs later. 4) Issue: one dir contains a file with a pipe (|) char in its name. 4.a) This is what happened with svn 1.6: 4.a.1) check out failed. 4.a.2) deleted the directory, run svn cleanup OK. 4.a.3) retry with "--set-depth empty" to avoid checking out that file. 4.a.4) Continue with the other directories. 4.b) This is what happens with svn 1.7.2 (r1207936) 4.b.1) check out fails (I've replaced some chars in the path below to comply with confidentiality requirements). svn: E720123: Can't move 'C:\work\aa\.svn\tmp\svn-60C55E31' to 'C:\work\aa\bb\cc\dd\ee | ff.pdf': The filename, directory name, or volume label syntax is incorrect. 4.b.2) Attempt svn cleanup. Output: svn: E155004: Working copy 'C:\work\aa\bb' locked. svn: E155004: 'C:\work\aa' is already locked. svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 4.b.3) Retry from parent dir: c:\work\aa>svn cleanup svn: E720123: Can't move 'C:\work\aa\.svn\tmp\svn-3C8DD0F0' to 'C:\work\aa\bb\cc\dd\ee | ff.pdf': The filename, directory name, or volume label syntax is incorrect. 4.b.4) Each retry generates a new "svn-{4 bytes in hex}" file in .svn\tmp, failing again. 4.b.5) From this point on, the situation is unrecoverable (meaning: if it is, we don't know how...). Insight: with 1.6, we just deleted the .svn db related to the offending dir. With 1.7, there is one monolithic .svn db dir, and we don't know how to say to svn clean up "just abort the last command, do not try to finish the transaction". PD: there is a similar issue posted in the old issue tracker (id 4024), but that one has been closed because the reproduction steps were directly messing with the db. This is not the case.. in this scenario, a failed update is retried by the cleanup command, being impossible to recover from that. PD2: snv -r0 didn't work: (svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted) This is the reason why I believe the local repo is in a non-recoverable state, because any command request a clean up, but a clean up fails.
Original issue reported by sesponda
Attachments
Issue Links
- depends upon
-
SVN-3288 svn crashes when checking out subdirectories with backslashes in their names
- Closed
- is blocked by
-
SVN-3288 svn crashes when checking out subdirectories with backslashes in their names
- Closed
- relates to
-
SVN-4905 Trailing spaces on directories cause exports to fail on Windows
- Closed