diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2007-10-27 10:36:53 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2007-10-27 10:53:27 +0200 | 
| commit | 7937d06090dd5e19145ec6fa8befc5770954b30c (patch) | |
| tree | bb058aa0b5e54aabcad6a2ca6416bcac4b636615 | |
| parent | 8efb05f98ad389d1b7f5aac17838401908622dad (diff) | |
Add support for refs view
This enables the new urls $repo/refs, $repo/refs/heads and $repo/refs/tags,
which can be used to print _all_ branches and/or tags.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | cgit.c | 3 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | shared.c | 2 | ||||
| -rw-r--r-- | ui-refs.c | 30 | 
5 files changed, 37 insertions, 2 deletions
| @@ -16,7 +16,7 @@ GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2  EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto  OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \  	ui-summary.o ui-log.o ui-tree.o ui-commit.o ui-diff.o \ -	ui-snapshot.o ui-blob.o ui-tag.o +	ui-snapshot.o ui-blob.o ui-tag.o ui-refs.o  .PHONY: all git install clean distclean force-version get-git @@ -103,6 +103,9 @@ static void cgit_print_repo_page(struct cacheitem *item)  	case CMD_COMMIT:  		cgit_print_commit(cgit_query_sha1);  		break; +	case CMD_REFS: +		cgit_print_refs(); +		break;  	case CMD_TAG:  		cgit_print_tag(cgit_query_sha1);  		break; @@ -28,6 +28,7 @@  #define CMD_BLOB     5  #define CMD_SNAPSHOT 6  #define CMD_TAG      7 +#define CMD_REFS     8  /*   * Dateformats used on misc. pages @@ -260,6 +261,7 @@ extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *  extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path);  extern void cgit_print_tree(const char *rev, char *path);  extern void cgit_print_commit(char *hex); +extern void cgit_print_refs();  extern void cgit_print_tag(char *revname);  extern void cgit_print_diff(const char *new_hex, const char *old_hex, const char *prefix);  extern void cgit_print_snapshot(struct cacheitem *item, const char *head, @@ -66,7 +66,7 @@ int htmlfd = 0;  int cgit_get_cmd_index(const char *cmd)  {  	static char *cmds[] = {"log", "commit", "diff", "tree", "blob", -			       "snapshot", "tag", NULL}; +			       "snapshot", "tag", "refs", NULL};  	int i;  	for(i = 0; cmds[i]; i++) diff --git a/ui-refs.c b/ui-refs.c new file mode 100644 index 0000000..295f5ba --- /dev/null +++ b/ui-refs.c @@ -0,0 +1,30 @@ +/* ui-refs.c: browse symbolic refs + * + * Copyright (C) 2006 Lars Hjemli + * + * Licensed under GNU General Public License v2 + *   (see COPYING for full license text) + */ + +#include "cgit.h" + + + + +void cgit_print_refs() +{ + +	html("<table class='list nowrap'>"); + +	if (cgit_query_path && !strncmp(cgit_query_path, "heads", 5)) +		cgit_print_branches(0); +	else if (cgit_query_path && !strncmp(cgit_query_path, "tags", 4)) +		cgit_print_tags(0); +	else { +		cgit_print_branches(0); +		html("<tr class='nohover'><td colspan='4'> </td></tr>"); +		cgit_print_tags(0); +	} + +	html("</table>"); +} | 
