about summary refs log tree commit diff
path: root/ui-commit.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2025-05-11Fix change header class HEAD masterRory&1-1/+1
2025-05-10Show change-id header content if presentKatalin Rebhan4-2/+24
2025-04-27Sendfile, minor fixes in static file support, spawn more processes in test, ↵Rory&4-5/+25
css fixes
2025-04-26Fix test script, serve resourcesRory&2-1/+48
2025-04-26css: Support for dark modeSamuel Lidén Borell4-44/+217
Modern browsers have a "dark mode" preference, which enables alternate styles on web sites that support this. This patch adds a dark color scheme, that is automatically activated via a CSS @media query. Older browsers that do not support color schemes will simply show the light scheme, but possibly without syntax highlighting. Note that filters that use color (such as source highlighters) and logotypes may need to be updated to work with a black background! See the updated files in the filters/ directory. Signed-off-by: Samuel Lidén Borell <samuel@kodafritt.se> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2025-04-26Clean up flake importsRory&2-77/+4
2025-03-12Add test stack, fix git version in makefileRory&4-1/+128
2025-03-12Increase footer contrastRory&1-2/+2
2025-03-12Update git to 2.48.1 1.5.1Rory&8-10/+9
2025-03-12CGit-magenta 1.5.0Rory&4-24/+17
2025-03-12Fix changes after rebasing on upstream cgitRory&1-1/+1
2025-03-12Add nix result and .idea to gitignoreRory&1-0/+2
2025-03-12Add nix packageRory&3-0/+188
2025-03-12Bump version to 1.4.1June McEnroe1-1/+1
2025-03-12Bump version to 1.4.0June McEnroe1-1/+1
2025-03-12Bump version to 1.3.0June McEnroe1-1/+1
2025-03-12Update information for forkJune McEnroe4-11/+13
2025-03-12Remove Lua supportJune McEnroe16-1500/+0
Lua support is unused and the dlsym fwrite/write hacks horrify me. Clean it up.
2025-03-12Silence owner-info errorJune McEnroe1-2/+0
cgit runs in a chroot. It is normal that it cannot look up user info in /etc/passwd.
2025-03-12Remove default faviconJune McEnroe4-4/+2
I do not like these things.
2025-03-12Show about path in page titleJune McEnroe1-0/+3
2025-03-12Fix crash trying to print "this commit" on 404sJune McEnroe1-1/+1
For example any URL that starts with a real repo name but isn't valid.
2025-03-12Fix tests for diff spansJune McEnroe2-4/+4
2025-03-12Use <pre> and <span> to print diffsJune McEnroe2-22/+20
This correctly preserves whitespace in browsers without CSS, as an alternative to [1]. [1]: https://80x24.org/cgit.git/commit/?id=7c692e6137697de8a8473c4de5c3de4fb03a2989
2025-03-12Use buffered stdioEric Wong5-3/+33
Our generation of HTML triggers many small write(2) syscalls which is inefficient. Time output on a horrible query against my git.git mirror shows significant performance improvement: QUERY_STRING='id=2b93bfac0f5bcabbf60f174f4e7bfa9e318e64d5&id2=d6da71a9d16b8cf27f9d8f90692d3625c849cbc8' PATH_INFO=/mirrors/git.git/diff export QUERY_STRING PATH_INFO time ./cgit >/dev/null Before: real 0m1.585s user 0m0.904s sys 0m0.658s After: real 0m0.750s user 0m0.666s sys 0m0.076s
2025-03-12Improve button spacing for browsers w/o CSSEric Wong3-4/+11
For browsers on low-end machines running browsers without CSS support, the default tree view displayed "logplain" when it should be "log plain". Stop relying on CSS and add a space in between elements to improve accessibility.
2025-03-12Improve decoration display for browsers without CSSEric Wong2-6/+4
Text-based browsers without CSS support show all the decorations bunched together without spacing. Rely on a whitespace instead of CSS support.
2025-03-12Use <pre> for commit-msgEric Wong4-10/+5
This preserves formatting readable for users of text-based browsers without CSS support.
2025-03-12Improve pageheader display on text-based browsersEric Wong2-4/+13
Text-based browsers (and some GUI browsers such as dillo) display the pageheader as: "summaryrefslogtreecommitdiff" This is difficult-to-read. Improve accessibility for users who cannot run memory-hungry browsers by using whitespace instead of relying on CSS.
2025-03-12Add "this commit" option to switch formAlyssa Ross1-0/+12
Branches are grouped into their own section to make the "this commit" option visually distinct. Adding this option will result in two options being marked as selected if a branch has the same name as a commit oid. But that would cause all sorts of other problems anyway (attempting to switch to the branch would actually give you the commit, etc.), so let's not worry about that. A "permalink" link on the blob view next to the "plain" link would probably be more discoverable, but that would only work for the blob view. The switch UI is visible everywhere. Signed-off-by: Alyssa Ross <hi@alyssa.is>
2025-03-12Remove dependency on memrchrJune McEnroe1-1/+4
Not available on macOS.
2024-08-02git: update to v2.46.0Christian Hesse20-12/+57
Update to git version v2.46.0, this requires changes for these upstream commits: * e7da9385708accf518a80a1e17969020fb361048 global: introduce `USE_THE_REPOSITORY_VARIABLE` macro * 9da95bda74cf10e1475384a71fd20914c3b99784 hash: require hash algorithm in `oidread()` and `oidclr()` * 30aaff437fddd889ba429b50b96ea4c151c502c5 refs: pass repo when peeling objects * c8f815c2083c4b340d4148a15d45c55f2fcc7d3f refs: remove functions without ref store Signed-off-by: Christian Hesse <mail@eworm.de>
2024-07-16fix building with clangDenis Pronin2-4/+4
fix error that is given because of macro overlapping cgit_filter member: ../filter.c:388:10: error: no member named '__fprintf_chk' in 'struct cgit_filter' 388 | filter->fprintf(filter, f, prefix); | ~~~~~~ ^ /usr/include/bits/stdio2.h:92:3: note: expanded from macro 'fprintf' 92 | __fprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) | ^ 1 error generated. Signed-off-by: Denis Pronin <dannftk@yandex.ru> Signed-off-by: Christian Hesse <mail@eworm.de>
2024-07-16ui-stats: add missing source headerChristian Hesse1-0/+8
Signed-off-by: Christian Hesse <mail@eworm.de>
2024-06-01git: update to v2.45.2Christian Hesse2-1/+1
Update to git version v2.45.2, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2024-05-14git: update to v2.45.1Christian Hesse2-1/+1
Update to git version v2.45.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2024-04-29git: update to v2.45.0Christian Hesse4-4/+4
Update to git version v2.45.0, this requires changes for these upstream commits: * 9720d23e8caf4adee44b3a32803a9bb0480118bd date: make DATE_MODE thread-safe Signed-off-by: Christian Hesse <mail@eworm.de>
2024-02-23git: update to v2.44.0Christian Hesse2-1/+1
Update to git version v2.44.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2024-02-14git: update to v2.43.2Christian Hesse2-1/+1
Update to git version v2.43.2, no additional changes required. (Git v2.43.1 fails to build, thus skipping.) Signed-off-by: Christian Hesse <mail@eworm.de>
2023-11-20git: update to v2.43.0Christian Hesse2-1/+1
Update to git version v2.43.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2023-11-02git: update to v2.42.1Christian Hesse2-1/+1
Update to git version v2.42.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2023-08-21git: update to v2.42.0Christian Hesse4-3/+3
Update to git version v2.42.0, this requires changes for these upstream commits: * bc5c5ec0446895f5c4139cd470066beb3c4ac6d5 cache.h: remove this no-longer-used header * aba070683295a20bdf4f49146384984961c794b2 path: move related function to path * a4e7e317f8f27f861321e6eb08b9c8c0f3ab570c config: add ctx arg to config_fn_t Signed-off-by: Christian Hesse <mail@eworm.de>
2023-06-01git: update to v2.41.0Christian Hesse19-68/+77
Update to git version v2.41.0, with lots of changes... This requires changes for these upstream commits: * 60ff56f50372c1498718938ef504e744fe011ffb banned.h: mark `strtok()` and `strtok_r()` as banned * 52acddf36c8cb3778ab2098a0d95cc2e375a4069 string-list: multi-delimiter `string_list_split_in_place()` * d850b7a545fcfbd97460a921c7f7c59d933eb0f7 cocci: apply the "cache.h" part of "the_repository.pending" * cb338c23d6d518947bf6f7240bf30e2ec232bd3b cocci: apply the "commit-reach.h" part of "the_repository.pending" * ecb5091fd4301ac647db0bd2504112b38f7ee06d cocci: apply the "commit.h" part of "the_repository.pending" * 085390328f5fe1dfba67039b1fd6cc51546a4e41 cocci: apply the "diff.h" part of "the_repository.pending" * bc726bd075929aab6b3e09d4dd5c2b0726fd5350 cocci: apply the "object-store.h" part of "the_repository.pending" * bab821646a74c446370fa8d01ca851f247df5033 cocci: apply the "pretty.h" part of "the_repository.pending" * afe27c889429438829bc8818ed17e4960bd3ef02 cocci: apply the "packfile.h" part of "the_repository.pending" * 12cb1c10a64170a5d600dd1c6c8abfeec105fb6b cocci: apply the "refs.h" part of "the_repository.pending" * 035c7de9e9ea11d26df5f9e4bb117f91ed11a9fd cocci: apply the "revision.h" part of "the_repository.pending" ... and some more I missed to list 😜 - for example the move and cleanup of headers and includes (see changes in `cgit.h`) comes to mind... Signed-off-by: Christian Hesse <mail@eworm.de>
2023-04-25git: update to v2.40.1Christian Hesse2-1/+1
Update to git version v2.40.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2023-03-13git: update to v2.40.0Christian Hesse2-1/+1
Update to git version v2.40.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2023-02-14git: update to v2.39.2Christian Hesse2-1/+1
Update to git version v2.39.2, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2023-01-18git: update to v2.39.1Christian Hesse2-1/+1
Update to git version v2.39.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2023-01-10config: make empty js= omit script tagSamuel Lidén Borell1-0/+8
According to the cgitrc man page, an empty js= value should cause the script tag to be omitted. But instead, a script tag with an empty URL is emitted. The same applies to css. So, skip emitting a tag if the specified string is empty. Signed-off-by: Samuel Lidén Borell <samuel@kodafritt.se> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19js: add dynamic age updateAndy Green3-1/+63
This patch updates the emitted "ages" dynamically on the client side. After updating on completion of the document load, it sets a timer to update according to the smallest age it found. If there are any ages listed in minutes, then it will update again in 10s. When the most recent age is in hours, it updates every 5m. If days, then every 30m and so on. This keeps the cost of the dynamic updates at worst once per 10s. The updates are done entirely on the client side without contact with the server. To make this work reliably, since parsing datetimes is unreliable in browser js, the unix time is added as an attribute to all age spans. To make that reliable cross-platform, the unix time is treated as a uint64_t when it is formatted for printing. The rules for display conversion of the age is aligned with the existing server-side rules in ui-shared.h. If the client or server-side time are not synchronized by ntpd etc, ages shown on the client will not relate to the original ages computed at the server. The client updates the ages immediately when the DOM has finished loading, so in the case the times at the server and client are not aligned, this patch changes what the user sees on the page to reflect patch age compared to client time. If the server and client clocks are aligned, this patch makes no difference to what is seen on the page. Signed-off-by: Andy Green <andy@warmcat.com> Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19config: add jsAndy Green6-0/+33
Just like the config allows setting css URL path, add a config for setting the js URL path Signed-off-by: Andy Green <andy@warmcat.com> Reviewed-by: John Keeping <john@keeping.me.uk> Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19css: change to be a listAndy Green4-7/+22
Without changing the default behaviour of including /cgit.css if nothing declared, allow the "css" config to be given multiple times listing one or more alternative URL paths to be included in the document head area. Signed-off-by: Andy Green <andy@warmcat.com> Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19cgitrc: handle value "0" for max-repo-countChristian Hesse2-3/+6
Setting max-repo-count to "0" makes cgit loop forever generating page links. Make this a special value to show all repositories. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19cache: tolerate short writes in print_slotHristo Venev1-20/+25
sendfile() can return after a short read/write, so we may need to call it more than once. As suggested in the manual page, we fall back to read/write if sendfile fails with EINVAL or ENOSYS. On the read/write path, use write_in_full which deals with short writes. Signed-off-by: Hristo Venev <hristo@venev.name> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19global: use release_commit_memory()John Keeping3-8/+4
Instead of calling two separate Git functions to free memory associated with a commit object, use Git's wrapper which does this. This also counts as a potential future bug fix since release_commit_memory() also resets the parsed state of the commit, meaning any attempt to use it in the future will correctly fill out the fields again. release_commit_memory() does not set parents to zero, so keep that for additional safety in case CGit checks this without calling parse_commit() again. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19css: reset font size for blame oidJohn Keeping1-0/+4
In Firefox, the hashes in the blame UI are out of step with the line number and content leading to ever increasing vertical misalignment. This is caused by the .oid class setting font-size to 90%, so override this back to 100% for the blame case, bringing the height of lines in all three columns of the table back into step. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-blame: add a link to the parent commit in blameJohn Keeping1-0/+9
When walking through the history, it is useful to quickly see the same file at the previous revision, so add a link to do this. It would be nice to link to the correct line with an additional fragment, but this requires significantly more work so it can be done as an enhancement later. (ent->s_lno is mostly the right thing, but it is the line number in the post-image of the target commit whereas the link is to the parent of that commit, i.e. the pre-image of the target.) Suggested-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19about: allow to give head from queryChristian Hesse2-8/+10
Reading the README from repository used to be limited to default branch or a branch given in configuration. Let's allow a branch from query if not specified explicitly. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19html: fix handling of null bytePeter Prohaska1-1/+1
A return value of `len` or more means that the output was truncated. Signed-off-by: Peter Prohaska <pitrp@web.de> Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19ui-atom: generate valid Atom feedsJune McEnroe1-11/+20
Fixes several RFC 4287 violations: > 4.1.1. The "atom:feed" Element > o atom:feed elements MUST contain exactly one atom:id element. > o atom:feed elements SHOULD contain one atom:link element with a rel > attribute value of "self". This is the preferred URI for > retrieving Atom Feed Documents representing this Atom feed. > o atom:feed elements MUST contain exactly one atom:updated element. An atom:id element is generated from cgit_currentfullurl(), and an atom:link element with a rel attribute of "self" is generated with the same URL. An atom:updated element is generated from the date of the first commit in the revision walk. > 4.1.2. The "atom:entry" Element > o atom:entry elements MUST NOT contain more than one atom:content > element. The second atom:content element with the type of "xhtml" is removed. > 4.2.6. The "atom:id" Element > Its content MUST be an IRI, as defined by [RFC3987]. Note that the > definition of "IRI" excludes relative references. Though the IRI > might use a dereferencable scheme, Atom Processors MUST NOT assume it > can be dereferenced. The atom:id elements for commits now use URNs in the "sha1" or "sha256" namespaces. Although these are not registered URN namespaces, they see use in the wild, for instance as part of magnet URIs. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-shared: use owner-filter for repo page headersJune McEnroe1-1/+7
Previously it was only used if owners were displayed on the index. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-commit: use git raw note formatChris Mayo1-1/+1
Currently a commit note is shown as: Notes Notes: <note text> Change to: Notes <note text> Signed-off-by: Chris Mayo <aklhfex@gmail.com> Reviewed-by: Alyssa Ross <hi@alyssa.is> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-repolist,ui-shared: remove redundant title on repo anchorsChris Mayo2-2/+2
The title attribute was being set to the same value as the anchor element text. Signed-off-by: Chris Mayo <aklhfex@gmail.com> Reviewed-by: Eric Wong <e@80x24.org> Reviewed-by: Petr Vorel <petr.vorel@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-commit: show subject in commit page titleJune McEnroe1-0/+1
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-tree: show symlink targets in tree listingJune McEnroe1-2/+20
Add links to symbolic link targets in tree listings, formatted like "ls -l". Path normalization collapses any ".." components of the link. Also fix up memory link on error path. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19ui-tree,ui-blame: bail from blame if blob is binaryJune McEnroe3-2/+9
This avoids piping binary blobs through the source-filter. Also prevent robots from crawling it, since it's expensive. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-12-19git: update to v2.39.0Christian Hesse2-1/+1
Update to git version v2.39.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.38.2Christian Hesse2-1/+1
Update to git version v2.38.2, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.38.1Christian Hesse2-1/+1
Update to git version v2.38.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.38.0Christian Hesse2-1/+1
Update to git version v2.38.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.37.3Christian Hesse2-1/+1
Update to git version v2.37.3, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.37.2Christian Hesse2-1/+1
Update to git version v2.37.2, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.37.1Christian Hesse2-1/+1
Update to git version v2.37.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.37.0Christian Hesse2-1/+1
Update to git version v2.37.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19git: update to v2.36.1Christian Hesse2-1/+1
Update to git version v2.36.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-12-19shared: fix bad free in cgit_diff_treeJune McEnroe1-7/+5
Since git commit 244c27242f44e6b88e3a381c90bde08d134c274b, > diff.[ch]: have diff_free() call clear_pathspec(opts.pathspec) calling diff_flush calls free(3) on opts.pathspec.items, so it can't be a pointer to a stack variable. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-04-18git: update to v2.36.0Christian Hesse3-2/+2
Update to git version v2.36.0, this requires changes for these upstream commits: * 95433eeed9eac439eb21eb30105354b15e71302e diff: add ability to insert additional headers for paths Signed-off-by: Christian Hesse <mail@eworm.de>
2022-04-18git: update to v2.35.3Christian Hesse2-1/+1
Update to git version v2.35.3, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-04-12git: update to v2.35.2Christian Hesse2-1/+1
Update to git version v2.35.2, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-01-29git: update to v2.35.1Christian Hesse2-1/+1
Update to git version v2.35.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2022-01-24git: update to v2.35.0Christian Hesse2-1/+1
Update to git version v2.35.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2021-11-24git: update to v2.34.1Christian Hesse2-1/+1
Update to git version v2.34.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2021-11-15git: update to v2.34.0Christian Hesse3-2/+2
Update to git version v2.34.0, this requires changes for these upstream commits: * abf897bacd2d36b9dbd07c70b4a2f97a084704ee string-list.[ch]: remove string_list_init() compatibility function Signed-off-by: Christian Hesse <mail@eworm.de>
2021-11-03git: update to v2.33.0Christian Hesse2-1/+1
Update to git version v2.33.0, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2021-06-08git: update to v2.32.0Christian Hesse6-36/+23
Update to git version v2.32.0, this requires changes for these upstream commits: * 47957485b3b731a7860e0554d2bd12c0dce1c75a tree.h API: simplify read_tree_recursive() signature Signed-off-by: Christian Hesse <mail@eworm.de>
2021-05-18git: update to v2.31.1Christian Hesse2-1/+1
Update to git version v2.31.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2021-05-12md2html: use proper formatting for hrChristian Hesse1-5/+1
This addressed a non-existent background image and made the element invisible. Drop the style and use something sane. Signed-off-by: Christian Hesse <mail@eworm.de>
2021-03-16git: update to v2.31.0Christian Hesse3-4/+5
Update to git version v2.31.0, this requires changes for these upstream commits: * 36a317929b8f0c67d77d54235f2d20751c576cbb refs: switch peel_ref() to peel_iterated_oid() Signed-off-by: Christian Hesse <mail@eworm.de>
2021-02-10git: update to v2.30.1Christian Hesse2-1/+1
Update to git version v2.30.1, no additional changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-12-29tests: t0107: support older and/or non-GNU tarTodd Zullinger1-4/+4
The untar tests for various compression algorithms use shortcut options from GNU tar to handle decompression. These options may not be provided by non-GNU tar nor even by slightly older GNU tar versions which ship on many systems. An example of the latter case is the --zstd option. This was added in GNU tar-1.32 (2019-02-23)¹. This version of tar is not provided by CentOS/RHEL, in particular. In Debian, --zstd has been backported to the tar-1.30 release. Avoid the requirement on any specific implementations or versions of tar by piping decompressed output to tar. This is compatible with older GNU tar releases as well as tar implementations from other vendors. (It may also be a slight benefit that this more closely matches what the snapshot creation code does.) ¹ Technically, the --zstd option was first released in tar-1.31 (2019-01-02), but this release was very short-lived and is no longer listed on the GNU Tar release page. Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-12-29md2html: use sane_lists extensionJason A. Donenfeld1-0/+1
This allows for cleaner nesting semantics and matches github more closely. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-12-29git: update to v2.30.0Christian Hesse6-33/+35
Update to git version v2.30.0, this requires changes for these upstream commits: * 88894aaeeae92e8cb41143cc2e045f50289dc790 blame: simplify 'setup_scoreboard' interface * 1fbfdf556f2abc708183caca53ae4e2881b46ae2 banned.h: mark non-reentrant gmtime, etc as banned Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-30git: update to v2.29.2Christian Hesse2-1/+1
Update to git version v2.29.2. No changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-27git: update to v2.29.1Christian Hesse2-1/+1
Update to git version v2.29.1. No functional change, but we want latest and greated version number, no? 😜 Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-22tests: try with commit-graphChristian Hesse1-4/+8
Git 2.24.0 enabled commit-graph by default and caused crashes without necessary update. Let's test to work with commit-graph. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-22tests: do not copy snapshots to /tmp/Christian Hesse1-6/+3
No idea why this was added... Possibly to inspect the snapshot manually? Let's drop it. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-20global: replace hard coded hash lengthChristian Hesse4-6/+5
With sha1 we had a guaranteed length of 40 hex chars. This changes now that we have to support sha256 with 64 hex chars... Support both. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-20global: replace references to 'sha1' with 'oid'Christian Hesse13-66/+66
For some time now sha1 is considered broken and upstream is working to replace it with sha256. Replace all references to 'sha1' with 'oid', just as upstream does. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-10-19git: update to v2.29.0Christian Hesse7-35/+35
Update to git version v2.29.0, this requires changes for these upstream commits: * dbbcd44fb47347a3fdbee88ea21805b7f4ac0b98 strvec: rename files from argv-array to strvec * 873cd28a8b17ff21908c78c7929a7615f8c94992 argv-array: rename to strvec * d70a9eb611a9d242c1d26847d223b8677609305b strvec: rename struct fields * 6a67c759489e1025665adf78326e9e0d0981bab5 test-lib-functions: restrict test_must_fail usage Signed-off-by: Christian Hesse <mail@eworm.de>
2020-07-27git: update to v2.28.0Christian Hesse2-1/+1
Update to git version v2.28.0. No changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-06-02git: update to v2.27.0Christian Hesse2-1/+1
Update to git version v2.27.0. No changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-03-23git: update to v2.26.0Christian Hesse2-1/+1
Update to git version v2.26.0. No changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-03-13Bump version v1.2.3Jason A. Donenfeld1-1/+1
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-13global: use proper accessors for maybe_treeJason A. Donenfeld7-19/+29
A previous commit changed ->tree to ->maybe_tree throughout, which may have worked at the time, but wasn't safe, because maybe_tree is loaded lazily. This manifested itself in crashes when using the "follow" log feature. The proper fix is to use the correct contextual accessors everytime we want access to maybe_tree. Thankfully, the commit.cocci script takes care of creating mostly-correct patches that we could then fix up, resulting in this commit here. Fixes: 255b78f ("git: update to v2.18.0") Reviewed-by: Christian Hesse <mail@eworm.de> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-12ui-snapshot: add support for zstd compressionChristian Hesse4-4/+56
This patch adds support for zstd [0] compressed snapshots (*.tar.zst). We enable multiple working threads (-T0), but keep default compression level. The latter can be influenced by environment variable. [0] https://www.zstd.net/ Signed-off-by: Christian Hesse <mail@eworm.de>
2020-03-12tests: add tests for xz compressed snapshotsChristian Hesse2-1/+43
Signed-off-by: Christian Hesse <mail@eworm.de>
2020-02-26ui-snapshot: add support for lzip compressionHanspeter Portner4-3/+52
This patch adds support for lzip [1] compressed snapshots (*.tar.lz) [1] https://www.nongnu.org/lzip/ Signed-off-by: Hanspeter Portner <dev@open-music-kontrollers.ch> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-02-17git: update to v2.25.1Christian Hesse2-1/+1
Update to git version v2.25.1. No changes required.
2020-01-13tests: allow to skip git version testsChristian Hesse1-0/+4
This allows to run tests non-tagged git checkout or when bisecting. Signed-off-by: Christian Hesse <mail@eworm.de>
2020-01-13Bump version v1.2.2Jason A. Donenfeld1-1/+1
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-01-13git: update to v2.25.0Christian Hesse3-2/+2
Update to git version v2.25.0. Upstream renamed 'init_display_notes()' to 'load_display_notes()' in commit 1e6ed5441a61b5085978e0429691e2e2425f6846 ("notes: rename to load_display_notes()"). Signed-off-by: Christian Hesse <mail@eworm.de>
2019-12-11tests: skip tests if strace is not functionalChristian Hesse1-0/+6
Chances are that strace is available but not functional due to restricted permissions: strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Operation not permitted strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted +++ exited with 1 +++ Just skip the tests then. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-12-10git: update to v2.24.1Christian Hesse2-1/+1
Update to git version v2.24.1. No changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-11-22ui-repolist: do not return unsigned (negative) valueChristian Hesse1-1/+1
The function read_agefile() returns time_t, which is a signed datatime. We should not return unsigned (negative) value here. Reported-by: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Christian Hesse <mail@eworm.de>
2019-11-08git: update to v2.24.0Christian Hesse3-2/+2
Update to git version v2.24.0. Never use get_cached_commit_buffer() directly, use repo_get_commit_buffer() instead. The latter calls the former anyway. This fixes segmentation fault when commit-graph is enabled and get_cached_commit_buffer() does not return the expected result. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-10-25git: update to v2.23.0Christian Hesse2-1/+1
Update to git version v2.23.0. No changes required. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-10-25git: update to v2.22.0Christian Hesse3-7/+12
Update to git version v2.22.0. Upstream commit bce9db6d ("trace2: use system/global config for default trace2 settings") caused a regression. We have to unset HOME and XDG_CONFIG_HOME before early loading of config from trace2 code kicks in. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-06-25ui-tree: allow per repository override for enable-blameChristian Hesse6-3/+13
The blame operation can cause high cost in terms of CPU load for huge repositories. Let's add a per repository override for enable-blame. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-06-05tests: successfully validate rc versionsChristian Hesse1-1/+1
For testing versions the version string differs for git tag (v2.22.0-rc3) and tarball file name (2.22.0.rc3). Let's fix validation for testing versions. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-06-05git: update to v2.21.0Christian Hesse9-15/+21
Update to git version v2.21.0. Required changes follow upstream commits: * 6a7895fd8a3bd409f2b71ffc355d5142172cc2a0 (commit: prepare free_commit_buffer and release_commit_memory for any repo) * e092073d643b17c82d72cf692fbfaea9c9796f11 (tree.c: make read_tree*() take 'struct repository *') Signed-off-by: Christian Hesse <mail@eworm.de> Reviewed-by: John Keeping <john@keeping.me.uk>
2019-06-05ui-ssdiff: ban strncat()Christian Hesse1-3/+5
Git version v2.21.0 marks strncat() as banned (commit ace5707a803eda0f1dde3d776dc3729d3bc7759a), so replace it. Signed-off-by: Christian Hesse <mail@eworm.de>
2019-06-05global: make 'char *path' const where possibleChristian Hesse9-10/+10
Signed-off-by: Christian Hesse <mail@eworm.de>
2019-05-20ui-shared: restrict to 15 levelsJason A. Donenfeld1-1/+3
Perhaps a more ideal version of this would be to not print breadcrumbs at all for paths that don't exist in the given repo at the given oid. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Reported-by: Fydor Wire Snark <wsnark@tuta.io>
2019-02-23ui-diff,ui-tag: don't use htmlf with non-formatted stringsChris Mayo2-3/+3
Signed-off-by: Chris Mayo <aklhfex@gmail.com>
2019-02-23ui-ssdiff: resolve HTML5 validation errorsChris Mayo1-4/+6
- Remove ids from anchor elements. They were unusable because they were duplicated between files and versions of files. - Always close span, with html(). - Fix missing / on closing tr element in cgit_ssdiff_header_end(). Signed-off-by: Chris Mayo <aklhfex@gmail.com>
2019-01-03filters: migrate from luacrypto to luaosslJason A. Donenfeld5-44/+83
luaossl has no upstream anymore and doesn't support OpenSSL 1.1, whereas luaossl is quite active. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2019-01-02ui-shared: fix broken sizeof in title setting and rewriteJason A. Donenfeld1-26/+8
The old algorithm was totally incorrect. While we're at it, use « instead of \, since it makes more sense. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-12-09git: update to v2.20.0Christian Hesse4-2/+3
Update to git version v2.20.0. Required changes follow upstream commits: * 00436bf1b1c2a8fe6cf5d2c2457d419d683042f4 (archive: initialize archivers earlier) * 611e42a5980a3a9f8bb3b1b49c1abde63c7a191e (xdiff: provide a separate emit callback for hunks) Signed-off-by: Christian Hesse <mail@eworm.de>
2018-11-25ui-blame: set repo for sbJason A. Donenfeld1-0/+1
Otherwise recent git complains and crashes with: "BUG: blame.c:1787: repo is NULL". Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-11-25auth-filter: pass url with query string attachedJason A. Donenfeld3-3/+37
Otherwise redirections come out wrong. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-11-21git: use xz compressed archive for downloadChristian Hesse1-2/+2
Upstream will stop providing gz compressed source tarballs [0], so stop using them. [0] https://lists.zx2c4.com/pipermail/cgit/2018-November/004254.html Signed-off-by: Christian Hesse <mail@eworm.de>
2018-10-12git: update to v2.19.1Christian Hesse15-22/+23
Update to git version v2.19.1. Required changes follow upstream commits: * commit: add repository argument to get_cached_commit_buffer (3ce85f7e5a41116145179f0fae2ce6d86558d099) * commit: add repository argument to lookup_commit_reference (2122f6754c93be8f02bfb5704ed96c88fc9837a8) * object: add repository argument to parse_object (109cd76dd3467bd05f8d2145b857006649741d5c) * tag: add repository argument to deref_tag (a74093da5ed601a09fa158e5ba6f6f14c1142a3e) * tag: add repository argument to lookup_tag (ce71efb713f97f476a2d2ab541a0c73f684a5db3) * tree: add repository argument to lookup_tree (f86bcc7b2ce6cad68ba1a48a528e380c6126705e) * archive.c: avoid access to the_index (b612ee202a48f129f81f8f6a5af6cf71d1a9caef) * for_each_*_object: move declarations to object-store.h (0889aae1cd18c1804ba01c1a4229e516dfb9fe9b) Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11ui-ssdiff: ban strcat()Christian Hesse1-2/+4
Git upstream bans strcat() with commit: banned.h: mark strcat() as banned 1b11b64b815db62f93a04242e4aed5687a448748 Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11ui-ssdiff: ban strncpy()Christian Hesse1-2/+1
Git upstream bans strncpy() with commit: banned.h: mark strncpy() as banned e488b7aba743d23b830d239dcc33d9ca0745a9ad Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11ui-shared: ban strcat()Christian Hesse1-4/+8
Git upstream bans strcat() with commit: banned.h: mark strcat() as banned 1b11b64b815db62f93a04242e4aed5687a448748 To avoid compiler warnings from gcc 8.1.x we get the hard way. Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11ui-patch: ban sprintf()Christian Hesse1-2/+5
Git upstream bans sprintf() with commit: banned.h: mark sprintf() as banned cc8fdaee1eeaf05d8dd55ff11f111b815f673c58 Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11ui-log: ban strncpy()Christian Hesse1-1/+1
Git upstream bans strncpy() with commit: banned.h: mark strncpy() as banned e488b7aba743d23b830d239dcc33d9ca0745a9ad Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11ui-log: ban strcpy()Christian Hesse1-1/+1
Git upstream bans strcpy() with commit: automatically ban strcpy() c8af66ab8ad7cd78557f0f9f5ef6a52fd46ee6dd Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11parsing: ban sprintf()Christian Hesse1-1/+1
Git upstream bans sprintf() with commit: banned.h: mark sprintf() as banned cc8fdaee1eeaf05d8dd55ff11f111b815f673c58 Signed-off-by: Christian Hesse <mail@eworm.de>
2018-09-11parsing: ban strncpy()Christian Hesse1-2/+1
Git upstream bans strncpy() with commit: banned.h: mark strncpy() as banned e488b7aba743d23b830d239dcc33d9ca0745a9ad Signed-off-by: Christian Hesse <mail@eworm.de>
2018-08-28filters: generate anchor links from markdownChristian Hesse1-2/+15
This makes the markdown filter generate anchor links for headings. Signed-off-by: Christian Hesse <mail@eworm.de> Tested-by: jean-christophe manciot <actionmystique@gmail.com>
2018-08-03Bump version. v1.2.1Jason A. Donenfeld1-1/+1
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-03clone: fix directory traversalJason A. Donenfeld1-4/+19
This was introduced in the initial version of this code, way back when in 2008. $ curl http://127.0.0.1/cgit/repo/objects/?path=../../../../../../../../../etc/passwd root:x:0:0:root:/root:/bin/sh ... Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Reported-by: Jann Horn <jannh@google.com>
2018-08-03