cgit/cgit-fix-print-tree.diff
Sascha Peilicke 061574b9dd 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
2011-11-21 09:35:10 +00:00

21 lines
546 B
Diff

--- 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();
}