tPrint the number of remaining commits - stagit - [fork] customized build of st… | |
git clone git://src.adamsgaard.dk/stagit | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit ad4f39870db9f6b93865f4e46dfda175e87c1f53 | |
parent ba27f14e8534a17b383c09c63d509aa5a5655f20 | |
Author: Quentin Rameau <[email protected]> | |
Date: Tue, 16 Nov 2021 18:17:45 +0100 | |
Print the number of remaining commits | |
Diffstat: | |
M stagit.c | 27 ++++++++++++++++----------- | |
1 file changed, 16 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/stagit.c b/stagit.c | |
t@@ -74,7 +74,7 @@ static char *licensefiles[] = { "HEAD:LICENSE", "HEAD:LICENS… | |
static char *license; | |
static char *readmefiles[] = { "HEAD:README", "HEAD:README.md", "HEAD:README.r… | |
static char *readme; | |
-static long long nlogcommits = -1; /* < 0 indicates not used */ | |
+static long long nlogcommits = -1; /* -1 indicates not used */ | |
/* cache */ | |
static git_oid lastoid; | |
t@@ -777,6 +777,7 @@ writelog(FILE *fp, const git_oid *oid) | |
git_oid id; | |
char path[PATH_MAX], oidstr[GIT_OID_HEXSZ + 1]; | |
FILE *fpfile; | |
+ size_t remcommits = 0; | |
int r; | |
git_revwalk_new(&w, repo); | |
t@@ -796,8 +797,11 @@ writelog(FILE *fp, const git_oid *oid) | |
/* optimization: if there are no log lines to write and | |
the commit file already exists: skip the diffstat */ | |
- if (!nlogcommits && !r) | |
- continue; | |
+ if (!nlogcommits) { | |
+ remcommits++; | |
+ if (!r) | |
+ continue; | |
+ } | |
if (!(ci = commitinfo_getbyoid(&id))) | |
break; | |
t@@ -805,15 +809,10 @@ writelog(FILE *fp, const git_oid *oid) | |
if (commitinfo_getstats(ci) == -1) | |
goto err; | |
- if (nlogcommits < 0) { | |
+ if (nlogcommits != 0) { | |
writelogline(fp, ci); | |
- } else if (nlogcommits > 0) { | |
- writelogline(fp, ci); | |
- nlogcommits--; | |
- if (!nlogcommits && ci->parentoid[0]) | |
- fputs("<tr><td></td><td colspan=\"5\">" | |
- "More commits remaining [...]</td>" | |
- "</tr>\n", fp); | |
+ if (nlogcommits > 0) | |
+ nlogcommits--; | |
} | |
if (cachefile) | |
t@@ -835,6 +834,12 @@ err: | |
} | |
git_revwalk_free(w); | |
+ if (nlogcommits == 0 && remcommits != 0) { | |
+ fprintf(fp, "<tr><td></td><td colspan=\"5\">" | |
+ "%zu more commits remaining, fetch the repository" | |
+ "</td></tr>\n", remcommits); | |
+ } | |
+ | |
relpath = ""; | |
return 0; |