summaryrefslogtreecommitdiffabout
path: root/cgit.c
authorLars Hjemli <hjemli@gmail.com>2007-12-10 20:47:29 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-12-11 01:43:24 (UTC)
commit620bb3e5e4ff87da740fe7232ba74330b5f862d4 (patch) (unidiff)
tree152cc090cfc56c387393f6aa6666b9d87ad4a23a /cgit.c
parentafcdd083dab81afef744e261d81a452698188c30 (diff)
downloadcgit-620bb3e5e4ff87da740fe7232ba74330b5f862d4.zip
cgit-620bb3e5e4ff87da740fe7232ba74330b5f862d4.tar.gz
cgit-620bb3e5e4ff87da740fe7232ba74330b5f862d4.tar.bz2
Add plain patch view
The new view mimics the output from `git format-patch`, making it possible to cherry-pick directly from cgit with something like `curl $url | git am`. Inspired by a patch to `git-apply` by Mike Hommey: http://thread.gmane.org/gmane.comp.version-control.git/67611/focus=67610 Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 142e416..9ca93a7 100644
--- a/cgit.c
+++ b/cgit.c
@@ -66,24 +66,29 @@ static void cgit_print_repo_page(struct cacheitem *item)
66 title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc); 66 title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc);
67 show_search = 0; 67 show_search = 0;
68 setenv("GIT_DIR", cgit_repo->path, 1); 68 setenv("GIT_DIR", cgit_repo->path, 1);
69 69
70 if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) { 70 if ((cgit_cmd == CMD_SNAPSHOT) && cgit_repo->snapshots) {
71 cgit_print_snapshot(item, cgit_query_head, cgit_query_sha1, 71 cgit_print_snapshot(item, cgit_query_head, cgit_query_sha1,
72 cgit_repobasename(cgit_repo->url), 72 cgit_repobasename(cgit_repo->url),
73 cgit_query_path, 73 cgit_query_path,
74 cgit_repo->snapshots ); 74 cgit_repo->snapshots );
75 return; 75 return;
76 } 76 }
77 77
78 if (cgit_cmd == CMD_PATCH) {
79 cgit_print_patch(cgit_query_sha1, item);
80 return;
81 }
82
78 if (cgit_cmd == CMD_BLOB) { 83 if (cgit_cmd == CMD_BLOB) {
79 cgit_print_blob(item, cgit_query_sha1, cgit_query_path); 84 cgit_print_blob(item, cgit_query_sha1, cgit_query_path);
80 return; 85 return;
81 } 86 }
82 87
83 show_search = (cgit_cmd == CMD_LOG); 88 show_search = (cgit_cmd == CMD_LOG);
84 cgit_print_docstart(title, item); 89 cgit_print_docstart(title, item);
85 if (!cgit_cmd) { 90 if (!cgit_cmd) {
86 cgit_print_pageheader("summary", show_search); 91 cgit_print_pageheader("summary", show_search);
87 cgit_print_summary(); 92 cgit_print_summary();
88 cgit_print_docend(); 93 cgit_print_docend();
89 return; 94 return;