mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-09 14:50:56 +00:00
Drop and warn about non-normalized file names on Linux/Windows (fixes #329)
This commit is contained in:
parent
e63596681d
commit
7454670b0a
@ -21,6 +21,15 @@ start() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clean() {
|
||||||
|
if [[ $(uname -s) == "Linux" ]] ; then
|
||||||
|
grep -v utf8-nfd
|
||||||
|
else
|
||||||
|
cat
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
testConvergence() {
|
testConvergence() {
|
||||||
while true ; do
|
while true ; do
|
||||||
sleep 5
|
sleep 5
|
||||||
@ -38,13 +47,13 @@ testConvergence() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo "Verifying..."
|
echo "Verifying..."
|
||||||
cat md5-? | sort | uniq > md5-tot
|
cat md5-? | sort | clean | uniq > md5-tot
|
||||||
cat md5-12-? | sort | uniq > md5-12-tot
|
cat md5-12-? | sort | clean | uniq > md5-12-tot
|
||||||
cat md5-23-? | sort | uniq > md5-23-tot
|
cat md5-23-? | sort | clean | uniq > md5-23-tot
|
||||||
|
|
||||||
for i in 1 2 3 12-1 12-2 23-2 23-3; do
|
for i in 1 2 3 12-1 12-2 23-2 23-3; do
|
||||||
pushd "s$i" >/dev/null
|
pushd "s$i" >/dev/null
|
||||||
../md5r -l | sort > ../md5-$i
|
../md5r -l | sort | clean > ../md5-$i
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
"code.google.com/p/go.text/unicode/norm"
|
||||||
|
|
||||||
"github.com/calmh/syncthing/lamport"
|
"github.com/calmh/syncthing/lamport"
|
||||||
"github.com/calmh/syncthing/protocol"
|
"github.com/calmh/syncthing/protocol"
|
||||||
@ -159,6 +160,11 @@ func (w *Walker) walkAndHashFiles(res *[]File, ign map[string][]string) filepath
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (runtime.GOOS == "linux" || runtime.GOOS == "windows") && !norm.NFC.IsNormalString(rn) {
|
||||||
|
l.Warnf("File %q contains non-NFC UTF-8 sequences and cannot be synced. Consider renaming.", rn)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if info.Mode().IsDir() {
|
if info.Mode().IsDir() {
|
||||||
if w.CurrentFiler != nil {
|
if w.CurrentFiler != nil {
|
||||||
cf := w.CurrentFiler.CurrentFile(rn)
|
cf := w.CurrentFiler.CurrentFile(rn)
|
||||||
|
Loading…
Reference in New Issue
Block a user