Comments (7)
Yeah I don't know what we'd do better here. You can of course disable normalisation, but the problem with running without it is that Syncthing could sync a file from another device that has the same name but just differs in normalisation, which is both confusing on disk and also something we don't support since file names over the wire are normalised... i.e., there is literally no way to express a non-normalised filename in the wire protocol.
from syncthing.
Wouldn't it be possible to normalize it in the destination machine and not the source one? or keep a map (on ~/.cache let's say) with the non-normalized and normalized filename. The only problematic thing is to rename the file. If the normalized information can be stored in a different place it would be fixed, at least for my use case
from syncthing.
Syncthing is bidirectional; we'd have to know that an incoming notification about a (normalised) filename somehow applies to a different non-normalised name on disk. Separate cache files and stuff is not a thing we do, for a variety of reasons (complexity and race conditions among them).
from syncthing.
Yes, if there are not enough use cases I understand it could be too complex to modify the core just for this. Thinking about a different solution. Would it work to have an option to create a symlink (maybe a hard symlink?¿) with the normalized name that points to the non-normalized name (instead of just renaming)?
from syncthing.
A hard link should work, possibly, if you disable the auto normalisation.
from syncthing.
I see. If syncthing could have two option to handle non-normalized filenames and in case of hardlinks could ignore the non-normalized filename if there exist also a normalized version it would be neat. Never tried to dig into the source code. I guess that it being a very special use case it would be of very low priority, but at some point I could try to open a PR if that's okay.
from syncthing.
I think disabling auto normalisation should give you that behavior. If it does not, I think it's way too detailed and niche a knob for us to have and maintain, honestly. I hope this solves your issue!
from syncthing.
Related Issues (20)
- Data race in fakeFS (testing)
- remote uses different upper or lowercase characters than local "<filename>"; change the casing on either side to match the other HOT 2
- First run of `serve` is not respecting `--no-default-folder` HOT 4
- lib/nat: panic: runtime error: index out of range
- gui: Favicon not working in Firefox bookmarks
- get pending status for 10s files, 60s deletion on api. HOT 1
- Panic "fatal error: runtime: mcall called on m->g0 stack" HOT 4
- Show the version on the web GUI page HOT 2
- Make address field in remote devices panel clickable to open administration GUI HOT 1
- Sync/Connection speed plummets when web UI is open on PC HOT 3
- Windows Listed Version Older Than Running Version HOT 2
- add run on mobile data / run on wifi options to pc HOT 2
- Syncthing cannot detect changes live in folder linked with junction on Windows
- Web GUI Refreshing Ad Eternum HOT 1
- LDAP - can't login if domain controller password is needed
- Expand Prometheus Metrics to state device/folder names HOT 5
- meta.js is sent with the wrong MIME type HOT 6
- add exit on sync or execute on sync
- Device connection state metric HOT 6
- Connect devices with XMPP (and also Ad-Hoc commands!) HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from syncthing.