Issue #136 resolved

Subversion repositories don't support merge tracking

DoctorRockit
created an issue

The subversion repositories served through SCM-Manager do not appear to support merge tracking, which manifests itself in:

The lack of a proper svn:mergeinfo setting when performing an svn cp https://my/repo/source/path https://my/repo/dest/path

Inability to utilize merginfo properties already present on directories (repositories imported into scm manager).

This appears to be independent of the compatibility setting.

Comments (6)

  1. DoctorRockit reporter

    I may have misreported the problem. I'm not exactly sure whether the merge capability is advertised or not. The main symptom ist that merging doesn't work. The two types of merges I have tested are:

    1. From base to branch
    2. Negative Changeset from base URL to revert a changeset

    Here are the steps I have used to reproduce scenario 1 on a newly created repository:

    1. Create new repository sandbox (URL: https://server/scm/svn/sandbox)
    2. Create subdirectory 'project1'
    3. Create 'trunk' & 'branches' subdirectories below 'project1'
    4. Create a branch called 'branch1' using: svn cp https://server/scm/svn/sandbox/project1/trunk https://server/scm/svn/sandbox/project1/branches/branch1
    5. Create a changeset within trunk, e.g. by touching a file and adding it to trunk.
    6. Check out a working copy of 'branch1'
    7. Within the checked out working copy synchronize 'branch1' using: svn merge https://server/scm/svn/sandbox/project1/trunk

    --> Error message: svn: E170000: Illegal repository URL '/project1/trunk'

    Additional information:

    • The error message caused by scenario 2 is the same.
    • I have tested this with several different 1.6 & 1.7 client versions under different operating systems.
  2. Sebastian Sdorra repo owner

    Possible fix https://bitbucket.org/sdorra/svnkit-dav/changeset/1360c56b7e22

    Could you please test the version below:

    I've used the following script for tests:

    TMPDIR=$$
    TRUNKDIR=$TMPDIR"/trunk"
    BRANCHDIR=$TMPDIR"/branch1"
    mkdir -p $TRUNKDIR
    mkdir -p $BRANCHDIR
    REPOID=$(scm-cli-client create-repository -n issue-136 -t svn --template '${repository.id}')
    svn mkdir http://localhost:8080/scm/svn/issue-136/project1 -m 'create trunk'
    svn mkdir http://localhost:8080/scm/svn/issue-136/project1/trunk -m 'create trunk'
    svn mkdir http://localhost:8080/scm/svn/issue-136/project1/branches -m 'create branches'
    svn cp http://localhost:8080/scm/svn/issue-136/project1/trunk http://localhost:8080/scm/svn/issue-136/project1/branches/branch1 -m 'create branch1'
    svn co http://localhost:8080/scm/svn/issue-136/project1/trunk $TRUNKDIR
    cd $TRUNKDIR
    echo a > a.txt
    svn add a.txt
    svn commit -m 'added a.txt'
    cd ../..
    svn co http://localhost:8080/scm/svn/issue-136/project1/branches/branch1 $BRANCHDIR
    cd $BRANCHDIR
    svn merge http://localhost:8080/scm/svn/issue-136/project1/trunk
    svn commit -m 'merge with trunk'
    scm-cli-client delete-repository $REPOID
    
  3. Log in to comment