Details
-
Bug
-
Status: Open
-
Blocker
-
Resolution: Unresolved
-
---
Description
We have come across an issue trying to use svnsync to synchronize a repository where the user doing the syncrhonization has read permissions on some selected subtrees of the repository, but not on the repository root or top-level trunk. To reproduce: 1. set up master repo 2. load attached dump 3. configure access control [/] *= [/trunk/module] *=r 4. check that the access control is properly enforced svn ls svn+ssh://localhost/path/to/master --> svn: Authorization failed svn ls svn+ssh://localhost/path/to/master/trunk/module --> README 5. set up slave repo $ svnsync init file:///path/to/slave svn+ssh://localhost/path/to/master --> Copied properties for revision 0. 6. launch sync $ svnsync sync file:///path/to/slave svn+ssh://localhost/path/to/master --> svnsync hangs because it fails to execute the open-dir operation on non-existent directory 'trunk' (because it never saw the directory creating operation, having no visibility on it) Proposed fix is for svnsync to create any directory that does not exist at the time it tries to open it. I have a patch to this effect, which seems to work well here (see mailing list message: http://subversion.tigris.org/servlets/ReadMsg?list=dev&msgNo=130877). Alternative solution is to fix the issue at the replay level (I'm not very familiar with the code yet, so I'll likely need help if this solution is preferred). level.
http://subversion.tigris.org/servlets/BrowseList?list=dev&by=thread&from=613022