On 17 Sep 2001 09:24:33 -0500
> Mo DeJong <email@example.com> writes:
> > My second question is related to the "unadd" and "undelete" methods included
> > in the svn client. Why do we need a special unadd method to undo an add?
> > Can't the user just call delete on the file or dir?
> Currently, the user can call delete to effectively un-add a file. Do
> I think this is proper? Not particularly.
Thanks for the reply Mike. Could I bother you to elaborate a bit more
on why doing a `svn add foo.c` and then a `svn delete foo.c` to change
your mind before a commit is wrong? Shouldn't the user think of add
and delete as inverse operations? If so, don't the unadd and undelete
operations just function as aliases? I know they are different functions,
I am just trying to look at this from a new user's perspective.
> When I first started using CVS (which was only about 3 years ago),
> there were some things I simply did NOT understand. Why was it that
> when I would "add" a directory, it happened immediately, yet adding
> files required a commit?
Or that adding a file without doing a commit required write access to the
CVS repo, what were they thinking?
> Why was it that I couldn't delete
> directories, with or without a commit? Why was it that obviously the
> files I just added weren't really versioned until I committed, yet
> somehow I could delete them? Delete them from what?!
> All that aside though, I have no personal connection with the unadd
> command. If the community wishes to lose it, that's fine with me --
> one less thing to debug. :-) (and there are definitely still bugs
> there -- I never got a chance to debug unadd or undelete)
I tried to come up with a good reason to include the unadd and undelete
subcommands. I could not think of anything that could not be done
using add/delete before doing a commit. One thing about the undelete
method that did seem interesting was the possibility of using it after
a commit that removes a directory.
% mkdir newdir
% svn add newdir
% touch foo.c
% svn add foo.c
% cd ..
% svn commit newdir -m "added newdir"
% svn delete newdir
% svn commit -m "deleted newdir"
% svn undelete newdir
% svn commit -m "woops, I did not want to delete newdir"
I looked around in svn_wc_undelete but it does not look like this is what
it was trying to do. Does this seem like a reasonable use case? Is there
some other way a user could resurrect a directory that had been deleted?
If not, perhaps the undelete subcommand should be retained.
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Sat Oct 21 14:36:41 2006