\n", fp); } else if (!git_submodule_lookup(&module, repo, entryname)) { - fputs("\n", fp); + fputs("\n", fp); } } @@ -963,6 +955,8 @@ main(int argc, char *argv[]) /* check README */ hasreadme = !git_revparse_single(&obj, repo, "HEAD:README"); git_object_free(obj); + hassubmodules = !git_revparse_single(&obj, repo, "HEAD:.gitmodules"); + git_object_free(obj); /* log for HEAD */ fp = efopen("log.html", "w");
submodule support - stagit-gopher - A git gopher frontend. (mirror)
git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/
Log
Files
Refs
Tags
README
LICENSE
---
commit 5c278a600ea64c64f238e14d38dafbdbee6c9562
parent 671f4e91007a149e88b57788fc76059fbeac152e
Author: Hiltjo Posthuma 
Date:   Fri, 29 Apr 2016 21:14:46 +0200

submodule support

- detect .gitmodules file for submodules, add a link "submodules" to the top menu.
- link each submodule to the .gitmodules file in HEAD.
- revert the special style for modules, but list it as a file "m---------", don't show
  the line/filesize though, it is not a file.

Diffstat:
  M stagit.c                            |      24 +++++++++---------------
  M style.css                           |       4 ----

2 files changed, 9 insertions(+), 19 deletions(-)
---
diff --git a/stagit.c b/stagit.c
@@ -46,7 +46,7 @@ static char *name = "";
 static char *stripped_name;
 static char description[255];
 static char cloneurl[1024];
-static int hasreadme, haslicense;
+static int haslicense, hasreadme, hassubmodules;
 
 void
 commitinfo_free(struct commitinfo *ci)
@@ -251,6 +251,8 @@ writeheader(FILE *fp, const char *title)
         fprintf(fp, "Log | ", relpath);
         fprintf(fp, "Files | ", relpath);
         fprintf(fp, "Refs", relpath);
+        if (hassubmodules)
+                fprintf(fp, " | Submodules", relpath);
         if (hasreadme)
                 fprintf(fp, " | README", relpath);
         if (haslicense)
@@ -654,7 +656,7 @@ writefilestree(FILE *fp, git_tree *tree, const char *branch, const char *path)
 {
         const git_tree_entry *entry = NULL;
         git_submodule *module = NULL;
-        const char *entryname, *moduleurl;
+        const char *entryname;
         char filepath[PATH_MAX], entrypath[PATH_MAX];
         git_object *obj = NULL;
         git_off_t filesize;
@@ -709,21 +711,11 @@ writefilestree(FILE *fp, git_tree *tree, const char *branch, const char *path)
                                 fprintf(fp, "%juB", (uintmax_t)filesize);
                         fputs("
m---------", fp); - if ((moduleurl = git_submodule_url(module))) { - fprintf(fp, "", - moduleurl); - } + fprintf(fp, "
m------", + relpath); xmlencode(fp, entrypath, strlen(entrypath)); - if (moduleurl) { - fputs(" @", fp); - xmlencode(fp, moduleurl, strlen(moduleurl)); - fputs("", fp); - } - fprintf(fp, "0%c", - showlinecount ? 'L' : 'B'); git_submodule_free(module); - fputs("
diff --git a/style.css b/style.css
@@ -58,10 +58,6 @@ table td {
         white-space: normal;
 }
 
-a.module {
-        color: #000;
-}
-
 td.num {
         text-align: right;
 }