mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-24 10:02:29 +01:00
development/cgit: Updated for version 1.2.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
parent
d5a99e70c8
commit
3aea08c8e1
12 changed files with 41 additions and 384 deletions
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for cgit
|
||||
# Copyright 2013-2017 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
|
||||
# Copyright 2013-2018 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -22,8 +22,8 @@
|
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PRGNAM=cgit
|
||||
VERSION=${VERSION:-1.1}
|
||||
BUILD=${BUILD:-3}
|
||||
VERSION=${VERSION:-1.2}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
DOCROOT=${DOCROOT:-/var/www}
|
||||
|
@ -55,8 +55,8 @@ else
|
|||
LIBDIRSUFFIX=""
|
||||
fi
|
||||
|
||||
CGIT_VERSION=${CGIT_VERSION:-v1.1}
|
||||
GIT_VERSION=${GIT_VERSION:-2.10.4}
|
||||
CGIT_VERSION=${CGIT_VERSION:-v1.2}
|
||||
GIT_VERSION=${GIT_VERSION:-2.18.0}
|
||||
|
||||
DOCS="cgitrc.5.txt COPYING README $CWD/config/cgitrc.sample \
|
||||
$CWD/config/cgit-lighttpd.conf $CWD/config/cgit-httpd.conf \
|
||||
|
@ -78,23 +78,15 @@ find -L . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
# apply some upstream patches
|
||||
patch -p1 < $CWD/patches/0004-syntax-highlighting-replace-invalid-unicode-with.patch
|
||||
patch -p1 < $CWD/patches/0005-ui-patch-fix-crash-when-using-path-limit.patch
|
||||
patch -p1 < $CWD/patches/0006-ui-repolist-properly-sort-by-age.patch
|
||||
patch -p1 < $CWD/patches/0007-Remove-unused-variable-from-sort_section.patch
|
||||
patch -p1 < $CWD/patches/0011-ui-atom-properly-escape-delimiter-in-page-link.patch
|
||||
patch -p1 < $CWD/patches/0012-ui-shared-don-t-print-path-crumbs-without-a-repo.patch
|
||||
patch -p1 < $CWD/patches/0013-parsing-clear-query-path-before-starting.patch
|
||||
patch -p1 < $CWD/patches/0014-cgit-don-t-set-vpath-unless-repo-is-set.patch
|
||||
patch -p1 < $CWD/patches/0015-ui-plain-print-symlink-content.patch
|
||||
# apply patches from upstream
|
||||
patch -p1 < $CWD/patches/0001-record.repo.snapshot-prefix.in.the.per-repo.config.patch
|
||||
|
||||
# prepare sources
|
||||
sed -i Makefile \
|
||||
-e "s|-g -Wall -Igit|-Wall ${SLKCFLAGS} -Igit|" \
|
||||
-e "s|\/lib$|/lib${LIBDIRSUFFIX}|" \
|
||||
-e "s|(libdir)|(prefix)/share|" \
|
||||
-e "s|/usr/local|/usr|"
|
||||
-e "s|/usr/local|/usr|" || exit 1
|
||||
sed -e "s|@DOCROOT@|$DOCROOT|g" $CWD/config/cgit.conf > cgit.conf
|
||||
echo "CGIT_VERSION = $CGIT_VERSION" >> cgit.conf
|
||||
|
||||
|
@ -109,7 +101,7 @@ make install DESTDIR=$PKG
|
|||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
# Install additionals lua scripts
|
||||
# install additionals lua scripts
|
||||
install -m 0644 -D $CWD/config/email-libravatar-korg.lua \
|
||||
$PKG/usr/share/cgit/filters/email-libravatar-korg.lua
|
||||
install -m 0644 -D $CWD/config/email-gravatar-sbo.lua \
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
PRGNAM="cgit"
|
||||
VERSION="1.1"
|
||||
VERSION="1.2"
|
||||
HOMEPAGE="https://git.zx2c4.com/cgit/about/"
|
||||
DOWNLOAD="https://git.zx2c4.com/cgit/snapshot/cgit-1.1.tar.xz \
|
||||
https://www.kernel.org/pub/software/scm/git/git-2.10.4.tar.xz"
|
||||
MD5SUM="7cc92b94e4aaefed952b0e6b8fde0a3e \
|
||||
c357c27316b18678ca1b3c383920bb5a"
|
||||
DOWNLOAD="https://git.zx2c4.com/cgit/snapshot/cgit-1.2.tar.xz \
|
||||
https://www.kernel.org/pub/software/scm/git/git-2.18.0.tar.xz"
|
||||
MD5SUM="fa13e0e093b9e7e769bc98842e9e4a42 \
|
||||
7a668403aa7807d0db37e8573299d471"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
Konstantin Ryabitsev konstantin at linuxfoundation.org
|
||||
Tue Jul 17 18:38:22 CEST 2018
|
||||
|
||||
Even if we find snapshot-prefix in the repo configuration, we are not
|
||||
writing it out into the rc- file, so setting the value does not have any
|
||||
effect.
|
||||
|
||||
Signed-off-by: Konstantin Ryabitsev <konstantin at linuxfoundation.org>
|
||||
---
|
||||
cgit.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/cgit.c b/cgit.c
|
||||
index e2d7891..a39d83a 100644
|
||||
--- a/cgit.c
|
||||
+++ b/cgit.c
|
||||
@@ -830,6 +830,8 @@ static void print_repo(FILE *f, struct cgit_repo *repo)
|
||||
fprintf(f, "repo.snapshots=%s\n", tmp ? tmp : "");
|
||||
free(tmp);
|
||||
}
|
||||
+ if (repo->snapshot_prefix)
|
||||
+ fprintf(f, "repo.snapshot-prefix=%s\n", repo->snapshot_prefix);
|
||||
if (repo->max_stats != ctx.cfg.max_stats)
|
||||
fprintf(f, "repo.max-stats=%s\n",
|
||||
cgit_find_stats_periodname(repo->max_stats));
|
||||
--
|
||||
2.17.1
|
|
@ -1,27 +0,0 @@
|
|||
From 5564a5d06678b3f9b0725bc4b2383ea1b7eb5515 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
||||
Date: Sun, 22 Jan 2017 12:44:44 +0100
|
||||
Subject: [PATCH 04/15] syntax-highlighting: replace invalid unicode with ?
|
||||
|
||||
---
|
||||
filters/syntax-highlighting.py | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/filters/syntax-highlighting.py b/filters/syntax-highlighting.py
|
||||
index 1ca4108..5888b50 100755
|
||||
--- a/filters/syntax-highlighting.py
|
||||
+++ b/filters/syntax-highlighting.py
|
||||
@@ -30,8 +30,8 @@ from pygments.lexers import guess_lexer_for_filename
|
||||
from pygments.formatters import HtmlFormatter
|
||||
|
||||
|
||||
-sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8')
|
||||
-sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||||
+sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8', errors='replace')
|
||||
+sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
||||
data = sys.stdin.read()
|
||||
filename = sys.argv[1]
|
||||
formatter = HtmlFormatter(style='pastie')
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From be39d22328f841536b8e44e8aaeed80a74ebb353 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Fleischer <lfleischer@lfos.de>
|
||||
Date: Thu, 24 Nov 2016 20:14:54 +0100
|
||||
Subject: [PATCH 05/15] ui-patch: fix crash when using path limit
|
||||
|
||||
The array passed to setup_revisions() must be NULL-terminated. Fixes a
|
||||
regression introduced in 455b598 (ui-patch.c: Use log_tree_commit() to
|
||||
generate diffs, 2013-08-20).
|
||||
|
||||
Reported-by: Florian Pritz <bluewind@xinu.at>
|
||||
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
|
||||
---
|
||||
ui-patch.c | 7 +++----
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/ui-patch.c b/ui-patch.c
|
||||
index ec7f352..047e2f9 100644
|
||||
--- a/ui-patch.c
|
||||
+++ b/ui-patch.c
|
||||
@@ -18,8 +18,8 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
|
||||
struct commit *commit;
|
||||
struct object_id new_rev_oid, old_rev_oid;
|
||||
char rev_range[2 * 40 + 3];
|
||||
- const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix };
|
||||
- int rev_argc = ARRAY_SIZE(rev_argv);
|
||||
+ const char *rev_argv[] = { NULL, "--reverse", "--format=email", rev_range, "--", prefix, NULL };
|
||||
+ int rev_argc = ARRAY_SIZE(rev_argv) - 1;
|
||||
char *patchname;
|
||||
|
||||
if (!prefix)
|
||||
@@ -85,8 +85,7 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
|
||||
DIFF_FORMAT_PATCH | DIFF_FORMAT_SUMMARY;
|
||||
if (prefix)
|
||||
rev.diffopt.stat_sep = fmt("(limited to '%s')\n\n", prefix);
|
||||
- setup_revisions(ARRAY_SIZE(rev_argv), rev_argv, &rev,
|
||||
- NULL);
|
||||
+ setup_revisions(rev_argc, rev_argv, &rev, NULL);
|
||||
prepare_revision_walk(&rev);
|
||||
|
||||
while ((commit = get_revision(&rev)) != NULL) {
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
From 87c47488d02fcace4da0d468cd9ddd1651b7949e Mon Sep 17 00:00:00 2001
|
||||
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
||||
Date: Thu, 30 Mar 2017 13:19:50 +0200
|
||||
Subject: [PATCH 06/15] ui-repolist: properly sort by age
|
||||
|
||||
When empty repos exist, comparing them against an existing repo with a
|
||||
good mtime might, with particular qsort implementations, not sort
|
||||
correctly, because of this brokenness:
|
||||
|
||||
if (get_repo_modtime(r1, &t) && get_repo_modtime(r2, &t))
|
||||
|
||||
However, sorting by the age column works as expected, so anyway, to tidy
|
||||
things up, we simply reuse that function.
|
||||
|
||||
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
---
|
||||
ui-repolist.c | 38 +++++++++++++++++---------------------
|
||||
1 file changed, 17 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/ui-repolist.c b/ui-repolist.c
|
||||
index b57ea60..20a4f56 100644
|
||||
--- a/ui-repolist.c
|
||||
+++ b/ui-repolist.c
|
||||
@@ -184,27 +184,6 @@ static int cmp(const char *s1, const char *s2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int sort_section(const void *a, const void *b)
|
||||
-{
|
||||
- const struct cgit_repo *r1 = a;
|
||||
- const struct cgit_repo *r2 = b;
|
||||
- int result;
|
||||
- time_t t;
|
||||
-
|
||||
- result = cmp(r1->section, r2->section);
|
||||
- if (!result) {
|
||||
- if (!strcmp(ctx.cfg.repository_sort, "age")) {
|
||||
- // get_repo_modtime caches the value in r->mtime, so we don't
|
||||
- // have to worry about inefficiencies here.
|
||||
- if (get_repo_modtime(r1, &t) && get_repo_modtime(r2, &t))
|
||||
- result = r2->mtime - r1->mtime;
|
||||
- }
|
||||
- if (!result)
|
||||
- result = cmp(r1->name, r2->name);
|
||||
- }
|
||||
- return result;
|
||||
-}
|
||||
-
|
||||
static int sort_name(const void *a, const void *b)
|
||||
{
|
||||
const struct cgit_repo *r1 = a;
|
||||
@@ -241,6 +220,23 @@ static int sort_idle(const void *a, const void *b)
|
||||
return t2 - t1;
|
||||
}
|
||||
|
||||
+static int sort_section(const void *a, const void *b)
|
||||
+{
|
||||
+ const struct cgit_repo *r1 = a;
|
||||
+ const struct cgit_repo *r2 = b;
|
||||
+ int result;
|
||||
+ time_t t;
|
||||
+
|
||||
+ result = cmp(r1->section, r2->section);
|
||||
+ if (!result) {
|
||||
+ if (!strcmp(ctx.cfg.repository_sort, "age"))
|
||||
+ result = sort_idle(r1, r2);
|
||||
+ if (!result)
|
||||
+ result = cmp(r1->name, r2->name);
|
||||
+ }
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
struct sortcolumn {
|
||||
const char *name;
|
||||
int (*fn)(const void *a, const void *b);
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 7ebdb30fdf91d1f63b4fb07e54b089136de5507b Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Fleischer <lfleischer@lfos.de>
|
||||
Date: Wed, 5 Apr 2017 06:38:27 +0200
|
||||
Subject: [PATCH 07/15] Remove unused variable from sort_section()
|
||||
|
||||
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
|
||||
---
|
||||
ui-repolist.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/ui-repolist.c b/ui-repolist.c
|
||||
index 20a4f56..7272e87 100644
|
||||
--- a/ui-repolist.c
|
||||
+++ b/ui-repolist.c
|
||||
@@ -225,7 +225,6 @@ static int sort_section(const void *a, const void *b)
|
||||
const struct cgit_repo *r1 = a;
|
||||
const struct cgit_repo *r2 = b;
|
||||
int result;
|
||||
- time_t t;
|
||||
|
||||
result = cmp(r1->section, r2->section);
|
||||
if (!result) {
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 6d3c8bc37f6124c2193d66587079975d381aa435 Mon Sep 17 00:00:00 2001
|
||||
From: John Keeping <john@keeping.me.uk>
|
||||
Date: Sun, 15 Jan 2017 12:29:38 +0000
|
||||
Subject: [PATCH 11/15] ui-atom: properly escape delimiter in page link
|
||||
|
||||
If the delimiter here is '&' then it needs to be escaped for inclusion
|
||||
in an attribute. Use html_attrf() to ensure that this happens (we know
|
||||
that hex won't need escaping, but this makes it clearer what's
|
||||
happening.
|
||||
|
||||
Signed-off-by: John Keeping <john@keeping.me.uk>
|
||||
---
|
||||
ui-atom.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui-atom.c b/ui-atom.c
|
||||
index 41838d3..3866823 100644
|
||||
--- a/ui-atom.c
|
||||
+++ b/ui-atom.c
|
||||
@@ -63,7 +63,7 @@ static void add_entry(struct commit *commit, const char *host)
|
||||
html_attr(pageurl);
|
||||
if (ctx.cfg.virtual_root)
|
||||
delim = '?';
|
||||
- htmlf("%cid=%s", delim, hex);
|
||||
+ html_attrf("%cid=%s", delim, hex);
|
||||
html("'/>\n");
|
||||
free(pageurl);
|
||||
}
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From 1b4ef6783a71962f8b5da3a23f2830f0f0f55ea0 Mon Sep 17 00:00:00 2001
|
||||
From: John Keeping <john@keeping.me.uk>
|
||||
Date: Sun, 19 Feb 2017 12:27:48 +0000
|
||||
Subject: [PATCH 12/15] ui-shared: don't print path crumbs without a repo
|
||||
|
||||
cgit_print_path_crumbs() can call repolink() which assumes that ctx.repo
|
||||
is non-null. Currently we don't have any commands that set want_vpath
|
||||
without also setting want_repo so it shouldn't be possible to fail this
|
||||
test, but the check in cgit.c is in the wrong order so it is possible to
|
||||
specify a query string like "?p=log&path=foo/bar" to end up here without
|
||||
a valid repository.
|
||||
|
||||
This was found by American fuzzy lop [0].
|
||||
|
||||
[0] http://lcamtuf.coredump.cx/afl/
|
||||
|
||||
Signed-off-by: John Keeping <john@keeping.me.uk>
|
||||
---
|
||||
ui-shared.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui-shared.c b/ui-shared.c
|
||||
index 2e4fcd9..e5c9a02 100644
|
||||
--- a/ui-shared.c
|
||||
+++ b/ui-shared.c
|
||||
@@ -1039,7 +1039,7 @@ void cgit_print_pageheader(void)
|
||||
free(currenturl);
|
||||
}
|
||||
html("</td></tr></table>\n");
|
||||
- if (ctx.env.authenticated && ctx.qry.vpath) {
|
||||
+ if (ctx.env.authenticated && ctx.repo && ctx.qry.vpath) {
|
||||
html("<div class='path'>");
|
||||
html("path: ");
|
||||
cgit_print_path_crumbs(ctx.qry.vpath);
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From c699866699411346c5dba406457581013f85a873 Mon Sep 17 00:00:00 2001
|
||||
From: John Keeping <john@keeping.me.uk>
|
||||
Date: Sun, 19 Feb 2017 12:17:05 +0000
|
||||
Subject: [PATCH 13/15] parsing: clear query path before starting
|
||||
|
||||
By specifying the "url" query parameter multiple times it is possible to
|
||||
end up with ctx.qry.vpath set while ctx.repo is null, which triggers an
|
||||
invalid code path from cgit_print_pageheader() while printing path
|
||||
crumbs, resulting in a null dereference.
|
||||
|
||||
The previous patch fixed this segfault, but it makes no sense for us to
|
||||
clear ctx.repo while leaving ctx.qry.path set to the previous value, so
|
||||
let's just clear it here so that the last "url" parameter given takes
|
||||
full effect rather than partially overriding the effect of the previous
|
||||
value.
|
||||
|
||||
Signed-off-by: John Keeping <john@keeping.me.uk>
|
||||
---
|
||||
parsing.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/parsing.c b/parsing.c
|
||||
index 9dacb16..b8d7f10 100644
|
||||
--- a/parsing.c
|
||||
+++ b/parsing.c
|
||||
@@ -21,6 +21,7 @@ void cgit_parse_url(const char *url)
|
||||
struct cgit_repo *repo;
|
||||
|
||||
ctx.repo = NULL;
|
||||
+ ctx.qry.page = NULL;
|
||||
if (!url || url[0] == '\0')
|
||||
return;
|
||||
|
||||
@@ -53,7 +54,6 @@ void cgit_parse_url(const char *url)
|
||||
}
|
||||
if (cmd[1])
|
||||
ctx.qry.page = xstrdup(cmd + 1);
|
||||
- return;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
From 113f4b85886bc5eb6b319fd048623b8d43b7bce0 Mon Sep 17 00:00:00 2001
|
||||
From: John Keeping <john@keeping.me.uk>
|
||||
Date: Sun, 19 Feb 2017 12:02:37 +0000
|
||||
Subject: [PATCH 14/15] cgit: don't set vpath unless repo is set
|
||||
|
||||
After the previous two patches, this can be classified as a tidy up
|
||||
rather than a bug fix, but I think it makes sense to group all of the
|
||||
tests together before setting up the environment for the command to
|
||||
execute.
|
||||
|
||||
Signed-off-by: John Keeping <john@keeping.me.uk>
|
||||
---
|
||||
cgit.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/cgit.c b/cgit.c
|
||||
index 1075753..1dae4b8 100644
|
||||
--- a/cgit.c
|
||||
+++ b/cgit.c
|
||||
@@ -726,18 +726,18 @@ static void process_request(void)
|
||||
return;
|
||||
}
|
||||
|
||||
- /* If cmd->want_vpath is set, assume ctx.qry.path contains a "virtual"
|
||||
- * in-project path limit to be made available at ctx.qry.vpath.
|
||||
- * Otherwise, no path limit is in effect (ctx.qry.vpath = NULL).
|
||||
- */
|
||||
- ctx.qry.vpath = cmd->want_vpath ? ctx.qry.path : NULL;
|
||||
-
|
||||
if (cmd->want_repo && !ctx.repo) {
|
||||
cgit_print_error_page(400, "Bad request",
|
||||
"No repository selected");
|
||||
return;
|
||||
}
|
||||
|
||||
+ /* If cmd->want_vpath is set, assume ctx.qry.path contains a "virtual"
|
||||
+ * in-project path limit to be made available at ctx.qry.vpath.
|
||||
+ * Otherwise, no path limit is in effect (ctx.qry.vpath = NULL).
|
||||
+ */
|
||||
+ ctx.qry.vpath = cmd->want_vpath ? ctx.qry.path : NULL;
|
||||
+
|
||||
if (ctx.repo && prepare_repo_cmd())
|
||||
return;
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From 51cc456b773a3bb7253fad2146c1a0d2b0fa98cb Mon Sep 17 00:00:00 2001
|
||||
From: John Keeping <john@keeping.me.uk>
|
||||
Date: Mon, 6 Mar 2017 23:27:23 +0000
|
||||
Subject: [PATCH 15/15] ui-plain: print symlink content
|
||||
|
||||
We currently ignore symlinks in ui-plain, leading to a 404. In ui-tree
|
||||
we print the content of the blob (that is, the path to the target of the
|
||||
link), so it makes sense to do the same here.
|
||||
|
||||
Signed-off-by: John Keeping <john@keeping.me.uk>
|
||||
---
|
||||
ui-plain.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ui-plain.c b/ui-plain.c
|
||||
index e45d553..cfdbf73 100644
|
||||
--- a/ui-plain.c
|
||||
+++ b/ui-plain.c
|
||||
@@ -135,7 +135,7 @@ static int walk_tree(const unsigned char *sha1, struct strbuf *base,
|
||||
struct walk_tree_context *walk_tree_ctx = cbdata;
|
||||
|
||||
if (base->len == walk_tree_ctx->match_baselen) {
|
||||
- if (S_ISREG(mode)) {
|
||||
+ if (S_ISREG(mode) || S_ISLNK(mode)) {
|
||||
if (print_object(sha1, pathname))
|
||||
walk_tree_ctx->match = 1;
|
||||
} else if (S_ISDIR(mode)) {
|
||||
--
|
||||
2.14.1
|
||||
|
Loading…
Reference in a new issue