git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
@ 2019-08-27  9:53 Vipul
  2019-08-27 19:05 ` Jeff King
  2019-08-27 22:22 ` Pratyush Yadav
  0 siblings, 2 replies; 6+ messages in thread
From: Vipul @ 2019-08-27  9:53 UTC (permalink / raw)
  To: git


[-- Attachment #1.1: Type: text/plain, Size: 1787 bytes --]

Hi,

Sometimes, I messed-up with git repository and lost works due
carelessness. This includes reset a branch instead of other, drop the
stash etc by mistake. I wonder, is there way to a get an interactive
confirmation prompt (which ask for yes/no option) before executing those
commands when users can possibly lose their work? Like, some UNIX
commands have support for an interactive prompt (like 'rm -i', 'mv -i',
'cp -i', etc) for ex: before deleting and overwriting a file a
confirmation is prompt and asking for users permission.
	If there would no such feature available in git, so how do other people
avoid these kind of mistakes? Obviously, one them would be recheck the
command carefully before executing it and repo status but, I think
sometimes people also do these kind of mistakes. For now, to minimize
some of these kind problems I've modified my bash shell prompt to show
all kind information related to a git repository by sourcing
"git-prompt" script (provided with git package) and turn on all of flags
provided by it which significantly increase my productivity and less
mistakes than earlier. But, anything else I can do to avoid these kind
of mistakes at first place or increase my productivity (it includes
adopting some best practices, using some command line tools etc).
  	I searched it on the Internet and found that there are many GUI tools
available which help with these problems but don't want to use GUI tools
because most of time I work in command line environment and love using
command line tool than GUI one.

Any help would be greatly appreciated. Thanks.

PS: Sometimes, I would recover my work by seeking some help mostly on
#git IRC but, it would be better avoid this kind of mess at first place.

Cheers,
Vipul


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
  2019-08-27  9:53 Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands Vipul
@ 2019-08-27 19:05 ` Jeff King
  2019-08-27 22:42   ` Vipul
  2019-08-27 22:22 ` Pratyush Yadav
  1 sibling, 1 reply; 6+ messages in thread
From: Jeff King @ 2019-08-27 19:05 UTC (permalink / raw)
  To: Vipul; +Cc: git

On Tue, Aug 27, 2019 at 09:53:30AM +0000, Vipul wrote:

> Sometimes, I messed-up with git repository and lost works due
> carelessness. This includes reset a branch instead of other, drop the
> stash etc by mistake. I wonder, is there way to a get an interactive
> confirmation prompt (which ask for yes/no option) before executing those
> commands when users can possibly lose their work? Like, some UNIX
> commands have support for an interactive prompt (like 'rm -i', 'mv -i',
> 'cp -i', etc) for ex: before deleting and overwriting a file a
> confirmation is prompt and asking for users permission.
> 	If there would no such feature available in git, so how do other people
> avoid these kind of mistakes?

The usual philosophy in Git is not to bother the user with
confirmations, but to allow recovery after a mistake.

If you've moved a branch pointer around (e.g., via "git branch -f" or
"git reset"), you can recover it from the reflog.

In the case of a mistakenly dropped stash, there's no reflog (the stash
list itself is implemented as a reflog!), but you can use "git fsck" to
generate a list of "dangling" commits. These are commits which are
unreferenced, but they hang around until at least the next git-gc run.

Note that there _are_ some commands which are not reversible: mostly
things that drop content from the working tree. So "git reset --hard" is
one, and "git clean" is another. There have been discussions and even
some patches about storing the lost in an "undo log", but nothing has
been merged.

-Peff

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
  2019-08-27  9:53 Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands Vipul
  2019-08-27 19:05 ` Jeff King
@ 2019-08-27 22:22 ` Pratyush Yadav
  1 sibling, 0 replies; 6+ messages in thread
From: Pratyush Yadav @ 2019-08-27 22:22 UTC (permalink / raw)
  To: Vipul; +Cc: git

On 27/08/19 09:53AM, Vipul wrote:
> Hi,
> 
> Sometimes, I messed-up with git repository and lost works due
> carelessness. This includes reset a branch instead of other, drop the
> stash etc by mistake. I wonder, is there way to a get an interactive
> confirmation prompt (which ask for yes/no option) before executing those
> commands when users can possibly lose their work? Like, some UNIX
> commands have support for an interactive prompt (like 'rm -i', 'mv -i',
> 'cp -i', etc) for ex: before deleting and overwriting a file a
> confirmation is prompt and asking for users permission.
> 	If there would no such feature available in git, so how do other people
> avoid these kind of mistakes? Obviously, one them would be recheck the
> command carefully before executing it and repo status but, I think
> sometimes people also do these kind of mistakes. For now, to minimize
> some of these kind problems I've modified my bash shell prompt to show
> all kind information related to a git repository by sourcing
> "git-prompt" script (provided with git package) and turn on all of flags
> provided by it which significantly increase my productivity and less
> mistakes than earlier. But, anything else I can do to avoid these kind
> of mistakes at first place or increase my productivity (it includes
> adopting some best practices, using some command line tools etc).
>   	I searched it on the Internet and found that there are many GUI tools
> available which help with these problems but don't want to use GUI tools
> because most of time I work in command line environment and love using
> command line tool than GUI one.
 
On top of Jeff's great answer, I'll add that I try to not keep my work 
local for too long. I usually push out changes, even when they are WIP, 
to a fork kept on a server somewhere (GitHub for my personal projects). 
This way, if I mess up something real bad, I can clone the repo from the 
server and recover my work, at least partially.

[snip]

-- 
Regards,
Pratyush Yadav

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
  2019-08-27 19:05 ` Jeff King
@ 2019-08-27 22:42   ` Vipul
  2019-08-28 15:05     ` Jeff King
  0 siblings, 1 reply; 6+ messages in thread
From: Vipul @ 2019-08-27 22:42 UTC (permalink / raw)
  To: Jeff King; +Cc: git


[-- Attachment #1.1: Type: text/plain, Size: 1433 bytes --]

Jeff King wrote:
> The usual philosophy in Git is not to bother the user with
> confirmations, but to allow recovery after a mistake.
> 

Well, always prompting for confirmation will be annoying for some people
specially who are mastered in git but, may be very useful feature for
beginner's to avoid them from making mistakes. May be, this feature will
be disabled by default and users have to set some config variable (like
other git-config variable for example help.autocorrect etc) in global
gitconfig file.

> If you've moved a branch pointer around (e.g., via "git branch -f" or
> "git reset"), you can recover it from the reflog.
> 

Recovery is not a problem, asking for help on #git IRC people will tell
you whether data is recoverable. If recoverable, they will even guide
you step-by-step. But, I think it would be good idea to not make these
kind of mistakes at first place. Ultimately, we as a developer want to
make software more user-friendly and usable for normal users.

> Note that there _are_ some commands which are not reversible: mostly
> things that drop content from the working tree. So "git reset --hard" is
> one, and "git clean" is another. There have been discussions and even
> some patches about storing the lost in an "undo log", but nothing has
> been merged.
>
Seems like a good idea. Are they ever gonna merge? If no, why? Or, it
will merge in next feature release.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
  2019-08-27 22:42   ` Vipul
@ 2019-08-28 15:05     ` Jeff King
  2019-08-28 15:27       ` Duy Nguyen
  0 siblings, 1 reply; 6+ messages in thread
From: Jeff King @ 2019-08-28 15:05 UTC (permalink / raw)
  To: Vipul; +Cc: Nguyễn Thái Ngọc Duy, git

On Tue, Aug 27, 2019 at 10:42:03PM +0000, Vipul wrote:

> Jeff King wrote:
> > The usual philosophy in Git is not to bother the user with
> > confirmations, but to allow recovery after a mistake.
> > 
> 
> Well, always prompting for confirmation will be annoying for some people
> specially who are mastered in git but, may be very useful feature for
> beginner's to avoid them from making mistakes. May be, this feature will
> be disabled by default and users have to set some config variable (like
> other git-config variable for example help.autocorrect etc) in global
> gitconfig file.

Sure, I think there's an argument to be made for confirmations (though I
personally would not want them). I was just describing what Git has now.

> > Note that there _are_ some commands which are not reversible: mostly
> > things that drop content from the working tree. So "git reset --hard" is
> > one, and "git clean" is another. There have been discussions and even
> > some patches about storing the lost in an "undo log", but nothing has
> > been merged.
> >
> Seems like a good idea. Are they ever gonna merge? If no, why? Or, it
> will merge in next feature release.

I don't know the latest state. A quick search of the archive showed this
as the latest version:

  https://public-inbox.org/git/20181209104419.12639-1-pclouds@gmail.com/

-Peff

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands
  2019-08-28 15:05     ` Jeff King
@ 2019-08-28 15:27       ` Duy Nguyen
  0 siblings, 0 replies; 6+ messages in thread
From: Duy Nguyen @ 2019-08-28 15:27 UTC (permalink / raw)
  To: Jeff King; +Cc: Vipul, Git Mailing List

On Wed, Aug 28, 2019 at 10:05 PM Jeff King <peff@peff.net> wrote:
> > > Note that there _are_ some commands which are not reversible: mostly
> > > things that drop content from the working tree. So "git reset --hard" is
> > > one, and "git clean" is another. There have been discussions and even
> > > some patches about storing the lost in an "undo log", but nothing has
> > > been merged.
> > >
> > Seems like a good idea. Are they ever gonna merge? If no, why? Or, it
> > will merge in next feature release.

If people are interested in the backup-log thing below, they can
reuse/refine the work or the idea from that, but I'm not going to push
it (or anything else) for merging.

> I don't know the latest state. A quick search of the archive showed this
> as the latest version:
>
>   https://public-inbox.org/git/20181209104419.12639-1-pclouds@gmail.com/
-- 
Duy

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-08-28 15:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-27  9:53 Support for an interactive confirmation prompt when users can possibly lose their work like some UNIX commands Vipul
2019-08-27 19:05 ` Jeff King
2019-08-27 22:42   ` Vipul
2019-08-28 15:05     ` Jeff King
2019-08-28 15:27       ` Duy Nguyen
2019-08-27 22:22 ` Pratyush Yadav

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).