Add new prune config settings

This commit is contained in:
Steve Streeting 2015-09-08 15:00:28 +01:00
parent bd72983c05
commit 9b1a15d9ac
2 changed files with 26 additions and 5 deletions

@ -34,6 +34,10 @@ type FetchPruneConfig struct {
// Number of days added to FetchRecent*; data outside combined window will be
// deleted when prune is run. (default 3)
PruneOffsetDays int
// Always verify with remote before pruning
PruneVerifyRemoteAlways bool
// Name of remote to check for unpushed and verify checks
PruneRemoteName string
}
type Configuration struct {
@ -249,6 +253,8 @@ func (c *Configuration) FetchPruneConfig() *FetchPruneConfig {
FetchRecentRefsIncludeRemotes: true,
FetchRecentCommitsDays: 0,
PruneOffsetDays: 3,
PruneVerifyRemoteAlways: false,
PruneRemoteName: "origin",
}
if v, ok := c.GitConfig("lfs.fetchrecentrefsdays"); ok {
n, err := strconv.Atoi(v)
@ -278,6 +284,14 @@ func (c *Configuration) FetchPruneConfig() *FetchPruneConfig {
c.fetchPruneConfig.PruneOffsetDays = n
}
}
if v, ok := c.GitConfig("lfs.pruneverifyremotealways"); ok {
if b, err := parseConfigBool(v); err == nil {
c.fetchPruneConfig.PruneVerifyRemoteAlways = b
}
}
if v, ok := c.GitConfig("lfs.pruneremotetocheck"); ok {
c.fetchPruneConfig.PruneRemoteName = v
}
}
return c.fetchPruneConfig

@ -389,23 +389,30 @@ func TestFetchPruneConfigDefault(t *testing.T) {
assert.Equal(t, 0, fp.FetchRecentCommitsDays)
assert.Equal(t, 3, fp.PruneOffsetDays)
assert.Equal(t, true, fp.FetchRecentRefsIncludeRemotes)
assert.Equal(t, 3, fp.PruneOffsetDays)
assert.Equal(t, "origin", fp.PruneRemoteName)
assert.Equal(t, false, fp.PruneVerifyRemoteAlways)
}
func TestFetchPruneConfigCustom(t *testing.T) {
config := &Configuration{
gitConfig: map[string]string{
"lfs.fetchrecentrefsdays": "12",
"lfs.fetchrecentremoterefs": "false",
"lfs.fetchrecentcommitsdays": "9",
"lfs.pruneoffsetdays": "30",
"lfs.fetchrecentrefsdays": "12",
"lfs.fetchrecentremoterefs": "false",
"lfs.fetchrecentcommitsdays": "9",
"lfs.pruneoffsetdays": "30",
"lfs.pruneverifyremotealways": "true",
"lfs.pruneremotetocheck": "upstream",
},
}
fp := config.FetchPruneConfig()
assert.Equal(t, 12, fp.FetchRecentRefsDays)
assert.Equal(t, 9, fp.FetchRecentCommitsDays)
assert.Equal(t, 30, fp.PruneOffsetDays)
assert.Equal(t, false, fp.FetchRecentRefsIncludeRemotes)
assert.Equal(t, 30, fp.PruneOffsetDays)
assert.Equal(t, "upstream", fp.PruneRemoteName)
assert.Equal(t, true, fp.PruneVerifyRemoteAlways)
}
// only used for tests