-
-
Notifications
You must be signed in to change notification settings - Fork 4.9k
lib/versioner: expand tildes in version directory (fixes #9241) #9327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
lib/versioner/simple_test.go
Outdated
| t.Setenv("USERPROFILE", home) | ||
| os.Mkdir(filepath.Join(home, "folder"), 0755) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This fails on the Windows runner, probably because our legacy HOMEDRIVE/HOMEPATH check takes precedence over USERPROFILE.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah gotcha, fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, not fixed.
\\?\C:\C:\Users\RUNNER~1\AppData\Local\Temp\TestPathTildes1447117282\001\folder\test: The filename, directory name, or volume label syntax is incorrect.
Not sure where the extra C:\ is coming from. Will take another look later today.
calmh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, and welcome, and thanks for Go and all :)
When creating the versioner file system, first try to expand any leading tildes to the user's home directory before handling relative paths. This makes a version path "~/p" expand to "$HOME/p" instead of "/folder/~/p".
* main: (24 commits) lib/ignore: Refactor out result type (syncthing#9343) build: Testing infra images for infra-* branches lib/versioner: Expand tildes in version directory (fixes syncthing#9241) (syncthing#9327) lib/scanner: Prevent sync-conflict for receive-only local modifications (syncthing#9323) gui, man, authors: Update docs, translations, and contributors Fix website security link in README.md (syncthing#9325) cmd/syncthing: Add CLI completion functionality (fixes syncthing#8616) (syncthing#9226) lib/api: Save session & CSRF tokens to database, add option to stay logged in (fixes syncthing#9151) (syncthing#9284) Update dependencies (syncthing#9321) gui: Always inform about loading data in Restore Versions modal (syncthing#9317) lib/build: Allow semver build in version regex (fixes syncthing#9267) (syncthing#9316) gui: Keep short deviceID length consistent + xrefs (fixes syncthing#9313) (syncthing#9314) build(deps): bump actions/download-artifact from 3 to 4 (syncthing#9294) build(deps): bump actions/upload-artifact from 3 to 4 (syncthing#9293) gui, man, authors: Update docs, translations, and contributors gui, lib/scanner: Improve scan progress indication (ref syncthing#8331) (syncthing#9308) lib/protocol: handle empty names in unixOwnershipEqual (fixes syncthing#9039) (syncthing#9306) gui, man, authors: Update docs, translations, and contributors etc/linux-desktop: use double dash for long options (syncthing#9301) lib/connections: Skip allocation in check for missing port (syncthing#9297) ...
|
Thanks for the fix! ❤️ |
Purpose
Fix #9241 by expanding tildes in version paths.
When creating the versioner file system, first try to expand any leading tildes to the user's home directory before handling relative paths. This makes a version path
"~/p"expand to"$HOME/p"instead of"/folder/~/p".Testing
Added a test to lib/versioner that exercises this code path. Also manually tested with local syncthing instances.