]> granicus.if.org Git - cgit/commitdiff
ui-patch: Apply path limit to generated patch
authorJohan Herland <johan@herland.net>
Wed, 9 Jun 2010 23:09:33 +0000 (01:09 +0200)
committerLars Hjemli <hjemli@gmail.com>
Sat, 19 Jun 2010 08:40:23 +0000 (10:40 +0200)
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>
cmd.c
ui-commit.c
ui-patch.c
ui-patch.h
ui-shared.c
ui-shared.h

diff --git a/cmd.c b/cmd.c
index 893ae2500c11be548f0bceee4c272f8c4e313644..605876bd88385e7065f2eb631dac0a50e25d112f 100644 (file)
--- a/cmd.c
+++ b/cmd.c
@@ -90,7 +90,7 @@ static void repolist_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)
index 2f4c6d4bb59039efd0012eb656ac11143102c5fc..b3a206350330378c22b03e5f3ebc3c17f49a808d 100644 (file)
@@ -60,7 +60,7 @@ void cgit_print_commit(char *hex, const char *prefix)
        tmp = sha1_to_hex(commit->object.sha1);
        cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp, 0);
        html(" (");
-       cgit_patch_link("patch", NULL, NULL, NULL, tmp);
+       cgit_patch_link("patch", NULL, NULL, NULL, tmp, prefix);
        html(") (");
        if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff))
                cgit_commit_link("unidiff", NULL, NULL, ctx.qry.head, tmp, 1);
index 2a8f7a573ca8433bdc1e46dcca444202a4431d46..25dc9fed9913fd396ff4ff6de6979b50bd28a000 100644 (file)
@@ -77,7 +77,7 @@ static void filepair_cb(struct diff_filepair *pair)
                html("Binary files differ\n");
 }
 
-void cgit_print_patch(char *hex)
+void cgit_print_patch(char *hex, const char *prefix)
 {
        struct commit *commit;
        struct commitinfo *info;
@@ -122,7 +122,9 @@ void cgit_print_patch(char *hex)
                        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");
        htmlf("cgit %s\n", CGIT_VERSION);
        cgit_free_commitinfo(info);
index 9f68212bd57a236e00bed6b26ab43df242ba2b6e..1641cea252a67428eae079e34fb6f871118c1d83 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef 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 */
index 4fa506f79253152f8c7e36c112f23481cf893cd9..d5c4c10e76c4d9188629242d1aa9b1e7a5ebb4b2 100644 (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,
-                    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,
index 3df5464c8ab312a2e0051486ca46df6fa044e876..c0e5c554c6eeb3bf4252c080829e3b06609411a6 100644 (file)
@@ -32,7 +32,7 @@ extern void cgit_commit_link(char *name, const char *title,
                             const char *rev, int toggle_ssdiff);
 extern void cgit_patch_link(const char *name, const char *title,
                            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,
                           const char *class, const char *head,
                           const char *rev, const char *path);