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

adding file external conflict with unversioned

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • trunk
    • ---
    • libsvn_wc
    • None

    Description

      There is some wrong code in libsvn_client/externals.c:switch_file_external which
      does
      
        else
          {
            svn_node_kind_t disk_kind;
      
            SVN_ERR(svn_io_check_path(local_abspath, &disk_kind, scratch_pool));
      
            if (kind == svn_node_file || kind == svn_node_dir)
              return svn_error_createf(SVN_ERR_WC_PATH_FOUND, NULL,
                                       _("The file external '%s' can not be "
                                         "created because the node exists."),
                                       svn_dirent_local_style(local_abspath,
                                                              scratch_pool));
          }
      
      We get disk kind but don't use it. This is triggered by an unversioned file
      obstructing an incoming file external:
      
      svnadmin create repo
      svn -mm import repo/format file://`pwd`/repo/A/f
      svnmucc -mm propset svn:externals '^/A/f g' file://`pwd`/repo/A
      svn co file://`pwd`/repo@1 wc
      echo g > wc/A/g
      svn up wc
      
      At present this update shows a tree conflict for A/g but doesn't record it, and
      A/g contents are not updated:
      
      $ svn up wc
      Updating 'wc':
       U   wc/A
      
      Fetching external item into 'wc/A/g':
         A wc/A/g
      Updated external to revision 2.
      
      At revision 2.
      $ svn st wc
      M   X   wc/A/g
      
      If we change the code to use disk kind then the external is skipped, and A/g
      remains unversioned. However a subsequent no-op update to the same revision will
      not skip and do the notification/non-recording.
      
      It's not clear to me what the behaviour should be, I'll commit a test with the
      current behaviour.
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            philipm Philip Martin
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: