Re: "git commit --amend --only --" nevertheless commits staged changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 10, 2012 at 01:14:32PM -0700, Junio C Hamano wrote:

> I do not think the combination with --amend, --only and no paths
> ever worked.  We rejected such a combination before 6a74642c5, which
> merely made us to accept the combination but I do not think the
> commit did anything to re-read the tree from the HEAD being amended
> to the index.
> 
> Something like this, but I haven't thought about what other things
> it may break.

Our emails just crossed. I came to the exact same conclusion, and just
wrote almost the exact same patch.

> -	if (!pathspec || !*pathspec) {
> +	if (!(only && amend) && (!pathspec || !*pathspec)) {

It is sufficient to check only "only" in the first part of your
conditional, as we disallow empty pathspecs with "-o". And even if we
didn't disallow it, this would do the right thing by trying to create a
partial commit with no changes (which would fail, of course, but is the
only sane thing for the prepare_index function to do; certainly doing an
as-is commit is simply wrong).

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]