From ibrahim at muftee.net Thu Sep 3 07:24:43 2026 From: ibrahim at muftee.net (Ibrahim Muftee) Date: Thu, 3 Sep 2026 07:24:43 +0000 Subject: Issues with git.zx2c4.com: 'No repositories found' Message-ID: Hello, I attempted to visit the HTTP git server at 'https://git.zx2c4.com' but when I arrived I got the message "No repositories found." Is this issue known by anyone else? - Ibrahim Muftee From list at eworm.de Mon Sep 14 13:02:54 2026 From: list at eworm.de (Christian Hesse) Date: Mon, 14 Sep 2026 15:02:54 +0200 Subject: [PATCH 1/1] RFC: git: update to v2.56.0-rc0 Message-ID: <20260914130254.135825-1-list@eworm.de> From: Christian Hesse Update to git version v2.56.0-rc0, no changes required. Signed-off-by: Christian Hesse --- Makefile | 4 ++-- git | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index d039293..c58317c 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ htmldir = $(docdir) pdfdir = $(docdir) mandir = $(prefix)/share/man SHA1_HEADER = -GIT_VER = 2.55.0 -GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz +GIT_VER = 2.56.0.rc0 +GIT_URL = https://www.kernel.org/pub/software/scm/git/testing/git-$(GIT_VER).tar.xz INSTALL = install COPYTREE = cp -r MAN5_TXT = $(wildcard *.5.txt) diff --git a/git b/git index e9019fc..fa7f929 160000 --- a/git +++ b/git @@ -1 +1 @@ -Subproject commit e9019fcafe0040228b8631c30f97ae1adb61bcdc +Subproject commit fa7f9290efe2bd22dd736689597b474b93798e11 From hskim at dilluti0n.com Mon Sep 14 14:16:18 2026 From: hskim at dilluti0n.com (Hee-Suk Kim) Date: Mon, 14 Sep 2026 23:16:18 +0900 Subject: How do I render a manual page from CGit's about page? In-Reply-To: <59403be5-9830-4cd6-aabf-a7928192722e@jausoft.com> References: <87zey7o8s3.fsf@dilluti0n.com> <59403be5-9830-4cd6-aabf-a7928192722e@jausoft.com> Message-ID: <87wlsndikt.fsf@gmail.com> Sven G?thel writes: > I use pandoc, see my style-sheet and integration here > > backup > > Cheers > > ~Sven Thank you for sharing your setup. I've tried your setup, it renders very solid and beautiful but pandoc is a bit heavy to put on cgi, ended up using cmark-gfm instead: #!/bin/sh echo '
' echo '' cmark-gfm --unsafe -e table -e strikethrough -e autolink -e tasklist --smart echo "
" It renders faster than default python one! Thanks, Hee-Suk Kim From list at eworm.de Mon Sep 28 18:36:43 2026 From: list at eworm.de (Christian Hesse) Date: Mon, 28 Sep 2026 20:36:43 +0200 Subject: [PATCH 1/1] git: update to v2.56.0 Message-ID: <20260928183643.202040-1-list@eworm.de> From: Christian Hesse Update to git version v2.56.0, this requires a change for this upstream commit: * 88d06b1c911e8491029ef24e96e3f412ce24c2ae pathspec: match and original in pathspec_item are const Signed-off-by: Christian Hesse --- Makefile | 2 +- git | 2 +- ui-blob.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index d039293..55c0cb6 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ htmldir = $(docdir) pdfdir = $(docdir) mandir = $(prefix)/share/man SHA1_HEADER = -GIT_VER = 2.55.0 +GIT_VER = 2.56.0 GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz INSTALL = install COPYTREE = cp -r diff --git a/git b/git index e9019fc..a018953 160000 --- a/git +++ b/git @@ -1 +1 @@ -Subproject commit e9019fcafe0040228b8631c30f97ae1adb61bcdc +Subproject commit a018953688f1b10bddf91bff8747068f5f4746a4 diff --git a/ui-blob.c b/ui-blob.c index bc91656..5158de5 100644 --- a/ui-blob.c +++ b/ui-blob.c @@ -63,7 +63,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) &paths, walk_tree, &walk_tree_ctx); done: - free(path_items.match); + free((void *)path_items.match); return walk_tree_ctx.found_path; } From john at keeping.me.uk Mon Sep 28 23:16:26 2026 From: john at keeping.me.uk (John Keeping) Date: Tue, 29 Sep 2026 00:16:26 +0100 Subject: [PATCH 1/1] git: update to v2.56.0 In-Reply-To: <20260928183643.202040-1-list@eworm.de> References: <20260928183643.202040-1-list@eworm.de> Message-ID: Hi Christian, On Mon, Sep 28, 2026 at 08:36:43PM +0200, Christian Hesse wrote: > diff --git a/ui-blob.c b/ui-blob.c > index bc91656..5158de5 100644 > --- a/ui-blob.c > +++ b/ui-blob.c > @@ -63,7 +63,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) > &paths, walk_tree, &walk_tree_ctx); > > done: > - free(path_items.match); > + free((void *)path_items.match); > return walk_tree_ctx.found_path; > } Can we remove the xstrdup() at the start of the function and the free() here? These were added in commit 3d33b46 ("git: update to v2.13.4") with the comment "... allocate the match string to avoid needing to cast away const". Now that item.match is const char*, we can use "path" directly. Kind regards, John From altblue at n0i.net Tue Sep 29 00:22:02 2026 From: altblue at n0i.net (Marius Feraru) Date: Tue, 29 Sep 2026 03:22:02 +0300 Subject: [PATCH] Emulate git diff --merge-base Message-ID: <47b75bec4f9614c7de7d6c33732eea8ca111643f.1790640609.git.altblue@n0i.net> * cgit.h: cgit_query: + diffmergebase * cgit.c: querystring_cb: dmb -> diffmergebase If "dmb" query arg is present, and it isn't "0", then set "diffmergebase". * ui-diff: - cgit_print_diff_ctrls: add "dmb" to control "diffmergebase" - cgit_print_diff: handle "diffmergebase" by using "diff_get_merge_base" to change "old_rev_oid" to detected "merge base" * tests/t0112-diffmergebase.sh: check dmb bits on diff page Signed-off-by: Marius Feraru --- cgit.c | 2 ++ cgit.h | 1 + tests/t0112-diffmergebase.sh | 37 ++++++++++++++++++++++++++++++++++++ ui-diff.c | 22 +++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100755 tests/t0112-diffmergebase.sh diff --git a/cgit.c b/cgit.c index 2efbb2c..52ab686 100644 --- a/cgit.c +++ b/cgit.c @@ -362,10 +362,12 @@ static void querystring_cb(const char *name, const char *value) ctx.qry.context = atoi(value); } else if (!strcmp(name, "ignorews")) { ctx.qry.ignorews = atoi(value); } else if (!strcmp(name, "follow")) { ctx.qry.follow = atoi(value); + } else if (!strcmp(name, "dmb") && strcmp(value, "0")) { + ctx.qry.diffmergebase = true; } } static void prepare_context(void) { diff --git a/cgit.h b/cgit.h index 7d7ece7..9537e24 100644 --- a/cgit.h +++ b/cgit.h @@ -189,10 +189,11 @@ struct cgit_query { int show_all; int context; int ignorews; int follow; char *vpath; + bool diffmergebase; }; struct cgit_config { char *agefile; char *cache_root; diff --git a/tests/t0112-diffmergebase.sh b/tests/t0112-diffmergebase.sh new file mode 100755 index 0000000..9524f1f --- /dev/null +++ b/tests/t0112-diffmergebase.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +test_description='Check merge-base bits on diff page' +. ./setup.sh + +test_expect_success 'generate branch' ' + cd repos/foo && + git checkout -b b1 --track master && + echo b1 >b1-file && + git add --all && + git commit -m "commit b1 changes" && + git checkout - && + echo m1 >m1-file && + git add --all && + git commit -m "commit m1 changes" && + cd - +' + +test_expect_success 'generate diff w/o dmb' 'cgit_url "foo/diff&h=b1&id=b1&id2=b1%40%7Bu%7D" >diff-wo-dmb' +test_expect_success 'view has diffmergebase unchecked ctrl' ' + grep -P "diff-w-dmb +' +test_expect_success 'view has diffmergebase checked ctrl' ' + grep -P ""); + html(""); + html(""); html(""); html(""); html(""); html(""); html(""); @@ -427,10 +434,25 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, oidcpy(old_rev_oid, &commit->parents->item->object.oid); } else { oidclr(old_rev_oid, the_repository->hash_algo); } + if (ctx.qry.diffmergebase && + !is_null_oid(old_rev_oid) && + !is_null_oid(new_rev_oid)) { + struct rev_info revs; + repo_init_revisions(the_repository, &revs, prefix); + add_pending_object(&revs, + parse_object(the_repository, old_rev_oid), + oid_to_hex(old_rev_oid)); + add_pending_object(&revs, + parse_object(the_repository, new_rev_oid), + oid_to_hex(new_rev_oid)); + diff_get_merge_base(&revs, old_rev_oid); + release_revisions(&revs); + } + if (!is_null_oid(old_rev_oid)) { commit2 = lookup_commit_reference(the_repository, old_rev_oid); if (!commit2 || repo_parse_commit(the_repository, commit2)) { cgit_print_error_page(404, "Not found", "Bad commit: %s", oid_to_hex(old_rev_oid)); From list at eworm.de Tue Sep 29 07:47:17 2026 From: list at eworm.de (Christian Hesse) Date: Tue, 29 Sep 2026 09:47:17 +0200 Subject: [PATCH 1/1] git: update to v2.56.0 In-Reply-To: References: <20260928183643.202040-1-list@eworm.de> Message-ID: <20260929094717.684c5b19@leda.eworm.net> John Keeping on Tue, 2026/09/29 00:16: > Hi Christian, > > On Mon, Sep 28, 2026 at 08:36:43PM +0200, Christian Hesse wrote: > > diff --git a/ui-blob.c b/ui-blob.c > > index bc91656..5158de5 100644 > > --- a/ui-blob.c > > +++ b/ui-blob.c > > @@ -63,7 +63,7 @@ int cgit_ref_path_exists(const char *path, const char > > *ref, int file_only) &paths, walk_tree, &walk_tree_ctx); > > > > done: > > - free(path_items.match); > > + free((void *)path_items.match); > > return walk_tree_ctx.found_path; > > } > > Can we remove the xstrdup() at the start of the function and the free() > here? > > These were added in commit 3d33b46 ("git: update to v2.13.4") with the > comment "... allocate the match string to avoid needing to cast away > const". > > Now that item.match is const char*, we can use "path" directly. Ah, sounds reasonable. ;) Had been wondering why this actually does duplicate... Thanks! -- main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH" "CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];) putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);} -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: From list at eworm.de Tue Sep 29 07:50:14 2026 From: list at eworm.de (Christian Hesse) Date: Tue, 29 Sep 2026 09:50:14 +0200 Subject: [PATCH v2 1/1] git: update to v2.56.0 In-Reply-To: References: Message-ID: <20260929075021.33237-1-list@eworm.de> From: Christian Hesse Update to git version v2.56.0, this requires a change for this upstream commit: * 88d06b1c911e8491029ef24e96e3f412ce24c2ae pathspec: match and original in pathspec_item are const Signed-off-by: Christian Hesse --- Makefile | 2 +- git | 2 +- ui-blob.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index d039293..55c0cb6 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ htmldir = $(docdir) pdfdir = $(docdir) mandir = $(prefix)/share/man SHA1_HEADER = -GIT_VER = 2.55.0 +GIT_VER = 2.56.0 GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz INSTALL = install COPYTREE = cp -r diff --git a/git b/git index e9019fc..a018953 160000 --- a/git +++ b/git @@ -1 +1 @@ -Subproject commit e9019fcafe0040228b8631c30f97ae1adb61bcdc +Subproject commit a018953688f1b10bddf91bff8747068f5f4746a4 diff --git a/ui-blob.c b/ui-blob.c index bc91656..7879127 100644 --- a/ui-blob.c +++ b/ui-blob.c @@ -40,7 +40,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) struct object_id oid; unsigned long size; struct pathspec_item path_items = { - .match = xstrdup(path), + .match = path, .len = strlen(path) }; struct pathspec paths = { @@ -63,7 +63,6 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) &paths, walk_tree, &walk_tree_ctx); done: - free(path_items.match); return walk_tree_ctx.found_path; } From john at keeping.me.uk Tue Sep 29 08:38:20 2026 From: john at keeping.me.uk (John Keeping) Date: Tue, 29 Sep 2026 09:38:20 +0100 Subject: [PATCH v2 1/1] git: update to v2.56.0 In-Reply-To: <20260929075021.33237-1-list@eworm.de> References: <20260929075021.33237-1-list@eworm.de> Message-ID: On Tue, Sep 29, 2026 at 09:50:14AM +0200, Christian Hesse wrote: > From: Christian Hesse > > Update to git version v2.56.0, this requires a change for this > upstream commit: > > * 88d06b1c911e8491029ef24e96e3f412ce24c2ae > pathspec: match and original in pathspec_item are const > > Signed-off-by: Christian Hesse Reviewed-by: John Keeping > --- > Makefile | 2 +- > git | 2 +- > ui-blob.c | 3 +-- > 3 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/Makefile b/Makefile > index d039293..55c0cb6 100644 > --- a/Makefile > +++ b/Makefile > @@ -14,7 +14,7 @@ htmldir = $(docdir) > pdfdir = $(docdir) > mandir = $(prefix)/share/man > SHA1_HEADER = > -GIT_VER = 2.55.0 > +GIT_VER = 2.56.0 > GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz > INSTALL = install > COPYTREE = cp -r > diff --git a/git b/git > index e9019fc..a018953 160000 > --- a/git > +++ b/git > @@ -1 +1 @@ > -Subproject commit e9019fcafe0040228b8631c30f97ae1adb61bcdc > +Subproject commit a018953688f1b10bddf91bff8747068f5f4746a4 > diff --git a/ui-blob.c b/ui-blob.c > index bc91656..7879127 100644 > --- a/ui-blob.c > +++ b/ui-blob.c > @@ -40,7 +40,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) > struct object_id oid; > unsigned long size; > struct pathspec_item path_items = { > - .match = xstrdup(path), > + .match = path, > .len = strlen(path) > }; > struct pathspec paths = { > @@ -63,7 +63,6 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) > &paths, walk_tree, &walk_tree_ctx); > > done: > - free(path_items.match); > return walk_tree_ctx.found_path; > } >