MCPcopy Create free account
hub / github.com/git/git / reflog_expire_config

Function reflog_expire_config

reflog.c:35–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33}
34
35int reflog_expire_config(const char *var, const char *value,
36 const struct config_context *ctx, void *cb)
37{
38 struct reflog_expire_options *opts = cb;
39 const char *pattern, *key;
40 size_t pattern_len;
41 timestamp_t expire;
42 int slot;
43 struct reflog_expire_entry_option *ent;
44
45 if (parse_config_key(var, "gc", &pattern, &pattern_len, &key) < 0)
46 return git_default_config(var, value, ctx, cb);
47
48 if (!strcmp(key, "reflogexpire")) {
49 slot = REFLOG_EXPIRE_TOTAL;
50 if (git_config_expiry_date(&expire, var, value))
51 return -1;
52 } else if (!strcmp(key, "reflogexpireunreachable")) {
53 slot = REFLOG_EXPIRE_UNREACH;
54 if (git_config_expiry_date(&expire, var, value))
55 return -1;
56 } else
57 return git_default_config(var, value, ctx, cb);
58
59 if (!pattern) {
60 switch (slot) {
61 case REFLOG_EXPIRE_TOTAL:
62 opts->default_expire_total = expire;
63 break;
64 case REFLOG_EXPIRE_UNREACH:
65 opts->default_expire_unreachable = expire;
66 break;
67 }
68 return 0;
69 }
70
71 ent = find_cfg_ent(opts, pattern, pattern_len);
72 if (!ent)
73 return -1;
74 switch (slot) {
75 case REFLOG_EXPIRE_TOTAL:
76 ent->expire_total = expire;
77 break;
78 case REFLOG_EXPIRE_UNREACH:
79 ent->expire_unreachable = expire;
80 break;
81 }
82 return 0;
83}
84
85void reflog_clear_expire_config(struct reflog_expire_options *opts)
86{

Callers

nothing calls this directly

Calls 4

parse_config_keyFunction · 0.85
git_default_configFunction · 0.85
git_config_expiry_dateFunction · 0.85
find_cfg_entFunction · 0.85

Tested by

no test coverage detected