| Commit message (Collapse) | Author |
|
The struct member was introduces in git commit d53fe8187c38, but the cgit
testsuite failed to detect that cgit always generated archives without
prefixes, i.e. the result from cgit_repobasename was ignored.
This fixes the bug and the testsuite.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
When printing a path-filtered diff it wasn't obvious how to get back to
the full diff (clicking the 'diff' tab would do this). Making the diffstat
heading into a link seems to improve the usability.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
The links in the diffstat is supposed to work as a filter for the diff,
but this only worked when a single rev was supplied, i.e. the filtered
diff was always against the parent of the specified rev.
With this patch it is now possible to use the diffstat as a 'filter menu'
for urls like http://hjemli.net/git/cgit/diff/?id=v0.7.2&id2=v0.7.1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
This will allow for creating static builds which is useful for chrooted
environments.
Signed-off-by: Harley Laue <losinggeneration@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
If a repo url is specified but no exact match is found in the list of
repos the url will now be used as a prefix-filter.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
This option makes cgit scan a directory tree looking for git repositories,
generating suitable definitions for a cgitrc file on stdout.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
This commit makes cgit use the cgi variables SCRIPT_NAME and PATH_INFO
when virtual-root is unspecified in cgitrc and no url-parameter is
specified on the querystring. This has two nice effects:
* Virtual urls works out of the box, no more need for rewrite-rules in httpd.
* Virtual urls with special querystring characters are handled correctly.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
If it's specified there's no point in hiding it.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
|
|
Signed-off-by: Lars Hjemli <hjemli@gmail>
|
|
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
Now that rc1 is released as a tarball `make get-git` should start working
again.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Before this patch, cgit would segfault on repositories with no refs.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
The `distclean` was hardly useful while the `emptycache` was actively harmful.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
|
|
This option is used to specify a shortcut icon on all cgit pages.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
|
|
Signed-off-by: Michael Krelin <hacker@klever.net>
|
|
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>
|
|
Signed-off-by: Harley Laue <losinggeneration@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|
|
The change to print_slot() in cdc6b2f8e7a8d43dcfe0475a9d3498333ea686b8 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>
|
|
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>
|
|
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>
|
|
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>
|
|
Noticed-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
This fixes a regression created by fe1230dece81450004d02fa8a470f8dab8f7fdd9,
and modifies a test to avoid future regressions.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|
|
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>
|