Thread (3 messages) flat view 3 messages, 2 authors, 2016-06-15

"stg reset --status" doesn't just reset status

From: Pavel Roskin <hidden>
Date: 2016-06-15 22:44:27

Hello!

I used to see messages like this:

$ stg pull
Checking for changes in the working directory ... done
stg pull: local changes in the tree. Use "refresh" or "status --reset"

This time I decided to see what "stg reset --status" actually does,  
and I was unpleasantly surprised that it would do much more that its  
name implies.

It doesn't just reset the status (no idea what it would be, but it  
doesn't sound scary).  It removes all local changes.  It's essentially  
"git reset --hard".  I can easily imagine that some beginner would  
lose valuable changes by following that advice while trying to update  
from the upstream repository.

I would hate to suggest another stg command, as there are too many of  
them already.  On the other hand, if "applied" and "unapplied" are  
downgraded to switches for "stg series", we probably could justify  
adding one more command, "stg reset".  By the way, the default could  
be to save the changes to a hidden "stash" patch, and the "--hard"  
switch would do a real reset.

Another (not alternative) approach would be to have an option to "stg  
pull" to save the changes as a temporary patch that would be applied  
and deleted if it applied cleanly.  That shouldn't be a default for  
"stg pull", as it's likely that the user just forgot "stg refresh".

-- 
Regards,
Pavel Roskin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help