Commit Graph

329 Commits

Author SHA1 Message Date
Lars Hjemli
20a33548b9 Move function for configfile parsing into configfile.[ch]
This is a generic function which wanted its own little object file.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-28 00:09:11 +01:00
Lars Hjemli
ee4056bd2c Add cache.h
The functions found in cache.c are only used by cgit.c, so there's no
point in rebuilding all object files when the cache interface is changed.


Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-27 09:22:13 +01:00
Lars Hjemli
dc3282f0ba Remove global and obsolete cgit_cmd
This variable was obsoleted by cmd.c.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-25 02:00:09 +01:00
Lars Hjemli
c60781d677 Makefile: copy the QUIET constructs from the Makefile in git.git
These constructs were introduced by Shawn O. Pearce in commit
74f2b2a8d006a49e1be7e30731c2f7365d2741d1.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-25 01:41:10 +01:00
Lars Hjemli
92908af455 Move cgit_version from shared.c to cgit.c
With the matching Makefile change, this makes sure that only cgit.o and cgit
proper needs to be rebuildt when VERSION has been modified.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 23:27:16 +01:00
Lars Hjemli
df90b51baf Makefile: autobuild dependency rules
This uses gcc to generate dependency rules for each `.o` file, based on the
corresponding `.c` file, into a new set of `.d` files (which are also defined
to depend on the same set of source files as their `.o` files).

Result:
* all objectfile dependencies are correctly calculated
* only the necessary dependencies are recalculated when a sourcefile is updated

Inspiration for the build rules:
* http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites
* http://make.paulandlesley.org/autodep.html

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 23:27:12 +01:00
Lars Hjemli
271818693d Initial Makefile cleanup
Sort the list of object files to improve readability/mergeability and remove
manual dependency information which will soon be generated automatically.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 23:16:30 +01:00
Lars Hjemli
163037e79c Move non-generic functions from shared.c to cgit.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 17:26:08 +01:00
Lars Hjemli
a4d1ca1dc6 Add ui-shared.h
This is finally a proper headerfile for the shared ui-functions which
used to reside in cgit.h

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 16:50:57 +01:00
Lars Hjemli
c5984a9896 Add separate header-files for each page/view
Yet another step towards removing cgit.h.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 16:38:47 +01:00
Lars Hjemli
f34478cbe0 Refactor snapshot support
The snapshot support needs to be split between output- and config-related
functions to get the layering between shared.c and ui-*.c right. There
is also some codestyle-issues which needs fixing to make the snapshot
functions more similar to the rest of the cgit code.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 16:00:27 +01:00
Lars Hjemli
e0e4478e7b Add command dispatcher
This simplifies the code in cgit.c and makes it easier to extend cgit with
new pages/commands.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 01:43:48 +01:00
Lars Hjemli
b608e88adb Remove obsolete cacheitem parameter to ui-functions
This parameter hasn't been used for a very long time...

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 01:01:28 +01:00
Lars Hjemli
f3c1a187fe Add struct cgit_page to cgit_context
This struct is used when generating http headers, and as such is another
small step towards the goal of the whole cleanup series; to invoke each
page/view function with a function pointer.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-24 00:51:19 +01:00
Lars Hjemli
b1f9b9c145 Introduce html.h
All html-functions can be quite easily separated from the rest of cgit, so
lets do it; the only issue was html_filemode which uses some git-defined
macros so the function is moved into ui-shared.c::cgit_print_filemode().

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-03-18 08:13:10 +01:00
Lars Hjemli
b88fb016d0 Improve initialization of git directory
Using the functions offered by libgit feels like the right thing to do. Also,
make sure that config errors gets properly reported.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16 21:48:19 +01:00
Lars Hjemli
d1f3bbe9d2 Move cgit_repo into cgit_context
This removes the global variable which is used to keep track of the
currently selected repository, and adds a new variable in the cgit_context
structure.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16 13:56:09 +01:00
Lars Hjemli
b228d4ff82 Add all config variables into struct cgit_context
This removes another big set of global variables, and introduces the
cgit_prepare_context() function which populates a context-variable with
compile-time default values.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16 13:10:50 +01:00
Lars Hjemli
d14d77fe95 Introduce struct cgit_context
This struct will hold all the cgit runtime information currently found in
a multitude of global variables.

The first cleanup removes all querystring-related variables.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-02-16 12:07:28 +01:00
Lars Hjemli
e5ed227ef0 Use GIT-1.5.4.1 2008-02-16 11:28:16 +01:00
Lars Hjemli
2106c96ca0 Use GIT-1.5.4 2008-02-02 08:55:09 +01:00
Lars Hjemli
ac195ce710 Use GIT-1.5.4.rc5 2008-01-28 21:18:28 +01:00
Lars Hjemli
776200b1c1 Use GIT-1.5.4.rc4 2008-01-21 08:52:09 +01:00
Lars Hjemli
2122c696a3 Merge branch 'stable'
* stable:
  CGIT 0.7.2
  Use GIT-1.5.3.8
  Compare string lengths when parsing the snapshot mask
  Default repo description to "[no description]"
2008-01-13 18:34:37 +01:00
Lars Hjemli
b74cc91574 CGIT 0.7.2
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-01-10 13:50:22 +01:00
Lars Hjemli
edf0ae3bd7 Use GIT-1.5.3.8 2008-01-10 13:47:18 +01:00
Lars Hjemli
f39c3c99a1 Check for NULL-subject in patch view
While at it, make sure the commit message ends with a '\n'.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-01-10 12:50:12 +01:00
Lars Hjemli
f80ff37a17 Handle missing default branch and error out on invalid branch names
When no branch is specified and the repository does not have a default branch,
use the first branch.

