Hello,

I have the problem that I cannot execute any merge operation since the 
repository owner restricted access rights of some parent folders. The ugly part 
about this is, that merge silently fails. It just does nothing and pretends 
that the command was successful. I first discovered this when I tried to do a 
reverse-merge (undo) of the latest revision I just committed. See the example 
output below. I added "--ignore-ancestry" to demonstrate that this is not about 
a problem in my working copy. Merge just quits, gives no error and the working 
copy is untouched (empty svn st output). But there is a diff it should apply. 
Entering the same revision to diff shows a valid patch.

D:\source>svn merge -c -192211 --ignore-ancestry -v .
--- Merging

D:\source>echo %ERRORLEVEL%
0

D:\source>svn st

D:\source >svn diff -c -192211 .
Index: SomeFile.cpp
===================================================================
--- SomeFile.cpp        (revision 192211)
+++ SomeFile.cpp        (revision 192210)
@@ -3854,17 +3854,32 @@
[...]

I even checked the mergeinfos for that folder to be sure there is nothing 
marked as already merged. There was nothing interesting in the output:
svn propget svn:mergeinfo --show-inherited-props

On a colleagues machine who still had full access rights, the operation 
succeeded - applying the changes from the diff as expected. So my conclusion so 
far is, that merge fails since access to a parent directory in the repo is 
restricted. See the following description of the rights situation:

/repo-root => forbidden
/repo-root/source => allowed

I have the following questions:
* Is it by design, that merge cannot cope with read-restricted parent 
directories? Or should this work?
* Is it a bug, that it simply quits without doing anything? I had expected at 
least an error message that the operation failed.

Best Regards
Ruben

Reply via email to