mirror of
https://github.com/octoleo/syncthing.git
synced 2025-01-03 07:12:27 +00:00
Set defaults correctly for autoNormalize
The default:"foo" struct tags aren't actually used for folder configs.
This commit is contained in:
parent
fc483cdfc6
commit
ad9ea07309
@ -922,7 +922,7 @@ angular.module('syncthing.core')
|
|||||||
$scope.currentFolder.staggeredMaxAge = 365;
|
$scope.currentFolder.staggeredMaxAge = 365;
|
||||||
}
|
}
|
||||||
$scope.currentFolder.externalCommand = $scope.currentFolder.externalCommand || "";
|
$scope.currentFolder.externalCommand = $scope.currentFolder.externalCommand || "";
|
||||||
|
|
||||||
$scope.editingExisting = true;
|
$scope.editingExisting = true;
|
||||||
$scope.folderEditor.$setPristine();
|
$scope.folderEditor.$setPristine();
|
||||||
$('#editFolder').modal();
|
$('#editFolder').modal();
|
||||||
@ -939,6 +939,7 @@ angular.module('syncthing.core')
|
|||||||
$scope.currentFolder.staggeredCleanInterval = 3600;
|
$scope.currentFolder.staggeredCleanInterval = 3600;
|
||||||
$scope.currentFolder.staggeredVersionsPath = "";
|
$scope.currentFolder.staggeredVersionsPath = "";
|
||||||
$scope.currentFolder.externalCommand = "";
|
$scope.currentFolder.externalCommand = "";
|
||||||
|
$scope.currentFolder.autoNormalize = true;
|
||||||
$scope.editingExisting = false;
|
$scope.editingExisting = false;
|
||||||
$scope.folderEditor.$setPristine();
|
$scope.folderEditor.$setPristine();
|
||||||
$('#editFolder').modal();
|
$('#editFolder').modal();
|
||||||
@ -959,6 +960,7 @@ angular.module('syncthing.core')
|
|||||||
$scope.currentFolder.staggeredCleanInterval = 3600;
|
$scope.currentFolder.staggeredCleanInterval = 3600;
|
||||||
$scope.currentFolder.staggeredVersionsPath = "";
|
$scope.currentFolder.staggeredVersionsPath = "";
|
||||||
$scope.currentFolder.externalCommand = "";
|
$scope.currentFolder.externalCommand = "";
|
||||||
|
$scope.currentFolder.autoNormalize = true;
|
||||||
$scope.editingExisting = false;
|
$scope.editingExisting = false;
|
||||||
$scope.folderEditor.$setPristine();
|
$scope.folderEditor.$setPristine();
|
||||||
$('#editFolder').modal();
|
$('#editFolder').modal();
|
||||||
|
File diff suppressed because one or more lines are too long
@ -27,7 +27,7 @@ import (
|
|||||||
|
|
||||||
var l = logger.DefaultLogger
|
var l = logger.DefaultLogger
|
||||||
|
|
||||||
const CurrentVersion = 9
|
const CurrentVersion = 10
|
||||||
|
|
||||||
type Configuration struct {
|
type Configuration struct {
|
||||||
Version int `xml:"version,attr" json:"version"`
|
Version int `xml:"version,attr" json:"version"`
|
||||||
@ -48,14 +48,14 @@ type FolderConfiguration struct {
|
|||||||
Path string `xml:"path,attr" json:"path"`
|
Path string `xml:"path,attr" json:"path"`
|
||||||
Devices []FolderDeviceConfiguration `xml:"device" json:"devices"`
|
Devices []FolderDeviceConfiguration `xml:"device" json:"devices"`
|
||||||
ReadOnly bool `xml:"ro,attr" json:"readOnly"`
|
ReadOnly bool `xml:"ro,attr" json:"readOnly"`
|
||||||
RescanIntervalS int `xml:"rescanIntervalS,attr" json:"rescanIntervalS" default:"60"`
|
RescanIntervalS int `xml:"rescanIntervalS,attr" json:"rescanIntervalS"`
|
||||||
IgnorePerms bool `xml:"ignorePerms,attr" json:"ignorePerms"`
|
IgnorePerms bool `xml:"ignorePerms,attr" json:"ignorePerms"`
|
||||||
AutoNormalize bool `xml:"autoNormalize,attr" json:"autoNormalize" default:"true"`
|
AutoNormalize bool `xml:"autoNormalize,attr" json:"autoNormalize"`
|
||||||
Versioning VersioningConfiguration `xml:"versioning" json:"versioning"`
|
Versioning VersioningConfiguration `xml:"versioning" json:"versioning"`
|
||||||
LenientMtimes bool `xml:"lenientMtimes" json:"lenientMTimes"`
|
LenientMtimes bool `xml:"lenientMtimes" json:"lenientMTimes"`
|
||||||
Copiers int `xml:"copiers" json:"copiers" default:"1"` // This defines how many files are handled concurrently.
|
Copiers int `xml:"copiers" json:"copiers"` // This defines how many files are handled concurrently.
|
||||||
Pullers int `xml:"pullers" json:"pullers" default:"16"` // Defines how many blocks are fetched at the same time, possibly between separate copier routines.
|
Pullers int `xml:"pullers" json:"pullers"` // Defines how many blocks are fetched at the same time, possibly between separate copier routines.
|
||||||
Hashers int `xml:"hashers" json:"hashers" default:"0"` // Less than one sets the value to the number of cores. These are CPU bound due to hashing.
|
Hashers int `xml:"hashers" json:"hashers"` // Less than one sets the value to the number of cores. These are CPU bound due to hashing.
|
||||||
|
|
||||||
Invalid string `xml:"-" json:"invalid"` // Set at runtime when there is an error, not saved
|
Invalid string `xml:"-" json:"invalid"` // Set at runtime when there is an error, not saved
|
||||||
|
|
||||||
@ -315,6 +315,9 @@ func (cfg *Configuration) prepare(myID protocol.DeviceID) {
|
|||||||
if cfg.Version == 8 {
|
if cfg.Version == 8 {
|
||||||
convertV8V9(cfg)
|
convertV8V9(cfg)
|
||||||
}
|
}
|
||||||
|
if cfg.Version == 9 {
|
||||||
|
convertV9V10(cfg)
|
||||||
|
}
|
||||||
|
|
||||||
// Hash old cleartext passwords
|
// Hash old cleartext passwords
|
||||||
if len(cfg.GUI.Password) > 0 && cfg.GUI.Password[0] != '$' {
|
if len(cfg.GUI.Password) > 0 && cfg.GUI.Password[0] != '$' {
|
||||||
@ -406,6 +409,14 @@ func ChangeRequiresRestart(from, to Configuration) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func convertV9V10(cfg *Configuration) {
|
||||||
|
// Enable auto normalization on existing folders.
|
||||||
|
for i := range cfg.Folders {
|
||||||
|
cfg.Folders[i].AutoNormalize = true
|
||||||
|
}
|
||||||
|
cfg.Version = 10
|
||||||
|
}
|
||||||
|
|
||||||
func convertV8V9(cfg *Configuration) {
|
func convertV8V9(cfg *Configuration) {
|
||||||
// Compression is interpreted and serialized differently, but no enforced
|
// Compression is interpreted and serialized differently, but no enforced
|
||||||
// changes. Still need a new version number since the compression stuff
|
// changes. Still need a new version number since the compression stuff
|
||||||
|
@ -83,6 +83,7 @@ func TestDeviceConfig(t *testing.T) {
|
|||||||
Copiers: 1,
|
Copiers: 1,
|
||||||
Pullers: 16,
|
Pullers: 16,
|
||||||
Hashers: 0,
|
Hashers: 0,
|
||||||
|
AutoNormalize: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
expectedDevices := []DeviceConfiguration{
|
expectedDevices := []DeviceConfiguration{
|
||||||
|
12
internal/config/testdata/v10.xml
vendored
Normal file
12
internal/config/testdata/v10.xml
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<configuration version="10">
|
||||||
|
<folder id="test" path="testdata" ro="true" ignorePerms="false" rescanIntervalS="600" autoNormalize="true">
|
||||||
|
<device id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR"></device>
|
||||||
|
<device id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2"></device>
|
||||||
|
</folder>
|
||||||
|
<device id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" name="node one" compression="metadata">
|
||||||
|
<address>a</address>
|
||||||
|
</device>
|
||||||
|
<device id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" name="node two" compression="metadata">
|
||||||
|
<address>b</address>
|
||||||
|
</device>
|
||||||
|
</configuration>
|
Loading…
Reference in New Issue
Block a user