Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-1620

Invalid lock of non-existing directory during merge

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • all
    • 0.35
    • unknown
    • None

    Description

      Subversion failed to do "svn merge" between two branches in repository if one
      branch have directory removing as part of merged changes and this directory
      resides in a directory, missing into second branch. I've prepared .bat script
      (tested on win2k and subversion 0.33.1) to demonstrate a problem:
      
      -------------------------------------------------------------------
      svnadmin create d:/svn/test
      svn co file:///d:/svn/test
      cd test
      svn mkdir trunk
      svn ci -m "Create top-level trunk dir"
      svn mkdir trunk/A trunk/A/B
      svn ci -m "Add files"
      svn cp file:///d:/svn/test/trunk file:///d:/svn/test/branch -m "Create branch"
      svn up
      svn rm branch/A
      svn ci -m "Remove A dir on branch"
      svn rm trunk/A/B
      svn ci -m "Remove A/B dir on trunk"
      cd branch
      svn merge file:///d:/svn/test/trunk -r4:5
      -------------------------------------------------------------------
      
       Here is log of execution of this script:
      
      -------------------------------------------------------------------
      D:\>svnadmin create d:/svn/test
      
      D:\>svn co file:///d:/svn/test
      Checked out revision 0.
      
      D:\>cd test
      
      D:\test>svn mkdir trunk
      A         trunk
      
      D:\test>svn ci -m "Create top-level trunk dir"
      Adding         trunk
      
      Committed revision 1.
      
      D:\test>svn mkdir trunk/A trunk/A/B
      A         trunk\A
      A         trunk\A\B
      
      D:\test>svn ci -m "Add files"
      Adding         trunk\A
      Adding         trunk\A\B
      
      Committed revision 2.
      
      D:\test>svn cp file:///d:/svn/test/trunk file:///d:/svn/test/branch -m "Create
      branch"
      
      Committed revision 3.
      
      D:\test>svn up
      A  branch
      A  branch\A
      A  branch\A\B
      Updated to revision 3.
      
      D:\test>svn rm branch/A
      D         branch\A\B
      D         branch\A
      
      D:\test>svn ci -m "Remove A dir on branch"
      Deleting       branch\A
      
      Committed revision 4.
      
      D:\test>svn rm trunk/A/B
      D         trunk\A\B
      
      Committed revision 5.
      
      D:\test>cd branch
      
      D:\test\branch>svn merge file:///d:/svn/test/trunk -r4:5
      svn: Working copy not locked
      svn: directory 'A' not locked
      -------------------------------------------------------------------
      
       I've raised priority of this issue from default P3 to P2 because this bug
      prevent merge to work at all in such situations.
      

      Original issue reported by flying

      Attachments

        Activity

          People

            Unassigned Unassigned
            subversion-importer Subversion Importer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: