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

reverting a replacement with history doesn't fully revert properly.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • all
    • 1.4.0
    • libsvn_client
    • None

    Description

      Reproduction recipe:
      #!/bin/sh -x
      
      # Create the repo and set an environment variable to refer to it.
      svnadmin create repo
      R=file://`pwd`/repo
      
      # Checkout the working copy and cd to it.
      svn co $R wc
      cd wc
      
      # Create two directories that act as lines of development/branches
      svn mkdir devel branch
      svn commit --message 'setup'
      
      # In devel create a directory and commit
      cd devel
      mkdir foo
      echo 'bar' > foo/bar
      echo 'baz' > foo/baz
      svn add foo
      svn commit --message 'add foo'
      
      # In the branch merge the foo dir/files and commit.
      cd ../branch
      svn merge -r 1:2 $R/devel
      # info shows copy from url and copyfrom rev
      svn info -R foo
      svn commit --message 'Merge r2'
      # now the url and rev go away
      svn info -R foo
      
      # In devel delete foo and commit
      cd ../devel
      svn rm foo
      svn commit --message 'delete foo'
      
      # Now put foo back.
      mkdir foo
      echo 'bar2' > foo/bar
      echo 'baz2' > foo/baz
      svn add foo
      svn commit --message 'readd foo'
      
      # On branch merge the delete and readd of the dir.
      # This will fail saying the revisions don't match.
      cd ../branch
      # no copy from url
      svn info -R foo
      svn merge -r 2:5 $R/devel
      # now it's back.
      svn info -R foo
      
      # revert 
      svn revert -R .
      # oops they're still there
      svn info -R foo
      
      The output of the last two commands is:
      + svn revert -R .
      Reverted 'foo'
      Reverted 'foo/bar'
      Reverted 'foo/baz'
      + svn info -R foo
      Path: foo
      URL: file:///home/breser/ts/revert-history/repo/branch/foo
      Revision: 3
      Node Kind: directory
      Schedule: normal
      Copied From URL: file:///home/breser/ts/revert-history/repo/devel/foo
      Copied From Rev: 5
      Last Changed Author: breser
      Last Changed Rev: 3
      Last Changed Date: 2004-11-30 22:31:31 -0800 (Tue, 30 Nov 2004)
      
      Path: foo/bar
      Name: bar
      URL: file:///home/breser/ts/revert-history/repo/branch/foo/bar
      Repository UUID: 4b80400e-28ea-0310-a2c0-85baae8dfe07
      Revision: 0
      Node Kind: file
      Schedule: normal
      Copied From URL: file:///home/breser/ts/revert-history/repo/devel/foo/bar
      Copied From Rev: 5
      Last Changed Author: breser
      Last Changed Rev: 5
      Last Changed Date: 2004-11-30 22:31:33 -0800 (Tue, 30 Nov 2004)
      Text Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
      Properties Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
      Checksum: 042967ff088f7f436015fbebdcad1f28
      
      Path: foo/baz
      Name: baz
      URL: file:///home/breser/ts/revert-history/repo/branch/foo/baz
      Repository UUID: 4b80400e-28ea-0310-a2c0-85baae8dfe07
      Revision: 0
      Node Kind: file
      Schedule: normal
      Copied From URL: file:///home/breser/ts/revert-history/repo/devel/foo/baz
      Copied From Rev: 5
      Last Changed Author: breser
      Last Changed Rev: 5
      Last Changed Date: 2004-11-30 22:31:33 -0800 (Tue, 30 Nov 2004)
      Text Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
      Properties Last Updated: 2004-11-30 22:31:34 -0800 (Tue, 30 Nov 2004)
      Checksum: 4225f9aabf86392293e45e330d8c0036
      
      You'll also note that the files revision is set to 0 after the revert.
      
      Currently the only way to see this issue is with the merge command as above. 
      But if we support copies over files that are scheduled for deletion this will
      show there as well.
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              breser Ben Reser
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: