diff options
| -rw-r--r-- | cgit.h | 4 | ||||
| -rw-r--r-- | cgitrc | 10 | ||||
| -rw-r--r-- | shared.c | 14 | ||||
| -rw-r--r-- | ui-log.c | 33 |
4 files changed, 48 insertions, 13 deletions
| @@ -38,6 +38,8 @@ struct repoinfo { | |||
| 38 | char *defbranch; | 38 | char *defbranch; |
| 39 | char *module_link; | 39 | char *module_link; |
| 40 | int snapshots; | 40 | int snapshots; |
| 41 | int enable_log_filecount; | ||
| 42 | int enable_log_linecount; | ||
| 41 | }; | 43 | }; |
| 42 | 44 | ||
| 43 | struct repolist { | 45 | struct repolist { |
| @@ -81,6 +83,8 @@ extern char *cgit_cache_root; | |||
| 81 | 83 | ||
| 82 | extern int cgit_nocache; | 84 | extern int cgit_nocache; |
| 83 | extern int cgit_snapshots; | 85 | extern int cgit_snapshots; |
| 86 | extern int cgit_enable_log_filecount; | ||
| 87 | extern int cgit_enable_log_linecount; | ||
| 84 | extern int cgit_max_lock_attempts; | 88 | extern int cgit_max_lock_attempts; |
| 85 | extern int cgit_cache_root_ttl; | 89 | extern int cgit_cache_root_ttl; |
| 86 | extern int cgit_cache_repo_ttl; | 90 | extern int cgit_cache_repo_ttl; |
| @@ -12,6 +12,14 @@ | |||
| 12 | #snapshots=0 | 12 | #snapshots=0 |
| 13 | 13 | ||
| 14 | 14 | ||
| 15 | ## Enable/disable display of 'number of files changed' in log view | ||
| 16 | #enable-log-filecount=0 | ||
| 17 | |||
| 18 | |||
| 19 | ## Enable/disable display of 'number of lines changed' in log view | ||
| 20 | #enable-log-linecount=0 | ||
| 21 | |||
| 22 | |||
| 15 | ## Specify a root for virtual urls. This makes cgit generate urls like | 23 | ## Specify a root for virtual urls. This makes cgit generate urls like |
| 16 | ## | 24 | ## |
| 17 | ## http://localhost/git/repo/log/?id=master | 25 | ## http://localhost/git/repo/log/?id=master |
| @@ -97,4 +105,6 @@ | |||
| 97 | #repo.path=/pub/git/cgit | 105 | #repo.path=/pub/git/cgit |
| 98 | #repo.owner=Lars Hjemli | 106 | #repo.owner=Lars Hjemli |
| 99 | #repo.snapshots=1 # override a sitewide snapshot-setting | 107 | #repo.snapshots=1 # override a sitewide snapshot-setting |
| 108 | #repo.enable-log-filecount=0 # override the default filecount setting | ||
| 109 | #repo.enable-log-linecount=0 # override the default linecount setting | ||
| 100 | #repo.module-link=/git/%s/commit/?id=%s # override the standard module-link | 110 | #repo.module-link=/git/%s/commit/?id=%s # override the standard module-link |
| @@ -22,6 +22,8 @@ char *cgit_cache_root = "/var/cache/cgit"; | |||
| 22 | 22 | ||
| 23 | int cgit_nocache = 0; | 23 | int cgit_nocache = 0; |
| 24 | int cgit_snapshots = 0; | 24 | int cgit_snapshots = 0; |
| 25 | int cgit_enable_log_filecount = 0; | ||
| 26 | int cgit_enable_log_linecount = 0; | ||
| 25 | int cgit_max_lock_attempts = 5; | 27 | int cgit_max_lock_attempts = 5; |
| 26 | int cgit_cache_root_ttl = 5; | 28 | int cgit_cache_root_ttl = 5; |
| 27 | int cgit_cache_repo_ttl = 5; | 29 | int cgit_cache_repo_ttl = 5; |
| @@ -85,6 +87,8 @@ struct repoinfo *add_repo(const char *url) | |||
| 85 | ret->owner = NULL; | 87 | ret->owner = NULL; |
| 86 | ret->defbranch = "master"; | 88 | ret->defbranch = "master"; |
| 87 | ret->snapshots = cgit_snapshots; | 89 | ret->snapshots = cgit_snapshots; |
| 90 | ret->enable_log_filecount = cgit_enable_log_filecount; | ||
| 91 | ret->enable_log_linecount = cgit_enable_log_linecount; | ||
| 88 | ret->module_link = cgit_module_link; | 92 | ret->module_link = cgit_module_link; |
| 89 | return ret; | 93 | return ret; |
| 90 | } | 94 | } |
| @@ -107,6 +111,10 @@ void cgit_global_config_cb(const char *name, const char *value) | |||
| 107 | cgit_nocache = atoi(value); | 111 | cgit_nocache = atoi(value); |
| 108 | else if (!strcmp(name, "snapshots")) | 112 | else if (!strcmp(name, "snapshots")) |
| 109 | cgit_snapshots = atoi(value); | 113 | cgit_snapshots = atoi(value); |
| 114 | else if (!strcmp(name, "enable-log-filecount")) | ||
| 115 | cgit_enable_log_filecount = atoi(value); | ||
| 116 | else if (!strcmp(name, "enable-log-linecount")) | ||
| 117 | cgit_enable_log_linecount = atoi(value); | ||
| 110 | else if (!strcmp(name, "cache-root")) | 118 | else if (!strcmp(name, "cache-root")) |
| 111 | cgit_cache_root = xstrdup(value); | 119 | cgit_cache_root = xstrdup(value); |
| 112 | else if (!strcmp(name, "cache-root-ttl")) | 120 | else if (!strcmp(name, "cache-root-ttl")) |
| @@ -136,7 +144,11 @@ void cgit_global_config_cb(const char *name, const char *value) | |||
| 136 | else if (cgit_repo && !strcmp(name, "repo.defbranch")) | 144 | else if (cgit_repo && !strcmp(name, "repo.defbranch")) |
| 137 | cgit_repo->defbranch = xstrdup(value); | 145 | cgit_repo->defbranch = xstrdup(value); |
| 138 | else if (cgit_repo && !strcmp(name, "repo.snapshots")) | 146 | else if (cgit_repo && !strcmp(name, "repo.snapshots")) |
| 139 | cgit_repo->snapshots = atoi(value); | 147 | cgit_repo->snapshots = cgit_snapshots * atoi(value); |
| 148 | else if (cgit_repo && !strcmp(name, "repo.enable-log-filecount")) | ||
| 149 | cgit_repo->enable_log_filecount = cgit_enable_log_filecount * atoi(value); | ||
| 150 | else if (cgit_repo && !strcmp(name, "repo.enable-log-linecount")) | ||
| 151 | cgit_repo->enable_log_linecount = cgit_enable_log_linecount * atoi(value); | ||
| 140 | else if (cgit_repo && !strcmp(name, "repo.module-link")) | 152 | else if (cgit_repo && !strcmp(name, "repo.module-link")) |
| 141 | cgit_repo->module_link= xstrdup(value); | 153 | cgit_repo->module_link= xstrdup(value); |
| 142 | else if (!strcmp(name, "include")) | 154 | else if (!strcmp(name, "include")) |
| @@ -19,7 +19,8 @@ void count_lines(char *line, int size) | |||
| 19 | void inspect_files(struct diff_filepair *pair) | 19 | void inspect_files(struct diff_filepair *pair) |
| 20 | { | 20 | { |
| 21 | files++; | 21 | files++; |
| 22 | cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines); | 22 | if (cgit_repo->enable_log_linecount) |
| 23 | cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines); | ||
| 23 | } | 24 | } |
| 24 | 25 | ||
| 25 | void print_commit(struct commit *commit) | 26 | void print_commit(struct commit *commit) |
| @@ -39,13 +40,17 @@ void print_commit(struct commit *commit) | |||
| 39 | html_link_open(url, NULL, NULL); | 40 | html_link_open(url, NULL, NULL); |
| 40 | html_ntxt(cgit_max_msg_len, info->subject); | 41 | html_ntxt(cgit_max_msg_len, info->subject); |
| 41 | html_link_close(); | 42 | html_link_close(); |
| 42 | files = 0; | 43 | if (cgit_repo->enable_log_filecount) { |
| 43 | lines = 0; | 44 | files = 0; |
| 44 | cgit_diff_commit(commit, inspect_files); | 45 | lines = 0; |
| 45 | html("</td><td class='right'>"); | 46 | cgit_diff_commit(commit, inspect_files); |
| 46 | htmlf("%d", files); | 47 | html("</td><td class='right'>"); |
| 47 | html("</td><td class='right'>"); | 48 | htmlf("%d", files); |
| 48 | htmlf("%d", lines); | 49 | if (cgit_repo->enable_log_linecount) { |
| 50 | html("</td><td class='right'>"); | ||
| 51 | htmlf("%d", lines); | ||
| 52 | } | ||
| 53 | } | ||
| 49 | html("</td><td>"); | 54 | html("</td><td>"); |
| 50 | html_txt(info->author); | 55 | html_txt(info->author); |
| 51 | html("</td></tr>\n"); | 56 | html("</td></tr>\n"); |
| @@ -81,10 +86,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path) | |||
| 81 | 86 | ||
| 82 | html("<table class='list nowrap'>"); | 87 | html("<table class='list nowrap'>"); |
| 83 | html("<tr class='nohover'><th class='left'>Date</th>" | 88 | html("<tr class='nohover'><th class='left'>Date</th>" |
| 84 | "<th class='left'>Message</th>" | 89 | "<th class='left'>Message</th>"); |
| 85 | "<th class='left'>Files</th>" | 90 | |
| 86 | "<th class='left'>Lines</th>" | 91 | if (cgit_repo->enable_log_filecount) { |
| 87 | "<th class='left'>Author</th></tr>\n"); | 92 | html("<th class='left'>Files</th>"); |
| 93 | if (cgit_repo->enable_log_linecount) | ||
| 94 | html("<th class='left'>Lines</th>"); | ||
| 95 | } | ||
| 96 | html("<th class='left'>Author</th></tr>\n"); | ||
| 88 | 97 | ||
| 89 | if (ofs<0) | 98 | if (ofs<0) |
| 90 | ofs = 0; | 99 | ofs = 0; |
