Releases: cgraf78/dotsync
Releases · cgraf78/dotsync
v1.2.3
Full Changelog: v1.2.2...v1.2.3
v1.2.2
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
- One-liner install — install.sh is now self-bootstrapping; when run standalone via curl, it fetches the latest release tarball automatically:
Source-tree installs (
curl -sL https://raw.githubusercontent.com/cgraf78/dotsync/main/install.sh | bashgit clone+bash install.sh) continue to work as before.
v1.2.0
What's Changed
Security fixes
- Atomic lock file — replaced check-then-write lock with mkdir-based atomic lock, eliminating a race condition that could corrupt state on concurrent runs
- Path expansion injection filter — paths discovered by find during directory expansion are now validated against shell metacharacters before use in remote SSH commands
Safety improvements
- First-sync conflict detection — sync no longer silently overwrites remote when both sides have different content on first sync; the remote version is saved as .conflict.<host> so nothing is lost. Use push when you intentionally want local to win.
- md5 failure guard — files that can't be checksummed (e.g., permission denied) are skipped with a warning instead of causing empty-state loops
- Self-detection in push/pull — now skips early when the target resolves to the current machine, matching sync and diff behavior
- IP-based self-detection — _is_self now matches against local network IPs and localhost, handling SSH configs that resolve hosts to IP addresses
Fixes
- Literal tab in SSH script — replaced fragile literal tab character with printf-based assignment in _restore_remote_symlinks
- Missing test summary — test suite now prints pass/fail counts and exits nonzero on failures
Full Changelog: v1.0.4...v1.2.0
v1.0.4
What's new
- Release tarball now includes
VERSIONfile for version detection by tools likedotbootstrap.
Full Changelog: v1.0.3...v1.0.4
v1.0.3
What's new
- Added
VERSIONfile for version detection by tools likedotbootstrap.
Full Changelog: v1.1.0...v1.0.3
v1.1.0
Full Changelog: v1.0.2...v1.1.0
v1.0.2
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Full Changelog: v0.0.2...v1.0.0