Introduction
Introduction Statistics Contact Development Disclaimer Help
fix submodule lookup in bare repos - stagit - static git page generator
git clone git://git.codemadness.org/stagit
Log
Files
Refs
README
LICENSE
---
commit 174a763058f9a90831ab5a2aeb1c9bfbecdabf48
parent f05e6b0fcb3b874180970d06ebcde05fb5aea470
Author: kst <[email protected]>
Date: Wed, 5 Aug 2020 22:11:18 +0000
fix submodule lookup in bare repos
git_submodule_lookup does not work without a working tree [1], so the
current approach fails to recognize any submodules in bare repos.
Instead, notice that
$ git ls-tree HEAD
lists any submodules as commit objects regardless of a working tree.
This is the only instance commit object is used in a tree, so we will
use this to check for submodules.
[1]: https://github.com/libgit2/libgit2/pull/4305/files
Diffstat:
M stagit.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
---
diff --git a/stagit.c b/stagit.c
@@ -976,7 +976,6 @@ int
writefilestree(FILE *fp, git_tree *tree, const char *path)
{
const git_tree_entry *entry = NULL;
- git_submodule *module = NULL;
git_object *obj = NULL;
git_off_t filesize;
const char *entryname;
@@ -1029,11 +1028,11 @@ writefilestree(FILE *fp, git_tree *tree, const char *pa…
fprintf(fp, "%juB", (uintmax_t)filesize);
fputs("</td></tr>\n", fp);
git_object_free(obj);
- } else if (!git_submodule_lookup(&module, repo, entryname)) {
+ } else if (git_tree_entry_type(entry) == GIT_OBJ_COMMIT) {
+ /* commit object in tree is a submodule */
fprintf(fp, "<tr><td>m---------</td><td><a href=\"%sfi…
relpath);
xmlencode(fp, entrypath, strlen(entrypath));
- git_submodule_free(module);
fputs("</a></td><td class=\"num\" align=\"right\"></td…
}
}
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.