Commit Graph

242 Commits

Author SHA1 Message Date
Lars Hjemli
e8920b5262 Rewrite the makefile + gen-version.sh
The old files were simply broken, hopefully the new ones will work out
somewhat better.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-09-03 22:17:04 +02:00
Lars Hjemli
4e9107abfe Add ui-tag.c
This file implements the tag-command, i.e. printing of annotated tags.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-07-22 23:44:57 +02:00
Michael Krelin
71ebcbe23a make gen-version.sh run even if . is not in PATH
Signed-off-by: Michael Krelin <hacker@klever.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-07-03 21:30:05 +02:00
Lars Hjemli
f69250358a Add version info from git-describe
A new script, gen-version.sh, is now invoked from 'make version' to generate
the file VERSION. This file contains a version identifier generated by
git-describe and is included in the Makefile.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-06-18 10:38:40 +02:00
Lars Hjemli
ffc69736a6 ui-tree: unify with ui-view, use path to select tree/blob
This teaches ui-tree to show both trees and blobs, thereby making ui-view
superfluous. At the same time, ui-tree is extended to honour the specified
path instead of requiering a tree/blob sha1.
2007-06-16 20:20:42 +02:00
Lars Hjemli
2a09c0d184 cgit v0.5
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-24 00:18:16 +02:00
Lars Hjemli
d4dbfdfbae Use git-1.5.2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-20 13:41:05 +02:00
Lars Hjemli
ad3b39d3b8 Include cgit.conf in Makefile
This allows persistent overrides of Makefile settings without touching
the Makefile.

Suggested in a patch by Kristian Høgsberg <krh@bitplanet.net>

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-15 18:41:31 +02:00
Lars Hjemli
e903011c44 Use tables and css to create the diffstat graph, fix scaling
There was no need to use image-files for the graphs, so lets drop them.
At the same time, fix scaling of the graphs so that the full width is
used only if atleast 100 LOC are changed in one of the files.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-15 09:09:42 +02:00
Lars Hjemli
ea2831f1c8 Don't hardcode urls when SCRIPT_NAME is available
Also, let the makefile define the name of the installed cgi and
use that definition as a default value for cgit_script_name variable.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-15 00:48:31 +02:00
Lars Hjemli
9ecde6568a Let makefile override the configfile location
Pass CGIT_CONFIG from makefile during build, to enable stuff like

  make CGIT_CONFIG=/var/cgit/cgit.conf

Noticed by Kristian Høgsberg <krh@bitplanet.net>

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-14 23:09:49 +02:00
Lars Hjemli
4fdf571c88 cgit v0.4
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-13 23:28:19 +02:00
Lars Hjemli
8a3685bcf2 Add graphical diffstat to commit view
The diffstat is calculated against the leftmost parent of the commit. This
gives nice information for "normal" merges while octopus merges are less
than optimal, so the diffstat isn't calculated for those merges.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-13 22:31:11 +02:00
Lars Hjemli
f596d10d73 Makefile: add support for building w.o. preinstalled git
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-11 20:41:14 +02:00
Lars Hjemli
dad80d1ff8 Tag release v0.3
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-11 12:15:44 +02:00
Lars Hjemli
cc1dbd1b5d Add submodules.sh and use it during builds
This adds a shell script which can be be used to initialize, list and
update submodules in a git repository. It reads the file .gitmodules
to find a mapping between submodule path and repository url for the
initial clone of all submodules.

The script is used during cgit builds to enable automatic download and
checkout of the git git repository.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-11 11:03:52 +02:00
Lars Hjemli
e743443811 Added git as a submodule
This commit adds the subdirectory 'git' as a submodule containing
the git git repository, but doesn't add support for automatically
cloning the submodule.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-11 10:59:10 +02:00
Lars Hjemli
ca8eb8fc8f Add support for downloading single blobs
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-09 00:48:09 +02:00
Lars Hjemli
61c3ca978c Update to libgit 1.5.2-rc2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-05-08 23:38:49 +02:00
Lars Hjemli
ab2ab95f09 Add support for snapshots
Make a link from the commit viewer to a snapshot of the corresponding tree.

