svn branch and path wp

42 views
Skip to first unread message

Bernardo Costa

unread,
Jun 27, 2014, 10:36:47 AM6/27/14
to scmma...@googlegroups.com
I did some tests with scm-manager and subversion and it seems to have a strange behaviour when you use path write protection and branch merging. Suppose you have a initial dir context like {tags,trunk,branches} and normal users just have write access inside these directories not in repository's root path using path write protection. Later you create some files and dirs in trunk and after it you copy this into a branch folder down to branches. You do changes in your trunk and in your branch directory. Later you want to merge things again into trunk. Things work fine at svn merge command and later you want to commit this merge into trunk. If you have path write protection enable, a user which is not repository owner is not able do succeed this commit. I don't understand why this happen because a priori the user is not trying to write at repository's root path. If you disable path write protection or gives this user repository owner privileges, he is able to succeed the svn commit command. My tests were done with 1.38 scm-manager version. Is this a bug or an expected behaviour ?

Sebastian Sdorra

unread,
Jul 1, 2014, 3:17:18 PM7/1/14
to scmma...@googlegroups.com
I'm not sure but i think branch merging writes a property on the merged folder (trunk). Has your user write permission to trunk or only to trunk/*?

Sebastian


2014-06-27 16:36 GMT+02:00 Bernardo Costa <bernard...@gmail.com>:
I did some tests with scm-manager and subversion and it seems to have a strange behaviour when you use path write protection and branch merging. Suppose you have a initial dir context like {tags,trunk,branches} and normal users just have write access inside these directories not in repository's root path using path write protection. Later you create some files and dirs in trunk and after it you copy this into a branch folder down to branches. You do changes in your trunk and in your branch directory. Later you want to merge things again into trunk. Things work fine at svn merge command and later you want to commit this merge into trunk. If you have path write protection enable, a user which is not repository owner is not able do succeed this commit. I don't understand why this happen because a priori the user is not trying to write at repository's root path. If you disable path write protection or gives this user repository owner privileges, he is able to succeed the svn commit command. My tests were done with 1.38 scm-manager version. Is this a bug or an expected behaviour ?

--
You received this message because you are subscribed to the Google Groups "scmmanager" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scmmanager+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Bernardo Costa

unread,
Jul 1, 2014, 8:30:31 PM7/1/14
to scmma...@googlegroups.com
Only on trunk/* and also on tags/* and branches/*, but not on *.

Sebastian Sdorra

unread,
Jul 4, 2014, 2:08:15 AM7/4/14
to scmma...@googlegroups.com
Could you please test to assign the following pathwp permissions?

trunk
trunk/*
branches/*
tags/*

Sebastian

Bernardo Costa

unread,
Jul 4, 2014, 9:15:37 AM7/4/14
to scmma...@googlegroups.com
Ok, it did work. Anyway, it seems kind of strange that we need to specify just trunk for being able to allow merging in this directory and not being able of doing it with trunk/*. I suppose if I want to merge on a different path I'd need to specify it also. My first thought was that trunk/* should include also just trunk. Is it going to change in some version in the future ? If not, then the correct pathwp write configuration for being able to merging directories should be the one listed below supposing one would merge directories just using trunk path for it.

trunk
trunk/*
branches/*
tags/*

Sebastian Sdorra

unread,
Jul 6, 2014, 5:22:39 AM7/6/14
to scmma...@googlegroups.com
The problem is that subversion sets a property on trunk during the merge, so the user who makes the merge must be able to write to trunk. The pattern trunk/* means every file in trunk and not trunk itself. You could use trunk* instead of trunk and trunk/*.

Sebastian
Reply all
Reply to author
Forward
0 new messages