Accepting request 91993 from home:olta:haiku-admin

The cgit build fix with respect to git-1.7.6 is incomplete: in the file ui-tree.c ls_tree() has been patched to use pathspec when invoking read_tree_recursive(), but cgit_print_tree() has not been touched.

The resulting problem can be seen when browsing the tree of a cgit repository: when you "drill down" into subfolders, parts of the parent folder's contents will appear in the listing.

This patch adjusts cgit_print_tree() accordingly, which fixes the problem.

OBS-URL: https://build.opensuse.org/request/show/91993
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/cgit?expand=0&rev=9
This commit is contained in:
Sascha Peilicke 2011-11-21 09:35:10 +00:00 committed by Git OBS Bridge
parent bd71d7a431
commit 061574b9dd
2 changed files with 22 additions and 0 deletions

20
cgit-fix-print-tree.diff Normal file
View File

@ -0,0 +1,20 @@
--- ui-tree.c 2011-11-17 18:00:20.036822908 +0100
+++ ui-tree.c 2011-11-17 18:01:22.396236999 +0100
@@ -262,6 +262,7 @@
unsigned char sha1[20];
struct commit *commit;
const char *paths[] = {path, NULL};
+ struct pathspec pathspec;
if (!rev)
rev = ctx.qry.head;
@@ -283,6 +284,8 @@
}
match_path = path;
- read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL);
+ init_pathspec(&pathspec, paths);
+ read_tree_recursive(commit->tree, "", 0, 0, &pathspec, walk_tree, NULL);
+ free_pathspec(&pathspec);
ls_tail();
}

View File

@ -33,6 +33,7 @@ Source2: cgitrc
Patch: cgit-optflags.diff
Patch1: cgit-git-1.7.6_build_fix.patch
Patch2: cgit-CVE-2011-2711-fix.diff
Patch3: cgit-fix-print-tree.diff
# Requirements for cgit
BuildRequires: gnu-crypto libopenssl-devel libzip-devel
# Requirements for cgitrc man page generation
@ -53,6 +54,7 @@ Authors:
%patch -p1
%patch1 -p1
%patch2 -p1
%patch3
rm -rf git
mv git-%{git_version} git