All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Miles Bader <miles@gnu.org>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
	Goswin von Brederlow <goswin-v-b@web.de>,
	git@vger.kernel.org, Andreas Schwab <schwab@linux-m68k.org>
Subject: Re: 'commit -a' safety
Date: Sat, 24 Apr 2010 12:26:32 +0200	[thread overview]
Message-ID: <201004241226.34884.jnareb@gmail.com> (raw)
In-Reply-To: <87fx2li36m.fsf@catnip.gol.com>

On Sat, 24 April 2010, Miles Bader wrote:
> Jakub Narebski <jnareb@gmail.com> writes:

> > I'd like for 'git commit -a' to *fail* if there are staged changes for
> > tracked files, excluding added, removed and renamed files.  If you
> > have some staged changes you would get an error message:
> >
> >   $ git add tracked-file
> >   $ git commit -a
> >   fatal: There are staged changes to tracked files
> >   hint: To commit staged changes, use 'git commit'
> >   hint: To commit all changes, use 'git commit -f -a' 
> 
> That's bad because of the dual nature of "git add" -- someone may
> normally use "-a" most of the time to commit changes, but has really no
> choice other than git add to add a new file, So with this change, their
> normal (and reasonable) habits would suddenly result in failure.
> 
> I think it's sort of annoying that "git add" has such a dual meaning
> (instead of, for instance, having separate "add" and "stage" commands)
> -- it's one of the more confusing things about learning about git
> -- but oh well, it's unlikely to get changed at this point....

First, this is to be optional safety, by default turned off.  So if you
do not have problems with situation where you accidentally use 
'git commit -a' instead of 'git commit', committing not what you wanted
and prepared, you simply do not turn it on.


Second, to be more exact the safety would be triggered only if staged
change _differs_ from what is in working area.  Therefore

  $ git add file
  $ git commit -a

would not trigger this safety, while

  $ git add file
  $ edit file
  $ git commit -a
  fatal: There are staged changes

would trigger it.


Third, there is "git add -N" to mark file as tracked, but not add its
current context.

  $ git add -N file
  $ edit file
  $ git commit -a

should not trigger this safety.

-- 
Jakub Narebski
Poland

  parent reply	other threads:[~2010-04-24 10:27 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20100422151037.2310.2429.reportbug@frosties.localdomain>
2010-04-22 15:58 ` Please default to 'commit -a' when no changes were added Jonathan Nieder
2010-04-22 18:37   ` Goswin von Brederlow
2010-04-22 19:03     ` Nicolas Pitre
2010-04-22 19:08       ` Sverre Rabbelier
2010-04-22 20:37       ` Goswin von Brederlow
2010-04-22 21:25         ` Nicolas Pitre
2010-04-23  9:03           ` Goswin von Brederlow
2010-04-23  9:31             ` Miles Bader
2010-04-23 16:01             ` Wincent Colaiuta
2010-04-23 20:17               ` Goswin von Brederlow
2010-04-23 20:26                 ` Michael Witten
2010-04-23 20:33                 ` Daniel Grace
2010-04-23 21:01                 ` Nicolas Pitre
2010-04-24 21:15                   ` Goswin von Brederlow
2010-04-24 21:40                     ` Jonathan Nieder
2010-04-24 22:08                       ` Goswin von Brederlow
2010-04-24 22:42                         ` Jonathan Nieder
2010-04-25  2:47                       ` Miles Bader
2010-04-25  3:33                         ` Jonathan Nieder
2010-04-23 22:35                 ` Matthias Andree
2010-04-24  1:43                 ` Junio C Hamano
2010-04-22 21:28         ` Junio C Hamano
2010-04-22 21:40           ` Matthieu Moy
2010-04-22 21:57             ` Michael Witten
2010-04-23  9:09             ` Goswin von Brederlow
2010-04-23  9:22               ` Tomas Carnecky
2010-04-23 17:00                 ` Michael Witten
2010-04-23  9:27               ` Matthieu Moy
2010-04-23  9:35               ` Tor Arntsen
2010-04-22 21:48         ` Adam Brewster
2010-04-22 22:27           ` Jonathan Nieder
2010-04-23  9:15             ` Goswin von Brederlow
2010-04-23 10:39               ` The index (Re: Please default to 'commit -a' when no changes were added) Jonathan Nieder
2010-04-22 22:38           ` Please default to 'commit -a' when no changes were added Jon Seymour
2010-04-23  0:04             ` Adam Brewster
2010-04-23  9:25             ` Goswin von Brederlow
2010-04-23  9:14           ` Goswin von Brederlow
2010-04-23  9:39         ` Björn Steinbrink
2010-04-23 11:44           ` Sergei Organov
2010-04-23 11:57             ` Sverre Rabbelier
2010-04-23 12:20               ` Sergei Organov
2010-04-23 14:23           ` Goswin von Brederlow
2010-04-23 18:59   ` Matthias Andree
2010-04-23 19:34     ` Michael Witten
2010-04-23 22:18       ` Matthias Andree
2010-04-23 22:25         ` Eric Raymond
2010-04-23 23:38           ` Michael Witten
2010-04-24  4:38             ` Eric Raymond
2010-04-24  9:05               ` Michael Witten
2010-04-24  9:09                 ` Eric Raymond
2010-04-23 23:26         ` Michael Witten
2010-04-24 13:26       ` Tor Arntsen
2010-04-24  9:40   ` 'commit -a' safety (was: Re: Please default to 'commit -a' when no changes were added) Jakub Narebski
2010-04-24  9:56     ` 'commit -a' safety Miles Bader
2010-04-24 10:05       ` Andreas Schwab
2010-04-24 10:26       ` Jakub Narebski [this message]
2010-04-24 13:29         ` Miles Bader
2010-04-24 18:23         ` Nicolas Pitre
2010-04-25  0:16           ` Jakub Narebski
2010-04-25  2:43             ` Miles Bader
2010-04-24 11:10     ` 'commit -a' safety (was: Re: Please default to 'commit -a' when no changes were added) Wincent Colaiuta
2010-04-24 11:48       ` 'commit -a' safety Jakub Narebski
2010-04-24 14:28         ` Joey Hess
2010-04-24 15:11           ` Mike Hommey
2010-04-24 16:42       ` 'commit -a' safety (was: Re: Please default to 'commit -a' when no changes were added) Petr Baudis
2010-04-24 16:59         ` Bug#578764: " Wincent Colaiuta
2010-04-24 17:47           ` Petr Baudis
2010-04-24 18:35         ` Nicolas Pitre
2010-04-24 18:54           ` Petr Baudis
2010-04-24 19:09             ` Nicolas Pitre
2010-04-24 19:35             ` Jacob Helwig
2010-04-24 19:44               ` Nicolas Pitre
2010-04-24 19:57                 ` Jacob Helwig
2010-04-24 23:47         ` 'commit -a' safety Jakub Narebski
2010-04-25  1:13         ` Junio C Hamano
2010-04-25  8:01           ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201004241226.34884.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=goswin-v-b@web.de \
    --cc=jrnieder@gmail.com \
    --cc=miles@gnu.org \
    --cc=schwab@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.