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

externals not removed when working copy is made shallow

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • all
    • 1.7.x
    • unknown
    • None

    Description

      An update with e.g. --set-depth=empty removes versioned files and directories
      from the working copy which are out of scope of the new depth.
      However, child working copies pulled in via svn:externals are not removed.
      They stay behind as "unversioned" from the parent working copy's point of view.
      
      In 1.6.x, this causes an error when the parent working copy is restored to its
      former depth, unless the --force option is passed to svn update:
      "Failed to add directory 'foo': an unversioned directory of the same name
      already exists"
      
      To avoid this error, svn could remove externals at the time the working copy is
      made sparse, if they have no local modifications. If they do have local
      modifications, svn could leave the child working copy in place but also tolerate
      it when the former depth is restored.
      
      In 1.7.x (trunk), no warning is printed, but there is a tree conflict being
      flagged on the external unless --force is used. This is wrong and should be
      fixed before the 1.7.0 release. Either the 1.6.x behaviour needs to be restored,
      or the new behaviour suggested above needs to be implemented.
      

      Attachments

        1. 1_issue3741.sh
          1.0 kB
          Stefan Sperling

        Activity

          People

            Unassigned Unassigned
            stsp Stefan Sperling
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: