|
|
Print the number of remaining commits - stagit - static git page generator |
|
|
 |
git clone git://git.codemadness.org/stagit (git://git.codemadness.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
README |
|
|
 |
LICENSE |
|
|
|
--- |
|
|
 |
commit 67e5e6c5e74117b478c150480c282a03543fe887 |
|
|
 |
parent 5f78d89d591ad26b902947288625b90528954372 |
|
|
 |
Author: Quentin Rameau <quinq@fifth.space> (mailto://) |
|
|
|
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 |
|
|
|
@@ -71,7 +71,7 @@ static char *licensefiles[] = { "HEAD:LICENSE", "HEAD:LICENSE.md", "HEAD:COPYING |
|
|
|
static char *license; |
|
|
|
static char *readmefiles[] = { "HEAD:README", "HEAD:README.md" }; |
|
|
|
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; |
|
|
|
@@ -764,6 +764,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); |
|
|
|
@@ -783,8 +784,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; |
|
|
|
@@ -792,15 +796,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) |
|
|
|
@@ -822,6 +821,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; |
|