ctucx.git: stagit

ctucx' stagit fork

commit f843248215c1f87d732b2aec27b1d30c0ceba163
parent 54a8a7c1533ce60e3cbe8539bf1e801225d0fabd
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 23 Jun 2017 13:53:46 +0200

separate getstats from getbyoid: slightly faster
1 file changed, 4 insertions(+), 2 deletions(-)
M
stagit.c
|
6
++++--
diff --git a/stagit.c b/stagit.c
@@ -208,8 +208,6 @@ commitinfo_getbyoid(const git_oid *id)
 	opts.flags |= GIT_DIFF_DISABLE_PATHSPEC_MATCH;
 	if (git_diff_tree_to_tree(&(ci->diff), repo, ci->parent_tree, ci->commit_tree, &opts))
 		goto err;
-	if (commitinfo_getstats(ci) == -1)
-		goto err;
 
 	return ci;
 

@@ -575,6 +573,9 @@ writelog(FILE *fp, const git_oid *oid)
 			break;
 		if (!(ci = commitinfo_getbyoid(&id)))
 			break;
+		/* lookup stats: only required here */
+		if (commitinfo_getstats(ci) == -1)
+			goto err;
 
 		writelogline(fp, ci);
 		if (cachefile)

@@ -596,6 +597,7 @@ writelog(FILE *fp, const git_oid *oid)
 			writefooter(fpfile);
 			fclose(fpfile);
 		}
+err:
 		commitinfo_free(ci);
 	}
 	git_revwalk_free(w);