abergmeierdsfishl...@gmail.com wrote:

  I am using git gui and now am trying to write a pre-commit hook (which 
analyzes a complete diff).


  Adding support for amending is a big problem.
  1. There seems to be now information whether the current commit is an amend 
and as such, you can not analyze the resulting complete diff (only the delta to 
the old commit).
  2. There seems to be absolutely no way of determining in the pre-commit, that 
it was a amend commit.
  3. A workaround would be to try to detect whether the hook was called from an 
amend command. Even trying to analyze the process tree fails, though. When 
calling pstree I get the following output:


  `-git gui
    `-wish /usr/lib/git-core/git-gui --
       `-pre-commit .git/hooks/pre-commit


  So looking at this there is no amend call in the process tree. As such I 
expect, that git gui is not using the "standard" amend but has some own way of 
amending commits. Is this true?
  Is there any way of handling that properly?
---
I think you need to look carefully at the way the "Index" (or staging area) is 
used to distinguish between some of the different commit versions. The current 
branch tip may not match the current work tree, and also not match the index 
(what would be committed)

The other factor is the potential changed commit object ID (oid), and you can 
see the changes to the current HEAD value in the HEAD reflog, or the branch's 
reflog.

Also, from the `git commit --amend` man page "See the "RECOVERING FROM UPSTREAM 
REBASE" section in git-rebase[1].)" (amend is, essentially, a one commit rebase 
;-)

Hope that helps
--

Philip

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to