aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Find the default branch based on the contents of the namespaceRichard Maw2016-07-131-1/+1
| | | | | | | | The find_current_ref callback does not need to be modified to strip off the namespace prefix, since the for_each_ref functions don't include the base ref prefix. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Add cgit_for_each_namespaced_ref_in helperRichard Maw2016-07-132-0/+12
| | | | | | | | | | | libgit has a for_each_namespaced_ref, but lacks equivalents for just branches, tags or remotes. Rather than implementing all of those helpers, it's more convenient to implement just one that prepends the namespace to the provided ref base. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Guess the default branch based on current namespaceRichard Maw2016-07-131-4/+10
| | | | | | | | | | | | resolve_ref_unsafe() can't be told to be namespace aware, so we need to prepend the namespace beforehand. Additionally, we need to add the RESOLVE_REF_NO_RECURSE flag, since otherwise if the commit that is pointed to exists in the root namespace, it will opt to return that rather than the value in the namespace, presumably preferring shorter ref names to longer ones. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Look up refs in namespace with cgit_get_sha1Richard Maw2016-07-131-1/+46
| | | | | | | | | | | | | This causes all ref resolving to look for the requested branch inside the current namespace. Previously any form of git revision would be accepted, but ref resolving isn't namespace aware and it would be infeasible to replicate all its behaviour, so we stick to providing the most common cases of a sha1, an absolute ref, or a partial ref. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Set GIT_NAMESPACE when repo.namespace is providedRichard Maw2016-07-131-0/+5
| | | | | | | | | | | This causes any namespace-aware code to only handle refs under that namespace. Currently this doesn't do much as the only namespace aware code is in recieve-pack and upload-pack, which are not handled by CGit. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Print out parsed namespace on requestRichard Maw2016-07-131-0/+2
| | | | | | | | | This is not strictly necessary, as we do not have any way to generate namespace entries from a scan-path, but I'd rather not leave this as a surprise to someone who comes up with a good namespace discovery mechanism. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Parse repo.namespaceRichard Maw2016-07-132-0/+3
| | | | | | | | | | | | | | This contains the unexpanded name of the namespace rather than the base ref of the namespace, since the git namespace mechanism works by setting GIT_NAMESPACE and on the first call to get_git_namespace() it gets expanded. We need to save this for a later call to prepare_repo_cmd, rather than trying to process it here, since we can only do it once, and we have other uses for the unexpanded name. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Add a wrapper for get_sha1 called cgit_get_sha1Richard Maw2016-07-1313-22/+29
| | | | | | | This will later be changed to include namespace resolution, but the call sites are changed now to keep the changes small. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Fix archive generationRichard Maw2016-07-131-2/+2
| | | | | | | | | | | | | | | | The get_ref_from_filename function is expected to return a sha1. It didn't actually do this, instead returning the ref that would under normal circumstances resolve to that. Since we're going to resolve refs in a way that is namespace aware we need to return the sha1 rather than the ref, since the archive is created by libgit code that is not namespace aware, and it would try to resolve the ref again. This previously worked fine because it would resolve the ref the same way both times. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* Fix qry.head leak on errorRichard Maw2016-07-121-4/+4
| | | | | | This is run soon before exiting so it wasn't leaked for long. Signed-off-by: Richard Maw <richard.maw@gmail.com>
* git: update to v2.9.1Christian Hesse2016-07-122-1/+1
| | | | | | Update to git version v2.9.1, no changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
* Link with -ldl on GNU/kFreeBSDPeter Colberg2016-07-061-2/+2
| | | | | | GNU/kFreeBSD uses the FreeBSD kernel with the GNU C library. Signed-off-by: Peter Colberg <peter@colberg.org>
* Fix spelling in man pagePeter Colberg2016-07-061-2/+2
| | | | Signed-off-by: Peter Colberg <peter@colberg.org>
* ui-shared: fix segfault when defbranch is NULLEric Wong2016-07-061-1/+1
| | | | | | | | Not sure if there's a better fix for this. defbranch is NULL here on my setup when a crawler hit an invalid URL, causing strcmp to segfault. Signed-off-by: Eric Wong <normalperson@yhbt.net>
* css: consistent use of empty linesChristian Hesse2016-07-051-0/+6
| | | | Signed-off-by: Christian Hesse <mail@eworm.de>
* ui-log: color line changesChristian Hesse2016-07-052-1/+11
| | | | Signed-off-by: Christian Hesse <mail@eworm.de>
* Avoid ambiguities when prettifying snapshot namesLukas Fleischer2016-07-053-20/+32
| | | | | | | | | | | When composing snapshot file names for a tag with a prefix of the form v[0-9] (resp. V[0-9]), the leading "v" (resp. "V") is stripped. This leads to conflicts if a tag with the stripped name already exists or if there are tags only differing in the capitalization of the leading "v". Make sure we do not strip the "v" in these cases. Reported-by: Juuso Lapinlampi <wub@partyvan.eu> Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
* git: update to v2.9.0Christian Hesse2016-06-172-1/+1
| | | | | | Update to git version v2.9.0, no changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
* cgit.mk: Use $PKG_CONFIGKylie McClain2016-06-171-3/+5
| | | | | PKG_CONFIG is a variable dictated by autoconf standards; it should be used if set.
* md2html: use utf-8 and flush output bufferJason A. Donenfeld2016-06-171-6/+11
| | | | | | | | | Otherwise we get the classic Python UTF-8 errors, and the text is all out of order. While we're at it, switch to python3 so we only have to support one set of oddball semantics. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Suggested-by: Daniel Campbell <dlcampbell@gmx.com>
* Hosted on HTTPS nowJason A. Donenfeld2016-06-074-5/+5
|
* Bump version.v1.0Jason A. Donenfeld2016-06-071-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* git: update to v2.8.3Christian Hesse2016-05-202-1/+1
| | | | | | Update to git version v2.8.3, no changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
* ui-diff: action='.' is not correctJason A. Donenfeld2016-05-121-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* forms: action should not be emptyJason A. Donenfeld2016-05-122-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui-shared: Remove a name attribute with an empty valueJuuso Lapinlampi2016-05-121-1/+1
| | | | | | | | The name attribute is optional in an input element, but it must not be an empty value. See: https://html.spec.whatwg.org/#attr-fe-name See: https://html.spec.whatwg.org/#the-input-element
* ui-shared: HTML-ize DOCTYPE and <html>Juuso Lapinlampi2016-05-121-3/+2
| | | | | Get rid of the XHTML headers, bringing cgit slowly to the modern age of HTML.
* ui-shared: Simplify cgit_print_error_page() logicJuuso Lapinlampi2016-05-121-4/+2
|
* git: update to v2.8.2Christian Hesse2016-05-123-2/+2
| | | | | | | | | Update to git version v2.8.2. * Upstream commit 1a0c8dfd89475d6bb09ddee8c019cf0ae5b3bdc2 (strbuf: give strbuf_getline() to the "most text friendly" variant) changed API. Signed-off-by: Christian Hesse <mail@eworm.de>
* ui-log: Simplify decoration codeTim Nordell2016-05-121-24/+22
| | | | | | | | The decoration code inside of git returns the decoration type, so utilize this to create the decoration spans. Additionally, use prettify_refname(...) to get the shorter name for the ref. Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
* ui-log: Do not always emit decoration spanTim Nordell2016-05-121-0/+2
| | | | | | | | The decoration span does not need to be emited if there aren't any decorations to show. This modification saves slightly on bandwidth. Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
* Renamed repo-specific configuration for enable-html-serving in cgitrc.5.txtMatt Comben2016-03-081-1/+1
|
* ui-shared: redirect should not exit early for cacheJason A. Donenfeld2016-02-261-1/+0
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* about: path_info might not be validJason A. Donenfeld2016-02-261-1/+2
|
* tabs: do not use target=_blankJason A. Donenfeld2016-02-231-1/+1
|
* css: fix indentationJason A. Donenfeld2016-02-231-4/+4
|
* css: use less blurry icon for external linkChristian Hesse2016-02-231-1/+2
| | | | | | | | Your mileage may vary, but for me the old icon looks blurry. The new one is character 0xf08e from OTF font awsome in size 10. The icon color is black, gray level is adjusted via opacity. Signed-off-by: Christian Hesse <mail@eworm.de>
* md2html: Do syntax highlighting tooJason A. Donenfeld2016-02-231-1/+5
|
* git: update to v2.7.2Christian Hesse2016-02-232-1/+1
| | | | | | Update to git version v2.7.2, no changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
* ui-plain: fix to show a repo's root directory listing in plain viewJoe Anakata2016-02-221-1/+1
| | | | | | | | | | | | This is to fix the case of accessing http://host.com/cgit.cgi/repo.git/plain/ There is code here to make this case work (match_baselen is set to -1 for top-of-the-tree views) but the unsigned to signed comparison was always false in this case, causing an empty directory listing without this fix. Signed-off-by: Joe Anakata <jea-signup-github@anakata.org> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* cmd: redirect empty about/ to homepage or summaryJason A. Donenfeld2016-02-221-1/+10
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui-shared: add homepage to tabsJason A. Donenfeld2016-02-227-5/+26
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui-atom: avoid DATE_STRFTIMEJohn Keeping2016-02-082-12/+4
| | | | | | | | | | | | | | Git's DATE_STRFTIME ignores the timezone argument and just uses the local timezone regardless of whether the "local" flag is set. Since Atom accepts ISO8601 dates [1], we can use Git's DATE_ISO8601_STRICT instead, which does get this right. Additionally, we never use the local timezone here so we can use the date_mode_from_type() wrapper to simplify the code a bit. [1] https://tools.ietf.org/html/rfc4287#section-3.3 Signed-off-by: John Keeping <john@keeping.me.uk>
* Avoid DATE_STRFTIME for long/short datesJohn Keeping2016-02-085-13/+10
| | | | | | | | | | | Git's DATE_STRFTIME ignores the timezone argument and just uses the local timezone regardless of whether the "local" flag is set. Since our existing FMT_LONGDATE and FMT_SHORTDATE are pretty-much perfect matches to DATE_ISO8601 and DATE_SHORT, switch to taking a date_mode_type directly in cgit_date_mode(). Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-stats: cast pointer before checking for zeroJohn Keeping2016-02-081-2/+2
| | | | | | | | | | | | | We abuse the "void *util" field as a counter and recently started to cast it to a uintptr_t to avoid risking nasal demons by performing arithmetic on a void pointer. However, compilers are also known to do "interesting" things if they know that a pointer is or isn't NULL. Make this safer by checking if the counter (after casting) is non-zero rather than checking if the pointer is non-null. Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-stats: if we're going to abuse void*, do it safelyJason A. Donenfeld2016-02-081-10/+7
|
* git: update to v2.7.1Christian Hesse2016-02-082-1/+1
| | | | | | Update to git version v2.7.1, no changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
* ui-shared: remove cgit_print_date()John Keeping2016-02-082-21/+0
| | | | | | There are no longer any users of this function. Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-atom: use show_date directly for atom datesJohn Keeping2016-02-081-2/+7
| | | | | | | This will allow us to remove cgit_print_date and use Git's show_date consistently. Signed-off-by: John Keeping <john@keeping.me.uk>
* ui-shared: use show_date for footer timestampJohn Keeping2016-02-081-1/+1
| | | | Signed-off-by: John Keeping <john@keeping.me.uk>