From 8116a9fe8eb963c2d4cf44af9bad9c7b1cb59a15 Mon Sep 17 00:00:00 2001
From: Seth Raphael <magicseth@gmail.com>
Date: Tue, 11 May 2010 15:07:07 -0700
Subject: [PATCH] Follow Commit-msg hook rules: allow it to edit the commit message, before committing.

---
 PBGitIndex.m |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/PBGitIndex.m b/PBGitIndex.m
index 39ed3b4..4265766 100644
--- a/PBGitIndex.m
+++ b/PBGitIndex.m
@@ -175,13 +175,6 @@ - (void)commitWithMessage:(NSString *)commitMessage
 
 	[self postCommitUpdate:@"Creating commit"];
 	int ret = 1;
-	NSString *commit = [repository outputForArguments:arguments
-										  inputString:commitMessage
-							   byExtendingEnvironment:amendEnvironment
-											 retValue: &ret];
-	
-	if (ret || [commit length] != 40)
-		return [self postCommitFailure:@"Could not create a commit object"];
 	
 	[self postCommitUpdate:@"Running hooks"];
 	if (![repository executeHook:@"pre-commit" output:nil])
@@ -190,6 +183,16 @@ - (void)commitWithMessage:(NSString *)commitMessage
 	if (![repository executeHook:@"commit-msg" withArgs:[NSArray arrayWithObject:commitMessageFile] output:nil])
 		return [self postCommitFailure:@"Commit-msg hook failed"];
 	
+	commitMessage = [NSString stringWithContentsOfFile:commitMessageFile encoding:NSUTF8StringEncoding error:nil];
+	
+	NSString *commit = [repository outputForArguments:arguments
+										  inputString:commitMessage
+							   byExtendingEnvironment:amendEnvironment
+											 retValue: &ret];
+	
+	if (ret || [commit length] != 40)
+		return [self postCommitFailure:@"Could not create a commit object"];
+	
 	[self postCommitUpdate:@"Updating HEAD"];
 	[repository outputForArguments:[NSArray arrayWithObjects:@"update-ref", @"-m", commitSubject, @"HEAD", commit, nil]
 						  retValue: &ret];
-- 
1.6.4.4

