I have found what seems to be a bug in the short "git commit $file" mode
of interaction with git. To reproduce it, you can:
1. Create a repository with some content.
$ (mkdir a ; cd a ; git init ; echo hi > file ; git add file ; git commit -m 'initial commit')
Initialized empty Git repository in /tmp/playground.2009-01-21.w15613/a/.git/
Created initial commit 276d6eb: initial commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 file
2. Clone that repository.
$ git clone a b
Initialized empty Git repository in /tmp/playground.2009-01-21.w15613/b/.git/
3. Create changes in "a" that are not yet cloned into "b".
$ (cd a ; echo ho > file ; git add file ; git commit -m update)
Created commit 91deff9: update
1 files changed, 1 insertions(+), 1 deletions(-)
4. Make changes in "b", the clone.
$ echo lol > file
$ git add file ; git commit -m 'Some changes'
Created commit 5d74b5b: Some changes
1 files changed, 1 insertions(+), 1 deletions(-)
5. Fetch and merge (AKA pull) from the first repo.
$ git pull
remote: Counting objects: 5, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /tmp/playground.2009-01-21.w15613/a/
276d6eb..91deff9 master -> origin/master
Auto-merged file
CONFLICT (content): Merge conflict in file
Automatic merge failed; fix conflicts and then commit the result.
6. Resolve the conflict (in our case, by discarding the changes in the "b"
clone).
$ echo ho > file
7. Commit the resolved conflict.
NOTE: The normal way to do step 6 is to "git add file ; git commit -m
yay". But I will now try to use the "git commit file" shorthand:
$ git commit file -m 'Resolved conflict'
fatal: cannot do a partial commit during a merge.
8. Declare a bug.
I believe that the "git commit file" command issued in step 6 should have
worked as well as the "git add file ; git commit" that us old-time git
users do.
9. Discuss on the git list.
Do y'all agree that the git behavior is strange and unnecessarily
user-impeding here?
Cheers!
-- Asheesh.
P.S. I'm not the one who ran into the bad behavior here; Nathan (CC:d) is
the one who did. You don't have to keep him CC:d, though.
--
Avoid gunfire in the bathroom tonight.
--
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