sync-worktrees 1.7.5 → 2.0.0

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.
Files changed (74) hide show
  1. package/README.md +10 -5
  2. package/dist/index.js +2862 -203
  3. package/dist/index.js.map +7 -1
  4. package/package.json +19 -11
  5. package/dist/constants.d.ts +0 -54
  6. package/dist/constants.d.ts.map +0 -1
  7. package/dist/constants.js +0 -66
  8. package/dist/constants.js.map +0 -1
  9. package/dist/errors/index.d.ts +0 -51
  10. package/dist/errors/index.d.ts.map +0 -1
  11. package/dist/errors/index.js +0 -119
  12. package/dist/errors/index.js.map +0 -1
  13. package/dist/index.d.ts +0 -3
  14. package/dist/index.d.ts.map +0 -1
  15. package/dist/services/config-loader.service.d.ts +0 -9
  16. package/dist/services/config-loader.service.d.ts.map +0 -1
  17. package/dist/services/config-loader.service.js +0 -193
  18. package/dist/services/config-loader.service.js.map +0 -1
  19. package/dist/services/git.service.d.ts +0 -49
  20. package/dist/services/git.service.d.ts.map +0 -1
  21. package/dist/services/git.service.js +0 -746
  22. package/dist/services/git.service.js.map +0 -1
  23. package/dist/services/path-resolution.service.d.ts +0 -7
  24. package/dist/services/path-resolution.service.d.ts.map +0 -1
  25. package/dist/services/path-resolution.service.js +0 -58
  26. package/dist/services/path-resolution.service.js.map +0 -1
  27. package/dist/services/worktree-metadata.service.d.ts +0 -22
  28. package/dist/services/worktree-metadata.service.d.ts.map +0 -1
  29. package/dist/services/worktree-metadata.service.js +0 -276
  30. package/dist/services/worktree-metadata.service.js.map +0 -1
  31. package/dist/services/worktree-status.service.d.ts +0 -28
  32. package/dist/services/worktree-status.service.d.ts.map +0 -1
  33. package/dist/services/worktree-status.service.js +0 -229
  34. package/dist/services/worktree-status.service.js.map +0 -1
  35. package/dist/services/worktree-sync.service.d.ts +0 -16
  36. package/dist/services/worktree-sync.service.d.ts.map +0 -1
  37. package/dist/services/worktree-sync.service.js +0 -434
  38. package/dist/services/worktree-sync.service.js.map +0 -1
  39. package/dist/types/index.d.ts +0 -32
  40. package/dist/types/index.d.ts.map +0 -1
  41. package/dist/types/index.js +0 -3
  42. package/dist/types/index.js.map +0 -1
  43. package/dist/types/sync-metadata.d.ts +0 -16
  44. package/dist/types/sync-metadata.d.ts.map +0 -1
  45. package/dist/types/sync-metadata.js +0 -3
  46. package/dist/types/sync-metadata.js.map +0 -1
  47. package/dist/utils/cli.d.ts +0 -14
  48. package/dist/utils/cli.d.ts.map +0 -1
  49. package/dist/utils/cli.js +0 -117
  50. package/dist/utils/cli.js.map +0 -1
  51. package/dist/utils/config-generator.d.ts +0 -4
  52. package/dist/utils/config-generator.d.ts.map +0 -1
  53. package/dist/utils/config-generator.js +0 -112
  54. package/dist/utils/config-generator.js.map +0 -1
  55. package/dist/utils/date-filter.d.ts +0 -10
  56. package/dist/utils/date-filter.d.ts.map +0 -1
  57. package/dist/utils/date-filter.js +0 -47
  58. package/dist/utils/date-filter.js.map +0 -1
  59. package/dist/utils/git-url.d.ts +0 -15
  60. package/dist/utils/git-url.d.ts.map +0 -1
  61. package/dist/utils/git-url.js +0 -46
  62. package/dist/utils/git-url.js.map +0 -1
  63. package/dist/utils/interactive.d.ts +0 -3
  64. package/dist/utils/interactive.d.ts.map +0 -1
  65. package/dist/utils/interactive.js +0 -195
  66. package/dist/utils/interactive.js.map +0 -1
  67. package/dist/utils/lfs-error.d.ts +0 -23
  68. package/dist/utils/lfs-error.d.ts.map +0 -1
  69. package/dist/utils/lfs-error.js +0 -45
  70. package/dist/utils/lfs-error.js.map +0 -1
  71. package/dist/utils/retry.d.ts +0 -15
  72. package/dist/utils/retry.d.ts.map +0 -1
  73. package/dist/utils/retry.js +0 -78
  74. package/dist/utils/retry.js.map +0 -1
package/README.md CHANGED
@@ -121,10 +121,10 @@ sync-worktrees --config ./sync-worktrees.config.js --list
121
121
 
122
122
  ## Configuration File
123
123
 
124
- For managing multiple repositories, create a JavaScript config file:
124
+ For managing multiple repositories, create a JavaScript ES module config file:
125
125
 
126
126
  ```javascript
127
- module.exports = {
127
+ export default {
128
128
  // Optional defaults for all repositories
129
129
  defaults: {
130
130
  cronSchedule: "0 * * * *", // Hourly
@@ -132,7 +132,7 @@ module.exports = {
132
132
  branchMaxAge: "30d", // Only sync branches active in last 30 days
133
133
  updateExistingWorktrees: true // Auto-update worktrees that are behind (default: true)
134
134
  },
135
-
135
+
136
136
  // Retry configuration (optional - these are the defaults)
137
137
  retry: {
138
138
  maxAttempts: 'unlimited', // or a number like 5
@@ -140,7 +140,7 @@ module.exports = {
140
140
  maxDelayMs: 600000, // Max 10 minutes between retries
141
141
  backoffMultiplier: 2 // Double the delay each time
142
142
  },
143
-
143
+
144
144
  repositories: [
145
145
  {
146
146
  name: "frontend", // Unique identifier
@@ -252,7 +252,12 @@ sync-worktrees intelligently handles branches that have been rebased or force-pu
252
252
  - Automatically resets the worktree to match the upstream
253
253
  - No data loss since the content is the same
254
254
 
255
- 2. **Diverged branches** - When a branch has different content after rebase/force-push:
255
+ 2. **Diverged branches with NO local changes** - When someone force-pushes but you haven't made local commits:
256
+ - Automatically resets to the new upstream state
257
+ - No move to `.diverged` since you have no work to preserve
258
+ - Keeps `.diverged` clean by only preserving actual user work
259
+
260
+ 3. **Diverged branches WITH local changes** - When a branch has different content AND you've made local commits:
256
261
  - Moves the worktree to `.diverged` directory within your worktrees folder
257
262
  - Preserves all your local changes and commits
258
263
  - Creates a fresh worktree from the upstream branch