ui-patch: Apply path limit to generated patch

Also indicate in the comment section of the patch that a path limit was
applied, too easily see when a generated patch is only partial.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Johan Herland 2010-06-10 01:09:33 +02:00 committed by Lars Hjemli
parent ab42741c49
commit eac1b67541
6 changed files with 10 additions and 8 deletions

2
cmd.c
View File

@ -90,7 +90,7 @@ static void repolist_fn(struct cgit_context *ctx)
static void patch_fn(struct cgit_context *ctx) static void patch_fn(struct cgit_context *ctx)
{ {
cgit_print_patch(ctx->qry.sha1); cgit_print_patch(ctx->qry.sha1, ctx->qry.path);
} }
static void plain_fn(struct cgit_context *ctx) static void plain_fn(struct cgit_context *ctx)

View File

@ -60,7 +60,7 @@ void cgit_print_commit(char *hex, const char *prefix)
tmp = sha1_to_hex(commit->object.sha1); tmp = sha1_to_hex(commit->object.sha1);
cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp, 0); cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp, 0);
html(" ("); html(" (");
cgit_patch_link("patch", NULL, NULL, NULL, tmp); cgit_patch_link("patch", NULL, NULL, NULL, tmp, prefix);
html(") ("); html(") (");
if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff)) if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff))
cgit_commit_link("unidiff", NULL, NULL, ctx.qry.head, tmp, 1); cgit_commit_link("unidiff", NULL, NULL, ctx.qry.head, tmp, 1);

View File

@ -77,7 +77,7 @@ static void filepair_cb(struct diff_filepair *pair)
html("Binary files differ\n"); html("Binary files differ\n");
} }
void cgit_print_patch(char *hex) void cgit_print_patch(char *hex, const char *prefix)
{ {
struct commit *commit; struct commit *commit;
struct commitinfo *info; struct commitinfo *info;
@ -122,7 +122,9 @@ void cgit_print_patch(char *hex)
html("\n"); html("\n");
} }
html("---\n"); html("---\n");
cgit_diff_tree(old_sha1, sha1, filepair_cb, NULL); if (prefix)
htmlf("(limited to '%s')\n\n", prefix);
cgit_diff_tree(old_sha1, sha1, filepair_cb, prefix);
html("--\n"); html("--\n");
htmlf("cgit %s\n", CGIT_VERSION); htmlf("cgit %s\n", CGIT_VERSION);
cgit_free_commitinfo(info); cgit_free_commitinfo(info);

View File

@ -1,6 +1,6 @@
#ifndef UI_PATCH_H #ifndef UI_PATCH_H
#define UI_PATCH_H #define UI_PATCH_H
extern void cgit_print_patch(char *hex); extern void cgit_print_patch(char *hex, const char *prefix);
#endif /* UI_PATCH_H */ #endif /* UI_PATCH_H */

View File

@ -388,9 +388,9 @@ void cgit_diff_link(const char *name, const char *title, const char *class,
} }
void cgit_patch_link(const char *name, const char *title, const char *class, void cgit_patch_link(const char *name, const char *title, const char *class,
const char *head, const char *rev) const char *head, const char *rev, const char *path)
{ {
reporevlink("patch", name, title, class, head, rev, NULL); reporevlink("patch", name, title, class, head, rev, path);
} }
void cgit_stats_link(const char *name, const char *title, const char *class, void cgit_stats_link(const char *name, const char *title, const char *class,

View File

@ -32,7 +32,7 @@ extern void cgit_commit_link(char *name, const char *title,
const char *rev, int toggle_ssdiff); const char *rev, int toggle_ssdiff);
extern void cgit_patch_link(const char *name, const char *title, extern void cgit_patch_link(const char *name, const char *title,
const char *class, const char *head, const char *class, const char *head,
const char *rev); const char *rev, const char *path);
extern void cgit_refs_link(const char *name, const char *title, extern void cgit_refs_link(const char *name, const char *title,
const char *class, const char *head, const char *class, const char *head,
const char *rev, const char *path); const char *rev, const char *path);