minor modifications to stagit
Find a file
Quentin Rameau 79fab7c6fa replace file size with line count for text files
Keep the number of line when writing text blobs and print it in the
index file tree instead of the size. Still print the size otherwise.
2016-01-13 21:58:08 +01:00
compat.h Always use the compat functions 2016-01-06 17:07:47 +00:00
config.def.h replace file size with line count for text files 2016-01-13 21:58:08 +01:00
config.mk No need for -D_POSIX_C_SOURCE=200809L 2016-01-06 17:19:48 +00:00
example.sh example.sh: fix: remove error mode, would stop if a dir was invalid 2016-01-08 22:17:54 +01:00
favicon.png add favicon 2015-12-07 14:41:54 +01:00
LICENSE LICENSE: whoops its already 2016 2016-01-06 18:58:20 +01:00
logo.png initial insertion 2015-12-04 16:58:04 +01:00
Makefile premature version bumperation (0.3) for git 2016-01-08 10:24:50 +01:00
README Update README - it also works on FreeBSD 2016-01-06 18:36:34 +00:00
reallocarray.c Bring in reallocarray() from OpenBSD 2016-01-06 17:03:42 +00:00
stagit-index.1 stagit-index: clarify order of the list 2016-01-08 13:44:22 +01:00
stagit-index.c strip .git suffix from name 2016-01-06 20:06:06 +01:00
stagit.1 update man pages: document stripping of .git suffix 2016-01-06 20:06:06 +01:00
stagit.c replace file size with line count for text files 2016-01-13 21:58:08 +01:00
strlcat.c Bring in reallocarray() from OpenBSD 2016-01-06 17:03:42 +00:00
strlcpy.c Bring in reallocarray() from OpenBSD 2016-01-06 17:03:42 +00:00
style.css style: vertical-align header text 2016-01-06 19:19:20 +01:00
TODO update TODO 2016-01-06 19:14:59 +01:00

stagit
======

static git page generator


Usage
-----

Make files per repository:

	$ mkdir -p htmldir && cd htmldir
	$ stagit path-to-repo

Make index file for repositories:

	$ stagit-index repodir1 repodir2 repodir3 > index.html


Install
-------

$ make
# doas make install


Dependencies
------------

- libgit2 (v0.22+).
- libc (tested with OpenBSD, FreeBSD, glibc and musl).
- C compiler (C99).
- make


Documentation
-------------

See man pages: stagit(1) and stagit-index(1).


Features
--------

- Log of all commits from HEAD.
- Log and diffstat per commit.
- Show file tree with linkable line numbers.
- Show references: local branches and tags.
- Detect README and LICENSE file from HEAD and link it as a webpage.
- Atom feed log (atom.xml).
- Make index page for multiple repositories with stagit-index.
- After generating the pages (relatively slow) serving the files is very fast,
  simple and requires little resources (because the content is static), only
  a HTTP file server is required.


Cons
----

- Not suitable for large repositories (2000+ commits), because diffstats are
  an expensive operation.
- Not suitable for repositories with many branches, a quite linear history is
  assumed (from HEAD).
- Relatively slow to run the first time (about 3 seconds for sbase,
  1500+ commits), incremental updates after it 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).

  this is by design, just use git locally.