Commit Graph

1377 Commits

Author SHA1 Message Date
Lars Hjemli
a8305a9543 parsing.c: be prepared for unexpected content in commit/tag objects
When parsing commits and tags cgit made too many assumptions about the
formatting of said objects. This patch tries to make the code be more
prepared to handle 'malformed' objects.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-15 22:33:11 +02:00
Lars Hjemli
91fd1eca07 Merge branch 'ew/http_host'
* ew/http_host:
  use Host: header to generate cgit_hosturl
2008-09-15 21:47:14 +02:00
Lars Hjemli
b28765135d Update Makefile to use GIT-1.6.0.1
When updating the git submodule to 1.6.0.1 (and 1.6.0), the Makefile was
left behind. This fixes it.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-03 00:18:09 +02:00
Eric Wong
9c931b1e6e use Host: header to generate cgit_hosturl
I run an instance of lighttpd for cgit behind nginx (nginx
doesn't execute CGI).  So the port (SERVER_PORT=33333) that
lighttpd runs on sends to cgit is different from the standard
port 80 that public clients connect to (via nginx).

This was causing the Atom feed URL to show the private port
number that lighttpd was running on.

Since the HTTP/1.1 "Host" header includes the port number if
running on a non-standard port, it allows non-client-facing HTTP
servers to transparently generate public URLs that clients can
see.

So use the "Host" header if it is available and fall back to
SERVER_NAME/SERVER_PORT for some clients that don't set
HTTP_HOST.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
2008-09-02 01:26:37 +02:00
Lars Hjemli
687fb6d833 Use GIT-1.6.0.1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-02 01:06:27 +02:00
Lars Hjemli
135b231160 ui-plain: handle subdirectories
The callback from read_tree_recursive just needs to check the type of
each tree entry; if it's a dir we want to continue scanning, if it's a
regular file we'll assume it's the one we requested.

And while at it, remove some stray fprintfs.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-09-02 00:53:04 +02:00
Lars Hjemli
04a6f3b0bf Use GIT-1.6.0 2008-09-01 22:50:35 +02:00
Lars Hjemli
d532c4d161 Merge branch 'lh/plain'
* lh/plain:
  Supply status description to html_status()
  ui-tree: link to plain view instead of blob view
  Implement plain view
2008-09-01 22:40:55 +02:00
Lars Hjemli
288d502b3d Merge branch 'lh/clone'
* lh/clone:
  Add support for cloning over http

Conflicts:
	cmd.c
2008-09-01 22:40:24 +02:00
Lars Hjemli
2cecf839a0 cache.c: use %zd for off_t argument
Signed-off-by: Lars Hjemli <hjemli@gmail>
2008-09-01 22:39:00 +02:00
Lars Hjemli
885096c189 Supply status description to html_status()
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-06 22:57:44 +02:00
Lars Hjemli
7fa088e99a Use GIT-1.6.0.rc1
Now that rc1 is released as a tarball `make get-git` should start working
again.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-06 22:34:20 +02:00
Lars Hjemli
8c2a1367c4 Makefile: Git dependency, take 3
In commit a1266edfe the build instructions for the git libs where moved
to their real targets, which in turn depended on the phony target `git`.
But since `git` is an actual directory in cgit the git libs wouldn't be
recompiled when needed.

So with this patch (third time lucky), cgit is declared to depend on the
really phony target `libgit` and the build instructions for `libgit` is
to unconditionally rebuild git/libgit.a and git/xdiff/lib.a.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-06 18:52:27 +02:00
Lars Hjemli
65b7b876aa ui-tree: link to plain view instead of blob view
The urls for plain view makes it possible to download blobs without knowing
their SHA1, but the function needs to be promoted and the link from tree
view seems like a perfect fit.

PS: Although hidden, the blob view still is nice for direct blob access so
there's no point in removing it.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-06 11:21:30 +02:00
Lars Hjemli
e5da4bca54 Implement plain view
This implements a way to access plain blobs by path (similar to the
tree view) instead of by sha1.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-06 11:21:30 +02:00
Lars Hjemli
02a545e634 Add support for cloning over http
This patch implements basic support for cloning over http, based on the
work on git-http-backend by Shawn O. Pearce.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-06 11:21:09 +02:00
Lars Hjemli
e352a013ae Merge branch 'lh/atom' 2008-08-06 09:50:10 +02:00
Stefan Naewe
3c71f597cc cgitrc: explain new local-time option
Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-05 09:36:31 +02:00
Lars Hjemli
b2a3d31e88 Add atom-support
This enables a page which generates atom feeds for the current branch and
path, heavily inspired by the atom-support in gitweb.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-01 22:12:34 +02:00
Stefan Naewe
0f0ab148c6 Added local-time option to cgitrc
When `local-time` is set, commit, tag and patch timestamps will be printed
in the servers timezone. Also, regardless of the value of `local-time`,
these timestamps will now always show the timezone.

Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-01 22:09:13 +02:00
Lars Hjemli
a1266edfe6 Makefile: another take on git dependency rules
When building cgit we depend on xdiff/lib.a and libgit.a in the git
directory, but the previous attempt on describing this dependency
failed since the build instructions for the libs was placed under the
phony `git` target.

This patch fixes the issue by moving the build instructions to their
real targets. It also makes it clear that only the `cgit` target
depends on the git binaries (since they're only used during linking).

And while at it, the patch also cleans up the list of phony targets.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-08-01 02:04:41 +02:00
Lars Hjemli
952f4ece29 Modify default value for a few cgitrc options
The default max-length used when printing commit messages and repo
descriptions can be increased due to the new layout (no sidebar).

Also, on the repo summary page I believe it makes sense to only show the
ten most recent branches and tags by default, just as it makes sense to
show the ten most recent commit messages for the active branch.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-27 12:58:37 +02:00
Lars Hjemli
25c84326de Be prepared for empty repositories
Before this patch, cgit would segfault on repositories with no refs.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-27 12:32:08 +02:00
Lars Hjemli
2d6ee032d0 ui-shared: show repo owner along with description
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-27 12:22:16 +02:00
Lars Hjemli
78af25ccac ui-summary: show clone urls
If either repo.clone-url or clone-prefix is specified in cgitrc, all
space-separated values in the config option is printed as a possible
clone url on the repo summary page.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-27 11:54:06 +02:00
Lars Hjemli
50989d3b47 Makefile: remove the distclean and emptycache targets
The `distclean` was hardly useful while the `emptycache` was actively harmful.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-22 20:06:16 +02:00
Lars Hjemli
a75968df10 Makefile: do not touch the git objects with make clean
I've been avoiding `make clean` for a long time due to its eagerness to kill
all the git objectfiles.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-22 19:58:37 +02:00
Lars Hjemli
bb7485e8d7 Makefile: fix git dependency rules
The objectfiles depends unconditionally on some specific git binaries while
those git binaries depends on the phony `git` target and this patch seems to
get these dependencies spelled out correctly.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-22 19:42:06 +02:00
Lars Hjemli
f49ea2c996 tests/Makefile: not everyone has . in $PATH
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-22 19:02:27 +02:00
Lars Hjemli
566f92b276 Adjust to new calling convention for read_tree_recursive()
In GIT-1.6.0, read_tree_recursive takes an extra void pointer for callback
data. We might want to use this to avoid some global variables, but for now
lets just make sure that we can still compile.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-21 10:10:48 +02:00
Lars Hjemli
d2eb4fddb0 Use GIT-1.6.0-rc0 2008-07-21 09:57:25 +02:00
Lars Hjemli
502865a5ec Add a favicon option to cgitrc
This option is used to specify a shortcut icon on all cgit pages.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-07-19 20:47:39 +02:00
Lars Hjemli
de5e928171 Add support for including a footer on all pages
The new cgitrc option `footer` can be used to include a html-file which
replaces the standard 'generated by cgit' message at the bottom of each
page.

Suggested-by: Peter Danenberg <pcd@wikitex.org>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-06-26 13:53:30 +02:00
Lars Hjemli
29b37e9781 Merge branch 'master' of git://git.klever.net/patchwork/cgit
* 'master' of git://git.klever.net/patchwork/cgit:
  allow specification of directly linked blobs mimetypes
  allow blob extract blobs by head/path combination
2008-06-26 12:54:44 +02:00
Lars Hjemli
833b0d2732 Use GIT-1.5.6 2008-06-25 17:39:25 +02:00
Michael Krelin
42effc9390 allow specification of directly linked blobs mimetypes
Signed-off-by: Michael Krelin <hacker@klever.net>
2008-06-24 23:42:32 +02:00
Michael Krelin
01d2dce7e7 allow blob extract blobs by head/path combination
If blob is invoked with no id=, it tries to look up h= and search for path= in
 there. Once found, proceed as normal, otherwise, fail as normal.

Signed-off-by: Michael Krelin <hacker@klever.net>
2008-06-24 23:33:24 +02:00
Harley Laue
e6b635c2b1 Added root-desc to default configuration.
Signed-off-by: Harley Laue <losinggeneration@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-21 07:39:57 +02:00
Lars Hjemli
08a8757fa5 ui-tree.c: avoid peeking at GITLINK objects
When an object in the tree has GITLINK mode-bits we don't need to get any
more info about that particular object (and trying to get more info about
it will usually generate an annoying warning on stderr since the object
typically doesn't exist in the repo anyways).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-20 22:32:22 +02:00
Lars Hjemli
dd7c172542 cache.c: fix error checking in print_slot()
The change to print_slot() in cdc6b2f8e7 made
the function return correct errno for read errors while ignoring write errors,
which is not what was intended. This patch tries to rectify things.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-20 17:56:47 +02:00
Lars Hjemli
af2e75616d cache.c: do not ignore errors from print_slot()
If print_slot() fails, the client will be served an inferior response.
This patch makes sure that such an error will be returned to main(), which
in turn will try to inform about the error in the response itself.

The error is also printed to the cache_log, i.e. stderr, which will make
the error message appear in error_log (atleast when httpd==apache).

Noticed-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 23:59:11 +02:00
Lars Hjemli
cdc6b2f8e7 cache.c: use xread()/xwrite() from libgit
These functions handles EINTR/EAGAIN errors during read/write operations,
which is something cache.c didn't.

While at it, fix a bug in print_slot() where errors during reading from the
cache slot might go by unnoticed.

Noticed-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 23:34:55 +02:00
Lars Hjemli
d402811bd2 cache.c: make all io-related functions return errno on error
We'll need proper return-values from these functions to make the cache
behave correctly (which includes giving proper error messages).

Noticed-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 23:16:50 +02:00
Lars Hjemli
6102bcfce4 cache.c: read(2) returns -1 on error, not 0
Noticed-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 23:10:05 +02:00
Lars Hjemli
c3de425acb Use GIT-1.5.5.1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 21:40:28 +02:00
Lars Hjemli
8907f2a031 Include commit-id in link from diff-stat
This fixes a regression created by fe1230dece,
and modifies a test to avoid future regressions.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 21:33:30 +02:00
Lars Hjemli
502d57596e ui-commit: handle root commits
Both cgit_print_diff() and cgit_diff_tree() handles root commits nicely,
but cgit_print_commit() forgot to check the case of 0 parents.

This fixes it, and adds tests to avoid future regressions.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-18 21:13:21 +02:00
Lars Hjemli
17890d0058 Add link to index page from repo header, remove page name
This makes it more obvious how to get back to the index, especially when the
config option `logo-link` is used. And the page name displayed in the header
provided no extra information. It only consumed space and deserved to die.

While at it, make sure that the different parts of the header doesn't wrap
when horizontal space is limited.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-04 17:30:02 +02:00
Lars Hjemli
aa3c4486b4 Add footer with page creation time and cgit version on all pages
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-03 11:07:41 +02:00
Lars Hjemli
c6078b8b00 Add a pager on the repolist
This enables a pager on the repolist which restricts the number of entries
displayed per page, controlled by the new option `max-repo-count` (default
value 50).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-05-03 10:54:39 +02:00