separate getstats from getbyoid: slightly faster
1 files changed, 4 insertions(+), 2 deletions(-) | |||
---|---|---|---|
M | stagit.c | +4 | -2 |
1@@ -208,8 +208,6 @@ commitinfo_getbyoid(const git_oid *id)
2 opts.flags |= GIT_DIFF_DISABLE_PATHSPEC_MATCH;
3 if (git_diff_tree_to_tree(&(ci->diff), repo, ci->parent_tree, ci->commit_tree, &opts))
4 goto err;
5- if (commitinfo_getstats(ci) == -1)
6- goto err;
7
8 return ci;
9
10@@ -575,6 +573,9 @@ writelog(FILE *fp, const git_oid *oid)
11 break;
12 if (!(ci = commitinfo_getbyoid(&id)))
13 break;
14+ /* lookup stats: only required here */
15+ if (commitinfo_getstats(ci) == -1)
16+ goto err;
17
18 writelogline(fp, ci);
19 if (cachefile)
20@@ -596,6 +597,7 @@ writelog(FILE *fp, const git_oid *oid)
21 writefooter(fpfile);
22 fclose(fpfile);
23 }
24+err:
25 commitinfo_free(ci);
26 }
27 git_revwalk_free(w);