> -----Original Message-----
> From: Bob Archer [mailto:bob.arc...@amsi.com]
> Sent: donderdag 10 februari 2011 19:57
> To: Philip Martin
> Cc: dev@subversion.apache.org
> Subject: RE: Partially recursive revert when node kind changes
> 
> > Bob Archer <bob.arc...@amsi.com> writes:
> >
> > >> Suppose I have a directory tree:
> > >>
> > >>   foo/
> > >>      bar/
> > >>         zig
> > >>
> > >> and I delete the tree foo/bar and replace it by a file foo/bar.
> > >> What
> > >> should "svn revert --depth=files foo" do?  Should it revert
> > >> foo/bar?
> > >> How much of foo/bar should it restore?
> > >
> > > You have done the following:
> > >
> > > 1. Delete a folder.
> > >
> > > 2. Add a file.
> > >
> > > If you revert "foo" it will remove the add, but it won't restore
> > the folder... you would have to revert the delete which would
> > restore the folder.
> >
> > Perhaps, but if I delete a file and replace it with another file,
> > or
> > delete a directory and replace it with a directory, then revert
> > will
> > undo both the add and the delete.  Nodes that get reverted don't
> > generally end up deleted, they end up pristine.
> 
> Ah... well I just tried it and can't do it. At least, in Windows... if
> I svn delete a folder and then try to create a file of the same name I
> get an error that it is a duplicate name. Because the folder is still
> in the file system marked as deleted in the working copy. Perhaps
> another file system type will still allow the file to be there?

This scenario is new in 1.7. It couldn't work on older versions because:
* The directory would remain after deleting (to keep the .svn). In 1.7 the
data is in the single .svn of the working copy root.
* svn_wc_entry_t could only store one node type.

        Bert


Reply via email to