aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Colomb <src@andre.colomb.de>2023-08-09 09:10:06 +0200
committerGitHub <noreply@github.com>2023-08-09 07:10:06 +0000
commita8cacdca94fc2fd5c23ebd601d43db0d0c7c96d7 (patch)
treec3b73776ea1cd7cba63443783592aea1eb8106fd
parent8b87cd5229564c96369eee0b4a7856d725de01fc (diff)
downloadsyncthing-a8cacdca94fc2fd5c23ebd601d43db0d0c7c96d7.tar.gz
syncthing-a8cacdca94fc2fd5c23ebd601d43db0d0c7c96d7.zip
lib/versioner: Minor fixes in comments and error message (#9031)
* lib/versioner: Factor out DefaultPath constant. Replace several instances where .stversions is named literally to all use the same definition in the versioner package. Exceptions are the packages where a cyclic dependency on versioner is impossible, or some tests which combine the versions base path with other components. * lib/versioner: Fix comment about trash can in simple versioner. * lib/versioner: Fix wrong versioning type string in error message. The error message shows the folder type instead of the versioning type, although the correct field is used in the comparison.
-rw-r--r--lib/fs/filesystem.go3
-rw-r--r--lib/model/model.go2
-rw-r--r--lib/model/model_test.go4
-rw-r--r--lib/versioner/simple.go2
-rw-r--r--lib/versioner/simple_test.go2
-rw-r--r--lib/versioner/util.go6
-rw-r--r--lib/versioner/versioner.go2
7 files changed, 13 insertions, 8 deletions
diff --git a/lib/fs/filesystem.go b/lib/fs/filesystem.go
index 959407739..cf0b50cdb 100644
--- a/lib/fs/filesystem.go
+++ b/lib/fs/filesystem.go
@@ -293,7 +293,8 @@ func NewFilesystem(fsType FilesystemType, uri string, opts ...Option) Filesystem
// root, represents an internal file that should always be ignored. The file
// path must be clean (i.e., in canonical shortest form).
func IsInternal(file string) bool {
- // fs cannot import config, so we hard code .stfolder here (config.DefaultMarkerName)
+ // fs cannot import config or versioner, so we hard code .stfolder
+ // (config.DefaultMarkerName) and .stversions (versioner.DefaultPath)
internals := []string{".stfolder", ".stignore", ".stversions"}
for _, internal := range internals {
if file == internal {
diff --git a/lib/model/model.go b/lib/model/model.go
index 6de44b520..3f0acdd4c 100644
--- a/lib/model/model.go
+++ b/lib/model/model.go
@@ -399,7 +399,7 @@ func (m *model) addAndStartFolderLockedWithIgnores(cfg config.FolderConfiguratio
// These are our metadata files, and they should always be hidden.
ffs := cfg.Filesystem(nil)
_ = ffs.Hide(config.DefaultMarkerName)
- _ = ffs.Hide(".stversions")
+ _ = ffs.Hide(versioner.DefaultPath)
_ = ffs.Hide(".stignore")
var ver versioner.Versioner
diff --git a/lib/model/model_test.go b/lib/model/model_test.go
index 2a8623909..96cb31ae9 100644
--- a/lib/model/model_test.go
+++ b/lib/model/model_test.go
@@ -2647,7 +2647,7 @@ func TestVersionRestore(t *testing.T) {
file = filepath.FromSlash(file)
}
tag := version.In(time.Local).Truncate(time.Second).Format(versioner.TimeFormat)
- taggedName := filepath.Join(".stversions", versioner.TagFilename(file, tag))
+ taggedName := filepath.Join(versioner.DefaultPath, versioner.TagFilename(file, tag))
fd, err := filesystem.Open(file)
if err != nil {
t.Error(err)
@@ -2680,7 +2680,7 @@ func TestVersionRestore(t *testing.T) {
}
for _, version := range versions {
if version.VersionTime.Equal(beforeRestore) || version.VersionTime.After(beforeRestore) {
- fd, err := filesystem.Open(".stversions/" + versioner.TagFilename(file, version.VersionTime.Format(versioner.TimeFormat)))
+ fd, err := filesystem.Open(versioner.DefaultPath + "/" + versioner.TagFilename(file, version.VersionTime.Format(versioner.TimeFormat)))
must(t, err)
defer fd.Close()
diff --git a/lib/versioner/simple.go b/lib/versioner/simple.go
index 1d173ba7f..7527a06bb 100644
--- a/lib/versioner/simple.go
+++ b/lib/versioner/simple.go
@@ -32,7 +32,7 @@ type simple struct {
func newSimple(cfg config.FolderConfiguration) Versioner {
var keep, err = strconv.Atoi(cfg.Versioning.Params["keep"])
cleanoutDays, _ := strconv.Atoi(cfg.Versioning.Params["cleanoutDays"])
- // On error we default to 0, "do not clean out the trash can"
+ // On error we default to 0, "do not clean out the versioned items"
if err != nil {
keep = 5 // A reasonable default
diff --git a/lib/versioner/simple_test.go b/lib/versioner/simple_test.go
index 2194e81d2..fe92478e7 100644
--- a/lib/versioner/simple_test.go
+++ b/lib/versioner/simple_test.go
@@ -81,7 +81,7 @@ func TestSimpleVersioningVersionCount(t *testing.T) {
t.Error(err)
}
- n, err := fs.DirNames(".stversions")
+ n, err := fs.DirNames(DefaultPath)
if err != nil {
t.Error(err)
}
diff --git a/lib/versioner/util.go b/lib/versioner/util.go
index 04809a2a4..ffa0dd3fe 100644
--- a/lib/versioner/util.go
+++ b/lib/versioner/util.go
@@ -28,6 +28,10 @@ var (
errFileAlreadyExists = errors.New("file already exists")
)
+const (
+ DefaultPath = ".stversions"
+)
+
// TagFilename inserts ~tag just before the extension of the filename.
func TagFilename(name, tag string) string {
dir, file := filepath.Dir(name), filepath.Base(name)
@@ -258,7 +262,7 @@ func restoreFile(method fs.CopyRangeMethod, src, dst fs.Filesystem, filePath str
func versionerFsFromFolderCfg(cfg config.FolderConfiguration) (versionsFs fs.Filesystem) {
folderFs := cfg.Filesystem(nil)
if cfg.Versioning.FSPath == "" {
- versionsFs = fs.NewFilesystem(folderFs.Type(), filepath.Join(folderFs.URI(), ".stversions"))
+ versionsFs = fs.NewFilesystem(folderFs.Type(), filepath.Join(folderFs.URI(), DefaultPath))
} else if cfg.Versioning.FSType == fs.FilesystemTypeBasic && !filepath.IsAbs(cfg.Versioning.FSPath) {
// We only know how to deal with relative folders for basic filesystems, as that's the only one we know
// how to check if it's absolute or relative.
diff --git a/lib/versioner/versioner.go b/lib/versioner/versioner.go
index 5c96c3803..a6e5e8856 100644
--- a/lib/versioner/versioner.go
+++ b/lib/versioner/versioner.go
@@ -44,7 +44,7 @@ const (
func New(cfg config.FolderConfiguration) (Versioner, error) {
fac, ok := factories[cfg.Versioning.Type]
if !ok {
- return nil, fmt.Errorf("requested versioning type %q does not exist", cfg.Type)
+ return nil, fmt.Errorf("requested versioning type %q does not exist", cfg.Versioning.Type)
}
return &versionerWithErrorContext{