Make snapshot feature configurable
Snapshots can now be enabled/disabled by default for all repositories in cgitrc with param "snapshots". Additionally, any repo can override the default setting with param "repo.snapshots". By default, no snapshotting is enabled. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
부모
ab2ab95f09
커밋
ac70cb4795
3
cgit.c
3
cgit.c
@ -79,7 +79,8 @@ static void cgit_print_repo_page(struct cacheitem *item)
|
|||||||
show_search = 0;
|
show_search = 0;
|
||||||
setenv("GIT_DIR", cgit_repo->path, 1);
|
setenv("GIT_DIR", cgit_repo->path, 1);
|
||||||
|
|
||||||
if (cgit_query_page && !strcmp(cgit_query_page, "snapshot")) {
|
if (cgit_repo->snapshots && cgit_query_page &&
|
||||||
|
!strcmp(cgit_query_page, "snapshot")) {
|
||||||
cgit_print_snapshot(item, cgit_query_sha1, "zip",
|
cgit_print_snapshot(item, cgit_query_sha1, "zip",
|
||||||
cgit_repo->url, cgit_query_name);
|
cgit_repo->url, cgit_query_name);
|
||||||
return;
|
return;
|
||||||
|
2
cgit.h
2
cgit.h
@ -21,6 +21,7 @@ struct repoinfo {
|
|||||||
char *path;
|
char *path;
|
||||||
char *desc;
|
char *desc;
|
||||||
char *owner;
|
char *owner;
|
||||||
|
int snapshots;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct repolist {
|
struct repolist {
|
||||||
@ -61,6 +62,7 @@ extern char *cgit_virtual_root;
|
|||||||
extern char *cgit_cache_root;
|
extern char *cgit_cache_root;
|
||||||
|
|
||||||
extern int cgit_nocache;
|
extern int cgit_nocache;
|
||||||
|
extern int cgit_snapshots;
|
||||||
extern int cgit_max_lock_attempts;
|
extern int cgit_max_lock_attempts;
|
||||||
extern int cgit_cache_root_ttl;
|
extern int cgit_cache_root_ttl;
|
||||||
extern int cgit_cache_repo_ttl;
|
extern int cgit_cache_repo_ttl;
|
||||||
|
5
cgitrc
5
cgitrc
@ -8,6 +8,10 @@
|
|||||||
#nocache=0
|
#nocache=0
|
||||||
|
|
||||||
|
|
||||||
|
## Enable/disable snapshots by default. This can be overridden per repo
|
||||||
|
#snapshots=0
|
||||||
|
|
||||||
|
|
||||||
## Specify a root for virtual urls. This makes cgit generate urls like
|
## Specify a root for virtual urls. This makes cgit generate urls like
|
||||||
##
|
##
|
||||||
## http://localhost/git/repo/log/?id=master
|
## http://localhost/git/repo/log/?id=master
|
||||||
@ -77,3 +81,4 @@
|
|||||||
#repo.desc=the caching cgi for git
|
#repo.desc=the caching cgi for git
|
||||||
#repo.path=/pub/git/cgit
|
#repo.path=/pub/git/cgit
|
||||||
#repo.owner=Lars Hjemli
|
#repo.owner=Lars Hjemli
|
||||||
|
#repo.snapshots=1 # override a sitewide snapshot-setting
|
||||||
|
6
shared.c
6
shared.c
@ -20,6 +20,7 @@ char *cgit_virtual_root = NULL;
|
|||||||
char *cgit_cache_root = "/var/cache/cgit";
|
char *cgit_cache_root = "/var/cache/cgit";
|
||||||
|
|
||||||
int cgit_nocache = 0;
|
int cgit_nocache = 0;
|
||||||
|
int cgit_snapshots = 0;
|
||||||
int cgit_max_lock_attempts = 5;
|
int cgit_max_lock_attempts = 5;
|
||||||
int cgit_cache_root_ttl = 5;
|
int cgit_cache_root_ttl = 5;
|
||||||
int cgit_cache_repo_ttl = 5;
|
int cgit_cache_repo_ttl = 5;
|
||||||
@ -83,6 +84,7 @@ struct repoinfo *add_repo(const char *url)
|
|||||||
ret->path = NULL;
|
ret->path = NULL;
|
||||||
ret->desc = NULL;
|
ret->desc = NULL;
|
||||||
ret->owner = NULL;
|
ret->owner = NULL;
|
||||||
|
ret->snapshots = cgit_snapshots;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,6 +102,8 @@ void cgit_global_config_cb(const char *name, const char *value)
|
|||||||
cgit_virtual_root = xstrdup(value);
|
cgit_virtual_root = xstrdup(value);
|
||||||
else if (!strcmp(name, "nocache"))
|
else if (!strcmp(name, "nocache"))
|
||||||
cgit_nocache = atoi(value);
|
cgit_nocache = atoi(value);
|
||||||
|
else if (!strcmp(name, "snapshots"))
|
||||||
|
cgit_snapshots = atoi(value);
|
||||||
else if (!strcmp(name, "cache-root"))
|
else if (!strcmp(name, "cache-root"))
|
||||||
cgit_cache_root = xstrdup(value);
|
cgit_cache_root = xstrdup(value);
|
||||||
else if (!strcmp(name, "cache-root-ttl"))
|
else if (!strcmp(name, "cache-root-ttl"))
|
||||||
@ -122,6 +126,8 @@ void cgit_global_config_cb(const char *name, const char *value)
|
|||||||
cgit_repo->desc = xstrdup(value);
|
cgit_repo->desc = xstrdup(value);
|
||||||
else if (cgit_repo && !strcmp(name, "repo.owner"))
|
else if (cgit_repo && !strcmp(name, "repo.owner"))
|
||||||
cgit_repo->owner = xstrdup(value);
|
cgit_repo->owner = xstrdup(value);
|
||||||
|
else if (cgit_repo && !strcmp(name, "repo.snapshots"))
|
||||||
|
cgit_repo->snapshots = atoi(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cgit_repo_config_cb(const char *name, const char *value)
|
void cgit_repo_config_cb(const char *name, const char *value)
|
||||||
|
12
ui-commit.c
12
ui-commit.c
@ -169,11 +169,13 @@ void cgit_print_commit(const char *hex)
|
|||||||
htmlf("'>%s</a></td></tr>\n",
|
htmlf("'>%s</a></td></tr>\n",
|
||||||
sha1_to_hex(p->item->object.sha1));
|
sha1_to_hex(p->item->object.sha1));
|
||||||
}
|
}
|
||||||
htmlf("<tr><th>download</th><td colspan='2' class='sha1'><a href='");
|
if (cgit_repo->snapshots) {
|
||||||
filename = fmt("%s-%s.zip", cgit_query_repo, hex);
|
htmlf("<tr><th>download</th><td colspan='2' class='sha1'><a href='");
|
||||||
html_attr(cgit_pageurl(cgit_query_repo, "snapshot",
|
filename = fmt("%s-%s.zip", cgit_query_repo, hex);
|
||||||
fmt("id=%s&name=%s", hex, filename)));
|
html_attr(cgit_pageurl(cgit_query_repo, "snapshot",
|
||||||
htmlf("'>%s</a></td></tr>", filename);
|
fmt("id=%s&name=%s", hex, filename)));
|
||||||
|
htmlf("'>%s</a></td></tr>", filename);
|
||||||
|
}
|
||||||
|
|
||||||
html("</table>\n");
|
html("</table>\n");
|
||||||
html("<div class='commit-subject'>");
|
html("<div class='commit-subject'>");
|
||||||
|
불러오는 중...
Reference in New Issue
Block a user