提交 48c32424 编写于 作者: J Junio C Hamano

rerere gc: honor configuration and document it

Two configuration to control the expiration of rerere records
are introduced and documented.
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 ae72f685
......@@ -192,6 +192,16 @@ format.headers::
Additional email headers to include in a patch to be submitted
by mail. See gitlink:git-format-patch[1].
gc.rerereresolved::
Records of conflicted merge you resolved earlier are
kept for this many days when `git rerere gc` is run.
The default is 60 days. See gitlink:git-rerere[1].
gc.rerereunresolved::
Records of conflicted merge you have not resolved are
kept for this many days when `git rerere gc` is run.
The default is 15 days. See gitlink:git-rerere[1].
gitcvs.enabled::
Whether the cvs pserver interface is enabled for this repository.
See gitlink:git-cvsserver[1].
......
......@@ -7,7 +7,7 @@ git-rerere - Reuse recorded resolve
SYNOPSIS
--------
'git-rerere' [clear|diff|status]
'git-rerere' [clear|diff|status|gc]
DESCRIPTION
-----------
......@@ -55,7 +55,11 @@ for resolutions.
'gc'::
This command is used to prune records of conflicted merge that
occurred long time ago.
occurred long time ago. By default, conflicts older than 15
days that you have not recorded their resolution, and conflicts
older than 60 days, are pruned. These are controlled with
`gc.rerereunresolved` and `gc.rerereresolved` configuration
variables.
DISCUSSION
......
......@@ -362,6 +362,17 @@ static int do_plain_rerere(struct path_list *rr, int fd)
return write_rr(rr, fd);
}
static int git_rerere_config(const char *var, const char *value)
{
if (!strcmp(var, "gc.rerereresolved"))
cutoff_resolve = git_config_int(var, value);
else if (!strcmp(var, "gc.rerereunresolved"))
cutoff_noresolve = git_config_int(var, value);
else
return git_default_config(var, value);
return 0;
}
int cmd_rerere(int argc, const char **argv, const char *prefix)
{
struct path_list merge_rr = { NULL, 0, 0, 1 };
......@@ -371,6 +382,8 @@ int cmd_rerere(int argc, const char **argv, const char *prefix)
if (stat(git_path("rr-cache"), &st) || !S_ISDIR(st.st_mode))
return 0;
git_config(git_rerere_config);
merge_rr_path = xstrdup(git_path("rr-cache/MERGE_RR"));
fd = hold_lock_file_for_update(&write_lock, merge_rr_path, 1);
read_rr(&merge_rr);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册