Also, print sensible errormessages when the repository does not contain any
branches and when invalid branchnames are specified.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2008-01-04 13:43:40 +01:00
Lars Hjemli
620bb3e5e4 Add plain patch view
The new view mimics the output from `git format-patch`, making it possible
to cherry-pick directly from cgit with something like `curl $url | git am`.

Inspired by a patch to `git-apply` by Mike Hommey:
  http://thread.gmane.org/gmane.comp.version-control.git/67611/focus=67610

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-12-11 02:43:24 +01:00
Lars Hjemli
afcdd083da Add support for automatic and custom clone urls
This adds support for two new parameters to cgitrc: clone-prefix and
repo.clone-url.

If clone-prefix is specified, all repos will get a clone url printed in the
sidebar; the url is generated by clone-prefix + repo.url.

Additionally, each repo can specify repo.clone-url which will override any
such auto-generated url.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-12-03 01:49:38 +01:00
Lars Hjemli
2216fd6472 Compare string lengths when parsing the snapshot mask
We used to rely on the result from strncmp() without comparing the length of
the strings involved. Even worse, any single-character format specifier would
enable zip-format due to the optional '.'-prefix since the length of the
mask then would become zero.

Noticed-by: Evan Martin <sys@neugierig.org>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-12-03 00:39:20 +01:00
Evan Martin
7b346647c9 Default repo description to "[no description]"
Otherwise, when you leave out a description for a repository, the NULL
default causes cgit to print out titles like "cgit - (null)".

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-12-03 00:21:44 +01:00
Lars Hjemli
dabb34af76 Merge branch 'stable'
* stable:
  Handle missing timestamp in commit/tag objects
  Set commit date on snapshot contents
2007-12-02 22:28:37 +01:00
Lars Hjemli
fc4c4ba3a9 Handle missing timestamp in commit/tag objects
When a commit or tag lacks author/committer/tagger timestamp, do not skip
the next line in the commit/tag object.

Also, do not bother to print timestamps with value 0 as it is close to certain
to be bogus.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-12-02 22:27:07 +01:00
Lars Hjemli
e8e6721817 Add cell-spacing in html
There are some browsers which don't support the border-spacing property

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-16 10:28:29 +01:00
Lars Hjemli
6ef637e090 Use tables for page layout
It feels like the Right Thing, and it fixes some rendering problems in a
much used webbrowser.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-16 09:52:03 +01:00
Lars Hjemli
fd90d2826a Gimp my logo
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-16 09:51:35 +01:00
Lars Hjemli
d267d88c9c Add support for "robots" meta-tag
With this change, cgit will start to generate the "robots" meta-tag, using
a default value of "index, nofollow".

The default value can be modified with a new cgitrc variable, "robots".

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 21:57:21 +01:00
Lars Hjemli
1b7c5b2e0b Generate valid html for "downloads" menu header
Noticed-by: http://validator.w3.org
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 13:44:39 +01:00
Lars Hjemli
a7cf406c80 Merge branch 'lh/testsuite'
* lh/testsuite:
  Set commit date on snapshot contents
  Fix html error detected by test-suite
  Create initial testsuite
2007-11-11 13:17:13 +01:00
Lars Hjemli
5b75064a81 Set commit date on snapshot contents
The testsuite revealed that cgit snapshots don't set any useful timestamp on
the files contained in the snapshot.

Cherry-picked-from: 2ff33a8a04
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 13:16:43 +01:00
Lars Hjemli
2ff33a8a04 Set commit date on snapshot contents
The testsuite revealed that cgit snapshots don't set any useful timestamp on
the files contained in the snapshot.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 13:14:15 +01:00
Lars Hjemli
2915483ef6 Fix html error detected by test-suite
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 13:04:28 +01:00
Lars Hjemli
b4649fc905 Create initial testsuite
This creates a simple testsuite, heavily inspired by the testsuite in git.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-11 12:00:13 +01:00
Lars Hjemli
ab21082c21 Merge branch 'stable'
* stable:
  CGIT 0.7.1
  Makefile install: include cgit.png, do not empty cache

Conflicts:

	Makefile
2007-11-09 13:52:48 +01:00
Lars Hjemli
2919b91d20 CGIT 0.7.1
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-09 13:51:00 +01:00
Lars Hjemli
9b18632b7e Makefile install: include cgit.png, do not empty cache
The cache-cleaning is potentially dangerous, so lets move it away from the
install target. A special emptycache target can be used to run the rm -rf.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-09 13:47:58 +01:00
Lars Hjemli
86d6dfa9b7 Minor css tweaks
Don't specify border and background color for input controls, reduce font-
size of heading in sidebar.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-09 13:19:56 +01:00
Lars Hjemli
6e54bd009c Merge branch 'stable'
* stable:
  Support "/" as virtual-root
2007-11-08 12:22:39 +01:00
Lars Hjemli
c188c482b3 Support "/" as virtual-root
When the virtual-root was a single "/", it would be normalized to NULL due
to removal of trailing slashes, which in turn would fool us to belive that
we shouldn't generate virtual urls.

This makes the "/" normalize to "", effectively allowing virtual urls like
http://example.com/projectname to be generated without specifying the
full domain name as the virtual root.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2007-11-08 12:21:59 +01:00