ctucx.git: stagit

ctucx' stagit fork

commit 30116a4ef2c1d90a3662b2878e54f3da2fc56894
parent 44a49f51db565cbfc31f31393d8dcdec1cdc8167
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 29 May 2016 15:04:52 +0200

treat an empty repo (without a HEAD) as valid

and create the standard files. Disable caching if there is no HEAD.
1 file changed, 10 insertions(+), 5 deletions(-)
M
stagit.c
|
15
++++++++++-----
diff --git a/stagit.c b/stagit.c
@@ -1038,11 +1038,14 @@ main(int argc, char *argv[])
 	}
 
 	/* find HEAD */
-	if (git_revparse_single(&obj, repo, "HEAD"))
-		return 1;
-	head = git_object_id(obj);
+	if (!git_revparse_single(&obj, repo, "HEAD"))
+		head = git_object_id(obj);
 	git_object_free(obj);
 
+	/* don't cache if there is no HEAD */
+	if (!head)
+		cachefile = NULL;
+
 	/* use directory name as name */
 	if ((name = strrchr(repodirabs, '/')))
 		name++;

@@ -1138,7 +1141,8 @@ main(int argc, char *argv[])
 		}
 		fclose(wcachefp);
 	} else {
-		writelog(fp, head);
+		if (head)
+			writelog(fp, head);
 	}
 
 	fputs("</tbody></table>", fp);

@@ -1148,7 +1152,8 @@ main(int argc, char *argv[])
 	/* files for HEAD */
 	fp = efopen("files.html", "w");
 	writeheader(fp, "Files");
-	writefiles(fp, head, "HEAD");
+	if (head)
+		writefiles(fp, head, "HEAD");
 	writefooter(fp);
 	fclose(fp);