Commit Graph
15 Commits
Author SHA1 Message Date
John Keeping d6768a6709 cgit.mk: don't rebuild everything if CGIT_VERSION changes
If CGIT_VERSION is in CGIT_CFLAGS then a change in version (for example
because you have committed your changes) causes all of the CGit objects
to be rebuilt.  Avoid this by using EXTRA_CPPFLAGS to add the version
for only those files that are affected and make them depend on VERSION.

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-20 21:08:32 +01:00
John Keeping 1a6feaf5fa ui-patch: use cgit_version not CGIT_VERSION
We already have a global cgit_version which is set from the #define'd
CGIT_VERSION in cgit.c.  Change ui-patch.c to use this so that we only
need to rebuild cgit.o when the version changes.

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-20 21:08:32 +01:00
John Keeping 5f323c1ff4 Makefile: re-use Git's Makefile where possible
Git does quite a lot of platform-specific detection in its Makefile,
which can result in it defining preprocessor variables that are used in
its header files.  If CGit does not define the same variables it can
result in different sizes of some structures in different places in the
same application.

For example, on Solaris Git uses it's "compat" regex library which has a
different sized regex_t structure than that available in the platform
regex.h.  This has a knock-on effect on the size of "struct rev_info"
and leads to hard to diagnose runtime issues.

In order to avoid all of this, introduce a "cgit.mk" file that includes
Git's Makefile and make all of the existing logic apply to CGit's
objects as well.  This is slightly complicated because Git's Makefile
must run in Git's directory, so all references to CGit files need to be
prefixed with "../".

In addition, OBJECTS is a simply expanded variable in Git's Makefile so
we cannot just add our objects to it.  Instead we must copy the two
applicable rules into "cgit.mk".  This has the advantage that we can
split CGit-specific CFLAGS from Git's CFLAGS and hence avoid rebuilding
all of Git whenever a CGit-specific value changes.

Signed-off-by: John Keeping <john@keeping.me.uk>
Acked-by: Jamie Couture <jamie.couture@gmail.com>
2013-03-20 21:08:32 +01:00
John Keeping e1e0e038fd tests: check that Git version are in sync
This ensures that the Git version pointed at by the submodule is the
same as the one that will be fetched using "make get-git".

Suggested-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-20 21:06:50 +01:00
John Keeping 6d8a789d61 ui-shared: fix return type of cgit_self_link
cgit_self_link() is a void function but implements each case it handles
by doing "return <another_void_function>" which is not valid C; section
6.8.6.4 of C11 says:

	A return statement with an expression shall not appear in a
	function whose return type is void.

Fix this by removing the return keywords and converting the final code
block into an "else".

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-20 20:21:17 +01:00
John Keeping d5a43b429a t0107-snapshot: add tests for ZIP archives
Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-04 19:41:26 -05:00
John Keeping f9b801a174 tests: make whitespace consistent
Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-04 19:39:07 -05:00
John Keeping 392e07d28a tests: "grep -e" is not portable to all platforms
The "-e" option to grep is not needed unless specifying more than one
pattern, which we don't do.  Remove it to avoid restricting the tests on
platforms that do not have a grep that recognises "-e".

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-04 19:38:44 -05:00
John Keeping 7f4e8c33ae Update git to v1.7.12.4
No changes needed.

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-02 10:38:03 -05:00
John Keeping 10628b0e52 Update git to v1.7.9.7
resolve_ref() is renamed to resolve_ref_unsafe().  CGit's usage is safe.

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-02 10:38:03 -05:00
John Keeping 87369611a8 Update git to v1.7.8.6
No changes required.

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-02 10:38:03 -05:00
John Keeping 2ab1cd9f3b Update git to v1.7.7.7
This release changes the archive interface so that we now need to pass
argv into write_archive().

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-02 10:38:03 -05:00
John Keeping c1633c6bef Update git to v1.7.6.5
struct pathspec is now used in more places.

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-02 10:38:03 -05:00
John Keeping bfc14d067d Update git to v1.7.5.4
Some changes to diff options:

- no_merges has become the more general max_parents
- path restriction now uses struct pathspec

Signed-off-by: John Keeping <john@keeping.me.uk>
2013-03-02 10:38:03 -05:00
John Keeping 94b7c76e53 Fix segmentation fault in empty repository
When a repository is empty, the ATOM feed link is written in the header,
but this involves formatting ctx->qry.head which is NULL in this case.
With glibc, vsnprintf formats "%s" with a NULL input as "(null)" but on
Solaris this results in a segmentation fault.  Since we don't have a
meaningful head for the atom feed in an empty repository, it's simplest
not to write out the link element at all.

Signed-off-by: John Keeping <john@metanate.com>
2012-01-03 21:00:30 +00:00