On 3 Apr 2011, at 15:26, Guillaume Hoffmann wrote:

> I'd like to see the unrevert command going away. I'd like to collect
> opinions on this. Let me start :-)
> 
> Arguments for removing it:
> 
> - people don't expect it (other VCS don't have it),

I do expect it, because of the symmetry of the command set. I don't care what 
other VCS do, I do not inspect their command set in order to make expectations 
for darcs, especially when they have less features in that direction. Many VCS 
do not have cherry picking. Is this an argument to remove it because people do 
not expect it? I'd say the things darcs does and other VCS don't are part of 
its strong points not its weaknesses.

> hence few people
> use it, and most would't miss it
> - it would prevent darcs from getting in my way by occasional
> "warning, this will make unrevert impossible" messages

I hardly see this as getting in my way. It's a valid warning that means that if 
I rely on unrevert later it will be made impossible by my current operation. I 
need to know that and plan around it. The only way it can go away is if darcs 
can solve it automatically and allow me to unrevert later even if I perform the 
current operation.

> - it would reduce the number of concepts exposed to the users in the
> manual and in darcs help

On the contrary. With a symmetric command set, it's less to remember. With 
every asymmetry you introduce in the command set I have to remember more 
exceptions.

> - it would reduce the codebase, reduce the potential points of failure
> of darcs (search "unrevert" bugs on the bug tracker), improve
> maintainability
> - it would make revert faster (no longer write the unrevert patch when
> doing revert)

seriously, how much faster? it's not like revert is slow and we need to find 
every means possible to optimize it. I find symmetry much more important, to 
give up for a speed increase that most likely I won't even be able to tell 
apart.

> - it would make one item less on Ganesh's rebase Todo list :-)
> - it could later be replaced by darcs revert -O (even if it's not
> really the same thing)

revert -O doesn't sound like unrevert to me. I can intuitively guess that 
unrevert is the opposite of revert, but I have no clue what revert -O does 
without consulting a manual.

> 
> Arguments against removing it:
> 
> - some people use this feature
> - it's theoretically a nice feature (it's a nice use of patch
> commutation) so it's sad to remove it
> - it's an undo command, and having undo commands is generally nice

This is another very strong reason. Having undo capabilities, allows me to do 
things without the fear of mistakingly throwing all my day's work out the 
window. I also do not have to deal with annoying "Are you sure" confirmation 
dialogs, that in the end people tend to automatically skip and automatically 
press Yes because 99% of the time they answer with Yes anyway. I'm sure that 
everyone had an "oh sh*t!" moment in their lives when they automatically 
answered a confirmation dialog out of habit, just to realize that, that time, 
they had to actually say No, but they pressed the Yes button too quickly out of 
habit and all their work was lost for good.
Undo capabilities allow you to avoid that and to avoid the stress of always 
taking care not to mess up. We're human and we make mistakes. Sooner or later 
each of us will make a mistake and we'll be glad that we can undo it and not 
worry about it.

--
Dan




_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to