dotsync 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.claude/settings.local.json.example +23 -0
- data/.gitignore +1 -1
- data/CHANGELOG.md +21 -1
- data/Gemfile.lock +1 -1
- data/lib/dotsync/actions/concerns/mappings_transfer.rb +6 -1
- data/lib/dotsync/actions/pull_action.rb +8 -3
- data/lib/dotsync/actions/push_action.rb +7 -2
- data/lib/dotsync/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 98beade2b2482ee27ecf6843e8f4f214fd81a0070c06d661213bce4c80e2d57a
|
|
4
|
+
data.tar.gz: b512b8ad21fe3966b40d0f09fbffe7a67f90a3a2f784b703e3892113bd9992f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b533ef15747bc2c19f7f6675961b1d025954e691e595a29a863b673d99229a99972215f888554bc7ef2508930e10ab4457420a23f0fe05464f39a07f028cd59
|
|
7
|
+
data.tar.gz: e39af50f1673a26cc825f64fe6416cc7ec9db39ed5d03bb652e781f7cf93e2db6f46a7d5eb8e7e1aa019ee2b49b7fd551ce53af8514e27637342b97eacf85745
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(*)",
|
|
5
|
+
"Edit(*)",
|
|
6
|
+
"Write(*)",
|
|
7
|
+
"Read(*)",
|
|
8
|
+
"Glob(*)",
|
|
9
|
+
"Grep(*)",
|
|
10
|
+
"WebFetch(*)",
|
|
11
|
+
"WebSearch(*)",
|
|
12
|
+
"Agent(*)",
|
|
13
|
+
"Skill(*)",
|
|
14
|
+
"NotebookEdit(*)"
|
|
15
|
+
],
|
|
16
|
+
"deny": [],
|
|
17
|
+
"ask": []
|
|
18
|
+
},
|
|
19
|
+
"attribution": {
|
|
20
|
+
"commit": "",
|
|
21
|
+
"pr": ""
|
|
22
|
+
}
|
|
23
|
+
}
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## [0.4.5] - 2026-04-07
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
|
|
5
|
+
- Skip transfer, orphan cleanup, and hooks when no differences detected (#42)
|
|
6
|
+
- `pull` and `push` actions now early-exit the apply phase when no differences exist
|
|
7
|
+
- Eliminates expensive `Find.find` directory scans from `cleanup_orphans` on every run
|
|
8
|
+
- `force_hooks` option still executes hooks even without differences
|
|
9
|
+
|
|
10
|
+
## [0.4.4] - 2026-04-07
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Skip file transfer for mappings with no differences (#39)
|
|
15
|
+
- `transfer_mappings` now filters using cached diff results to only transfer mappings that have actual changes
|
|
16
|
+
- Prevents unnecessary file mtime updates that caused Neovim to reload all plugins on every `dotsync pull`
|
|
17
|
+
- No redundant file comparisons — leverages the already-computed `@differs` from the display phase
|
|
18
|
+
|
|
1
19
|
## [0.4.3] - 2026-03-22
|
|
2
20
|
|
|
3
21
|
### Fixed
|
|
@@ -13,7 +31,6 @@
|
|
|
13
31
|
|
|
14
32
|
- Fix `cp_r_regular_files` crash on pre-existing symlinks during backup (#35)
|
|
15
33
|
- Add `FileUtils.rm_f` before `FileUtils.ln_s` to handle leftover symlinks from partial backup runs
|
|
16
|
-
|
|
17
34
|
## [0.4.1] - 2026-03-17
|
|
18
35
|
|
|
19
36
|
### Fixed
|
|
@@ -498,6 +515,9 @@ Add gem executables
|
|
|
498
515
|
|
|
499
516
|
Initial version
|
|
500
517
|
|
|
518
|
+
[0.4.4]: https://github.com/dsaenztagarro/dotsync/compare/v0.4.3...v0.4.4
|
|
519
|
+
[0.4.3]: https://github.com/dsaenztagarro/dotsync/compare/v0.4.2...v0.4.3
|
|
520
|
+
[0.4.2]: https://github.com/dsaenztagarro/dotsync/compare/v0.4.1...v0.4.2
|
|
501
521
|
[0.4.1]: https://github.com/dsaenztagarro/dotsync/compare/v0.4.0...v0.4.1
|
|
502
522
|
[0.4.0]: https://github.com/dsaenztagarro/dotsync/compare/v0.3.3...v0.4.0
|
|
503
523
|
[0.3.3]: https://github.com/dsaenztagarro/dotsync/compare/v0.3.2...v0.3.3
|
data/Gemfile.lock
CHANGED
|
@@ -114,8 +114,13 @@ module Dotsync
|
|
|
114
114
|
errors = []
|
|
115
115
|
mutex = Mutex.new
|
|
116
116
|
|
|
117
|
+
# Only transfer mappings that have actual differences (uses cached diffs)
|
|
118
|
+
changed_mappings = valid_mappings.each_with_index.filter_map do |mapping, idx|
|
|
119
|
+
mapping if differs[idx].any?
|
|
120
|
+
end
|
|
121
|
+
|
|
117
122
|
# Process mappings in parallel - each mapping is independent
|
|
118
|
-
Dotsync::Parallel.each(
|
|
123
|
+
Dotsync::Parallel.each(changed_mappings) do |mapping|
|
|
119
124
|
Dotsync::FileTransfer.new(mapping).transfer
|
|
120
125
|
rescue Dotsync::PermissionError => e
|
|
121
126
|
mutex.synchronize { errors << ["Permission denied: #{e.message}", "Try: chmod +w <path> or check file permissions"] }
|
|
@@ -33,9 +33,14 @@ module Dotsync
|
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
if has_differences?
|
|
37
|
+
transfer_mappings
|
|
38
|
+
cleanup_orphans
|
|
39
|
+
execute_hooks(force: options[:force_hooks])
|
|
40
|
+
elsif options[:force_hooks]
|
|
41
|
+
execute_hooks(force: true)
|
|
42
|
+
end
|
|
43
|
+
|
|
39
44
|
action("Mappings pulled", icon: :done)
|
|
40
45
|
end
|
|
41
46
|
|
|
@@ -23,8 +23,13 @@ module Dotsync
|
|
|
23
23
|
return unless confirm_action
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
if has_differences?
|
|
27
|
+
transfer_mappings
|
|
28
|
+
execute_hooks(force: options[:force_hooks])
|
|
29
|
+
elsif options[:force_hooks]
|
|
30
|
+
execute_hooks(force: true)
|
|
31
|
+
end
|
|
32
|
+
|
|
28
33
|
action("Mappings pushed", icon: :done)
|
|
29
34
|
end
|
|
30
35
|
end
|
data/lib/dotsync/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dotsync
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Sáenz
|
|
@@ -283,6 +283,7 @@ executables:
|
|
|
283
283
|
extensions: []
|
|
284
284
|
extra_rdoc_files: []
|
|
285
285
|
files:
|
|
286
|
+
- ".claude/settings.local.json.example"
|
|
286
287
|
- ".editorconfig"
|
|
287
288
|
- ".github/workflows/ci.yml"
|
|
288
289
|
- ".github/workflows/release.yml"
|
|
@@ -367,7 +368,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
367
368
|
- !ruby/object:Gem::Version
|
|
368
369
|
version: '0'
|
|
369
370
|
requirements: []
|
|
370
|
-
rubygems_version:
|
|
371
|
+
rubygems_version: 4.0.9
|
|
371
372
|
specification_version: 4
|
|
372
373
|
summary: Manage dotfiles like a boss
|
|
373
374
|
test_files: []
|