[Paul Burba]
> With only one exception that I know of[1], revert leaves local
> additions of every stripe as unversioned.  My first question is
> simple:
> 
> "Do we consider this the correct behavior?"
> 
> A) "Yes! svn revert only reverts the scheduled addition, but leaves
> the item behind as unversioned".  In this case the one exception [1]
> becomes a bug which we can fix.
> 
> B) "No! svn revert should remove all additions from disk.  I asked for
> it after all!".  In this case that one exception [1] is the correct
> behavior and we need fix everything else.
> 
> C) Then of course, there is the more complex answer where we allow
> revert to summarily delete additions in some cases, but not in others.
>  Perhaps local additions are left as unversioned, but copies are
> deleted.  Or perhaps in the latter case we only delete the addition if
> the copy is identical to its source.

My instinct is C).  Revert should return the wc to how it was before.
If a file's presence and contents are due only to operations performed
by svn (add-with-history (cp, mv, merge)), delete it.  If the file was
created separately from svn, keep it as an unversioned file.

'svn mkdir' is a corner case, since it is really just like 'mkdir'
followed by 'svn add', and it isn't reasonable to have to keep track of
which method was used.  I don't have a strong opinion whether 'revert'
should remove the directory.  It hardly matters, really, because
deleting an empty directory doesn't run the risk of losing very much of
a user's hard work.

> I favor 'A'.  I know that leaving behind unversioned items
> post-revert can be a bit of a pain in some use cases (e.g. "Oh I
> merged the wrong revs, let's revert and redo the correct merge, hey,
> what are all these skips!?!") but I think this approach is easy to
> understand and explain to users.  The workarounds if someone has a
> problem with this behavior are also relatively simple.

I'm a pretty heavy user of 'svn-clean' from contrib, so yeah, this
doesn't bother me very much.

Peter

Reply via email to