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

Delete should conflict with delete (at the repos level)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • all
    • 1.6.0
    • libsvn_repos

    Description

      Subversion is presently inconsistent about whether a delete conflicts with a
      delete, when auto-merging transactions in the repository.
      
      See this email <http://svn.haxx.se/dev/archive-2008-03/0972.shtml> in the thread
      starting at <http://svn.haxx.se/dev/archive-2008-02/0872.shtml>.
      
      The low-level behaviour should be to treat delete+delete strictly as a conflict,
      even though, at the user's level, double deletion is often harmless. This is
      partly because a low-level delete doesn't necessarily correspond to a user-level
      delete, it could be part of a user-level rename.
      
      The bug (though it was intentional at the time) is in
      subversion/libsvn_repos/commit.c(delete_entry):
      
        /* If PATH doesn't exist in the txn, that's fine (merge
           allows this). */
        if (kind == svn_node_none)
          return SVN_NO_ERROR;
      
      While we're here, there's an inconsistency in libsvn_fs_fs/tree.c(merge):
      
                /* If SOURCE-ENTRY and TARGET-ENTRY are both null, that's a
                   double delete; flag a conflict. */
                if (s_entry == NULL || t_entry == NULL)
                  return conflict_err(conflict_p,
                                      svn_path_join(target_path,
                                                    a_entry->name,
                                                    iterpool));
      
      The code doesn't match the comment. The code says "or", the comment says "and".
      I haven't looked to see which is correct or whether it's just that the comment
      is incomplete in not mentioning the other cases.
      

      Attachments

        1. 1_prevent-double-delete.diff
          10 kB
          Subversion Importer

        Issue Links

          Activity

            People

              Unassigned Unassigned
              julianfoad Julian Foad
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: