git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <junkio@cox.net>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: 'git commit' ignoring args?
Date: Mon, 28 Nov 2005 11:05:00 -0800	[thread overview]
Message-ID: <7vzmnotwyr.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: 438B2F40.6070801@pobox.com

Jeff Garzik <jgarzik@pobox.com> writes:

> With the latest git as of this writing, executing
>
> 	git commit Makefile stylesheet.xsl
>
> results in an attempt to commit the above files, and also another file 
> book.xml.  book.xml is modified, but I do not wish to check it in at 
> this time, so I did not list it as an argument to 'git commit'.
>
> The only commit in the repository is the initial commit.
>
> #
> # Updated but not checked in:
> #   (will commit)
> #
> #       modified: Makefile
> #       modified: book.xml
> #       new file: stylesheet.xsl
> #
> #
> # Untracked files:
> #   (use "git add" to add to commit)
> #
> #       book.pdf
>
> Expected behavior is that Makefile and stylesheet.xsl would be checked 
> in, but not book.xml.

It should work that way, you are right.  And it worried me so
much that I tried to reproduce, but I couldn't.

The status output says it will _commit_ book.xml by listing it
in "Updated but not checked in" section, without listing it also
in "Changed but not updated".  Which means that when the
git-status was run (that is immediately after 'git-commit'
processed your command line and did git-update-index on Makefile
stylesheet.xsl for you), the index file had book.xml in sync
with your modified version in your working tree.

Could it be that at some point after touching book.xml before
running git commit you did update-index on it?


-- >8 --
Here is what I did to reproduce.

Start afresh.

        $ cd /var/tmp/
        $ rm -fr jg
        $ mkdir jg
        $ cd jg
        $ git-init-db
        defaulting to local storage area

Prepare two files and make initial commit.

        $ date >Makefile
        $ date >book.xml
        $ git add Makefile book.xml
        $ git commit -m 'Initial'
        Committing initial tree 4a7017a5ec4870d44c340943c66a7f0c1cf4885d

There are two files.

        $ git ls-tree HEAD
        100644 blob c803676f9cab3249b5b1d225e53b6d14c8545a5e	Makefile
        100644 blob 6f3b56bbff37d24d9faa78c3e0566cdab4dce8e9	book.xml

Modify two, add one.

        $ date >>book.xml
        $ date >>Makefile
        $ date >stylesheet.xsl
        $ git add stylesheet.xsl

See what happened.  The index file knows only about addition; we
have not told git about changes we did to book.xml and Makefile
yet.

        $ git diff --name-status --cached HEAD
        A	stylesheet.xsl

The working tree has three changes since the last commit.

        $ git diff --name-status HEAD
        M	Makefile
        M	book.xml
        A	stylesheet.xsl

The working tree is different from the index file in two paths.

        $ git diff --name-status
        M	Makefile
        M	book.xml

Do a partial commit, naming two files.

        $ git commit -m 'commit two' Makefile stylesheet.xsl

What's different between the working tree and what we just
committed?

        $ git diff --name-status HEAD
        M	book.xml

We should not have committed changes to book.xml; we haven't.

        $ git diff-tree --name-status HEAD
        1d3ed9f438aa705fd8433bc23400814468a1a353
        M	Makefile
        A	stylesheet.xsl
        $ exit

  reply	other threads:[~2005-11-28 19:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-28 16:24 'git commit' ignoring args? Jeff Garzik
2005-11-28 19:05 ` Junio C Hamano [this message]
2005-11-29 11:03   ` Jeff Garzik
2005-11-28 23:02 ` Andreas Ericsson
2005-11-28 23:44   ` Junio C Hamano
2005-11-29 10:38     ` Andreas Ericsson

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=7vzmnotwyr.fsf@assigned-by-dhcp.cox.net \
    --to=junkio@cox.net \
    --cc=git@vger.kernel.org \
    --cc=jgarzik@pobox.com \
    /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 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 NNTP newsgroup(s).