X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=README;h=e8369940f43d9ee808d25a1fdd8236fb2d05fc83;hb=4339aa954cb83736e941ea6c31191eab1b5504b6;hp=36e13ac8349862982d40149b6986dfbabe8e45ee;hpb=0f428f1b5abb7b6f42944a15e680980d18101353;p=stagit.git diff --git a/README b/README index 36e13ac..e836994 100644 --- a/README +++ b/README @@ -1,8 +1,10 @@ stagit -====== +------ -static git page generator +static git page generator. personal fork with fast syntax highlighting via +Chroma and some style and quality of life improvements. +It generates static HTML pages for a git repository. Usage ----- @@ -14,11 +16,11 @@ Make files per repository: Make index file for repositories: - $ stagit-index repodir1 repodir2 repodir3 > index.html + $ stagit-index repodir1 repodir2 repodir3 -Install -------- +Build and install +----------------- $ make # make install @@ -27,10 +29,11 @@ $ make Dependencies ------------ -- libgit2 (v0.22+). -- libc (tested with OpenBSD, FreeBSD, Linux: glibc and musl). - C compiler (C99). -- make +- libc (tested with OpenBSD, FreeBSD, NetBSD, Linux: glibc and musl). +- libgit2 (v0.22+). +- POSIX make (optional). +- Python3, pip. Documentation @@ -114,7 +117,7 @@ git post-receive hook (repo/.git/hooks/post-receive): # ... #fi - # see example.sh for normal creation of the files. + # see example_create.sh for normal creation of the files. Create .tar.gz archives by tag @@ -123,8 +126,14 @@ Create .tar.gz archives by tag name="stagit" mkdir -p archives git tag -l | while read -r t; do - f="archives/$name-$t.tar.gz" - test -f "$f" || git archive --format tar.gz "$t" -o "$f" + f="archives/${name}-$(echo "${t}" | tr '/' '_').tar.gz" + test -f "${f}" && continue + git archive \ + --format tar.gz \ + --prefix "${t}/" \ + -o "${f}" \ + -- \ + "${t}" done @@ -149,15 +158,24 @@ Cons ---- - Not suitable for large repositories (2000+ commits), because diffstats are - an expensive operation. + an expensive operation, the cache (-c flag) is a workaround for this in + some cases. +- Not suitable for large repositories with many files, because all files are + written for each execution of stagit. This is because stagit shows the lines + of textfiles and there is no "cache" for file metadata (this would add more + complexity to the code). - Not suitable for repositories with many branches, a quite linear history is assumed (from HEAD). + + In these cases it is better to just use cgit or possibly change stagit to + run as a CGI program. + - Relatively slow to run the first time (about 3 seconds for sbase, 1500+ commits), incremental updates are faster. - Does not support some of the dynamic features cgit has, like: - - snapshot tarballs. - - file tree per commit. - - history log of branches diverged from HEAD. - - stats (git shortlog -s). + - Snapshot tarballs per commit. + - File tree per commit. + - History log of branches diverged from HEAD. + - Stats (git shortlog -s). - this is by design, just use git locally. + This is by design, just use git locally.