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 {  	char *defbranch;  	char *module_link;  	int snapshots; +	int enable_log_filecount; +	int enable_log_linecount;  };  struct repolist { @@ -81,6 +83,8 @@ extern char *cgit_cache_root;  extern int cgit_nocache;  extern int cgit_snapshots; +extern int cgit_enable_log_filecount; +extern int cgit_enable_log_linecount;  extern int cgit_max_lock_attempts;  extern int cgit_cache_root_ttl;  extern int cgit_cache_repo_ttl; @@ -12,6 +12,14 @@  #snapshots=0 +## Enable/disable display of 'number of files changed' in log view +#enable-log-filecount=0 + + +## Enable/disable display of 'number of lines changed' in log view +#enable-log-linecount=0 + +  ## Specify a root for virtual urls. This makes cgit generate urls like  ##  ##    http://localhost/git/repo/log/?id=master @@ -97,4 +105,6 @@  #repo.path=/pub/git/cgit  #repo.owner=Lars Hjemli  #repo.snapshots=1				# override a sitewide snapshot-setting +#repo.enable-log-filecount=0			# override the default filecount setting +#repo.enable-log-linecount=0			# override the default linecount setting  #repo.module-link=/git/%s/commit/?id=%s		# override the standard module-link @@ -22,6 +22,8 @@ char *cgit_cache_root   = "/var/cache/cgit";  int cgit_nocache               =  0;  int cgit_snapshots             =  0; +int cgit_enable_log_filecount  =  0; +int cgit_enable_log_linecount  =  0;  int cgit_max_lock_attempts     =  5;  int cgit_cache_root_ttl        =  5;  int cgit_cache_repo_ttl        =  5; @@ -85,6 +87,8 @@ struct repoinfo *add_repo(const char *url)  	ret->owner = NULL;  	ret->defbranch = "master";  	ret->snapshots = cgit_snapshots; +	ret->enable_log_filecount = cgit_enable_log_filecount; +	ret->enable_log_linecount = cgit_enable_log_linecount;  	ret->module_link = cgit_module_link;  	return ret;  } @@ -107,6 +111,10 @@ void cgit_global_config_cb(const char *name, const char *value)  		cgit_nocache = atoi(value);  	else if (!strcmp(name, "snapshots"))  		cgit_snapshots = atoi(value); +	else if (!strcmp(name, "enable-log-filecount")) +		cgit_enable_log_filecount = atoi(value); +	else if (!strcmp(name, "enable-log-linecount")) +		cgit_enable_log_linecount = atoi(value);  	else if (!strcmp(name, "cache-root"))  		cgit_cache_root = xstrdup(value);  	else if (!strcmp(name, "cache-root-ttl")) @@ -136,7 +144,11 @@ void cgit_global_config_cb(const char *name, const char *value)  	else if (cgit_repo && !strcmp(name, "repo.defbranch"))  		cgit_repo->defbranch = xstrdup(value);  	else if (cgit_repo && !strcmp(name, "repo.snapshots")) -		cgit_repo->snapshots = atoi(value); +		cgit_repo->snapshots = cgit_snapshots * atoi(value); +	else if (cgit_repo && !strcmp(name, "repo.enable-log-filecount")) +		cgit_repo->enable_log_filecount = cgit_enable_log_filecount * atoi(value); +	else if (cgit_repo && !strcmp(name, "repo.enable-log-linecount")) +		cgit_repo->enable_log_linecount = cgit_enable_log_linecount * atoi(value);  	else if (cgit_repo && !strcmp(name, "repo.module-link"))  		cgit_repo->module_link= xstrdup(value);  	else if (!strcmp(name, "include")) @@ -19,7 +19,8 @@ void count_lines(char *line, int size)  void inspect_files(struct diff_filepair *pair)  {  	files++; -	cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines); +	if (cgit_repo->enable_log_linecount) +		cgit_diff_files(pair->one->sha1, pair->two->sha1, count_lines);  }  void print_commit(struct commit *commit) @@ -39,13 +40,17 @@ void print_commit(struct commit *commit)  	html_link_open(url, NULL, NULL);  	html_ntxt(cgit_max_msg_len, info->subject);  	html_link_close(); -	files = 0; -	lines = 0; -	cgit_diff_commit(commit, inspect_files); -	html("</td><td class='right'>"); -	htmlf("%d", files); -	html("</td><td class='right'>"); -	htmlf("%d", lines); +	if (cgit_repo->enable_log_filecount) { +		files = 0; +		lines = 0; +		cgit_diff_commit(commit, inspect_files); +		html("</td><td class='right'>"); +		htmlf("%d", files); +		if (cgit_repo->enable_log_linecount) { +			html("</td><td class='right'>"); +			htmlf("%d", lines); +		} +	}  	html("</td><td>");  	html_txt(info->author);  	html("</td></tr>\n"); @@ -81,10 +86,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path)  	html("<table class='list nowrap'>");  	html("<tr class='nohover'><th class='left'>Date</th>" -	     "<th class='left'>Message</th>" -	     "<th class='left'>Files</th>" -	     "<th class='left'>Lines</th>" -	     "<th class='left'>Author</th></tr>\n"); +	     "<th class='left'>Message</th>"); + +	if (cgit_repo->enable_log_filecount) { +		html("<th class='left'>Files</th>"); +		if (cgit_repo->enable_log_linecount) +			html("<th class='left'>Lines</th>"); +	} +	html("<th class='left'>Author</th></tr>\n");  	if (ofs<0)  		ofs = 0; | 