Currently only zip-format is supported.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-02-08 13:58:58 +01:00
Lars Hjemli
14d360df60 cgit v0.2
Main changes since v0.1:
  -list tags in repo summary
  -allow search in log-view
  -read repository paths from cgitrc

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-02-05 00:22:08 +01:00
Lars Hjemli
c52e84135e Add support for prefix and gitsrc arguments to 'make'
This should improve the installation a little, especially since the new
options are mentioned in the README. Also, add a make-rule to build the
git binaries if necessary + a dependency between cgit and libgit.a.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-02-05 00:12:04 +01:00
Lars Hjemli
4a9dea5c01 Unified install path
Install all files into single directory

Signed-off-by: Lars Hjemli <larsh@slaptop.hjemli.net>
2007-01-28 11:31:57 +01:00
Lars Hjemli
447025f62c Enable building with debuginfo
Add -g to CFLAGS when running make with DEBUG=1

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-01-17 01:13:05 +01:00
Lars Hjemli
8e495b075d cgit 0.1
With a working diff, it really has all the basics.

Next steps will be to make it more usable and less ugly :)

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-21 00:53:34 +01:00
Lars Hjemli
40dea5254a Let make know that ui-diff.c depends on xdiff.h
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-21 00:47:05 +01:00
Lars Hjemli
36aba00273 Add basic diff view
Finally, xdiff is used to show per-file diffs via commit view.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-20 22:48:27 +01:00
Lars Hjemli
9a8f88658d Add ui-commit.c + misc ui cleanups
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-16 00:19:56 +01:00
Lars Hjemli
c45b8178d0 Add separate makefile-rule to clear current cache
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-13 14:39:41 +01:00
Lars Hjemli
06fe0c2f47 Add display of tree content w/ui-tree.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-13 00:13:27 +01:00
Lars Hjemli
44923f8953 Move global variables + callback functions into shared.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 17:25:51 +01:00
Lars Hjemli
df63119302 Move functions for generic object output into ui-view.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 17:12:26 +01:00
Lars Hjemli
d14c5f6d3a Move log-functions into ui-log.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 17:04:19 +01:00
Lars Hjemli
1418034e64 Move repo summary functions into ui-summary.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 16:55:33 +01:00
Lars Hjemli
74620f12e4 Move functions for repolist output into ui-repolist.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 16:49:18 +01:00
Lars Hjemli
5a106eb09b Move common output-functions into ui-shared.c
While at it, replace the cgit_[lib_]error constants with a proper function

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 16:38:30 +01:00
Lars Hjemli
51ada4fda2 Rename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 16:11:40 +01:00
Lars Hjemli
a581ed8d6c Let 'make install' clear all cachefiles
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-11 11:23:05 +01:00
Lars Hjemli
76827d8679 Add version identifier in generated files
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-10 23:54:45 +01:00
Lars Hjemli
25105d7eca Add caching infrastructure
This enables internal caching of page output.

Page requests are split into four groups:
  1) repo listing (front page)
  2) repo summary
  3) repo pages w/symbolic references in query string
  4) repo pages w/constant sha1's in query string

Each group has a TTL specified in minutes. When a page is requested, a cached
filename is stat(2)'ed and st_mtime is compared to time(2). If TTL has expired
(or the file didn't exist), the cached file is regenerated.

When generating a cached file, locking is used to avoid parallell processing
of the request. If multiple processes tries to aquire the same lock, the ones
who fail to get the lock serves the (expired) cached file. If the cached file
don't exist, the process instead calls sched_yield(2) before restarting the
request processing.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-10 22:31:36 +01:00
Lars Hjemli
c76a52be5b Replace useless make rules with generic $(OBJECTS) dependency
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-09 15:29:05 +01:00
Lars Hjemli
0d169ada2b Import cgit prototype from git tree
This enables basic cgit functionality, using libgit.a and xdiff/lib.a from
git + a custom "git.h" + openssl for sha1 routines.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2006-12-09 15:18:17 +01:00