sync-worktrees 0.4.1 → 0.5.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.
- package/LICENSE +21 -0
- package/README.md +55 -80
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/services/config-loader.service.js +7 -7
- package/dist/services/config-loader.service.js.map +1 -1
- package/dist/services/git.service.d.ts +3 -0
- package/dist/services/git.service.d.ts.map +1 -1
- package/dist/services/git.service.js +70 -19
- package/dist/services/git.service.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/cli.d.ts +1 -0
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +10 -12
- package/dist/utils/cli.js.map +1 -1
- package/dist/utils/config-generator.d.ts.map +1 -1
- package/dist/utils/config-generator.js +55 -20
- package/dist/utils/config-generator.js.map +1 -1
- package/dist/utils/git-url.d.ts +15 -0
- package/dist/utils/git-url.d.ts.map +1 -0
- package/dist/utils/git-url.js +41 -0
- package/dist/utils/git-url.js.map +1 -0
- package/dist/utils/interactive.d.ts.map +1 -1
- package/dist/utils/interactive.js +43 -28
- package/dist/utils/interactive.js.map +1 -1
- package/package.json +8 -5
- package/dist/__tests__/fixtures/git-responses.d.ts +0 -114
- package/dist/__tests__/fixtures/git-responses.d.ts.map +0 -1
- package/dist/__tests__/fixtures/git-responses.js +0 -119
- package/dist/__tests__/fixtures/git-responses.js.map +0 -1
- package/dist/__tests__/helpers/mock-helpers.d.ts +0 -29
- package/dist/__tests__/helpers/mock-helpers.d.ts.map +0 -1
- package/dist/__tests__/helpers/mock-helpers.js +0 -82
- package/dist/__tests__/helpers/mock-helpers.js.map +0 -1
- package/dist/__tests__/integration.test.d.ts +0 -2
- package/dist/__tests__/integration.test.d.ts.map +0 -1
- package/dist/__tests__/integration.test.js +0 -300
- package/dist/__tests__/integration.test.js.map +0 -1
- package/dist/__tests__/setup.d.ts +0 -2
- package/dist/__tests__/setup.d.ts.map +0 -1
- package/dist/__tests__/setup.js +0 -18
- package/dist/__tests__/setup.js.map +0 -1
- package/dist/services/__tests__/config-loader.service.test.d.ts +0 -2
- package/dist/services/__tests__/config-loader.service.test.d.ts.map +0 -1
- package/dist/services/__tests__/config-loader.service.test.js +0 -222
- package/dist/services/__tests__/config-loader.service.test.js.map +0 -1
- package/dist/services/__tests__/git.service.test.d.ts +0 -2
- package/dist/services/__tests__/git.service.test.d.ts.map +0 -1
- package/dist/services/__tests__/git.service.test.js +0 -289
- package/dist/services/__tests__/git.service.test.js.map +0 -1
- package/dist/services/__tests__/worktree-sync.service.test.d.ts +0 -2
- package/dist/services/__tests__/worktree-sync.service.test.d.ts.map +0 -1
- package/dist/services/__tests__/worktree-sync.service.test.js +0 -342
- package/dist/services/__tests__/worktree-sync.service.test.js.map +0 -1
- package/dist/utils/__tests__/config-generator.test.d.ts +0 -2
- package/dist/utils/__tests__/config-generator.test.d.ts.map +0 -1
- package/dist/utils/__tests__/config-generator.test.js +0 -142
- package/dist/utils/__tests__/config-generator.test.js.map +0 -1
- package/dist/utils/__tests__/interactive.test.d.ts +0 -2
- package/dist/utils/__tests__/interactive.test.d.ts.map +0 -1
- package/dist/utils/__tests__/interactive.test.js +0 -281
- package/dist/utils/__tests__/interactive.test.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Yordan Kanchelov
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# sync-worktrees
|
|
2
2
|
|
|
3
|
-
Automatically synchronize Git worktrees with remote branches. Keep your local worktrees in sync with remote repositories - perfect for
|
|
3
|
+
Automatically synchronize Git worktrees with remote branches. Keep your local worktrees in sync with remote repositories - perfect for multi-branch development workflows and automated testing setups.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -10,6 +10,7 @@ Automatically synchronize Git worktrees with remote branches. Keep your local wo
|
|
|
10
10
|
- 🛡️ Safe operations - won't delete worktrees with uncommitted changes or unpushed commits
|
|
11
11
|
- 📝 Clear logging with timestamps and progress indicators
|
|
12
12
|
- 📋 Config file support for managing multiple repositories
|
|
13
|
+
- 💾 Space-efficient bare repository storage - no duplicate working trees
|
|
13
14
|
|
|
14
15
|
## Installation
|
|
15
16
|
|
|
@@ -25,31 +26,14 @@ pnpm add -g sync-worktrees
|
|
|
25
26
|
|
|
26
27
|
## Usage
|
|
27
28
|
|
|
28
|
-
### One-time sync
|
|
29
|
-
|
|
30
29
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
# Single repository (one-time sync)
|
|
31
|
+
sync-worktrees --repoUrl https://github.com/user/repo.git --worktreeDir ./worktrees --runOnce
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
# Single repository (scheduled hourly)
|
|
34
|
+
sync-worktrees --repoUrl https://github.com/user/repo.git --worktreeDir ./worktrees
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
sync-worktrees --repoPath /path/to/repo --worktreeDir /path/to/worktrees
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Clone and sync a new repository
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
sync-worktrees \
|
|
44
|
-
--repoPath /path/to/repo \
|
|
45
|
-
--repoUrl git@github.com:user/repo.git \
|
|
46
|
-
--worktreeDir /path/to/worktrees \
|
|
47
|
-
--runOnce
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Using a config file
|
|
51
|
-
|
|
52
|
-
```bash
|
|
36
|
+
# Multiple repositories (using config file)
|
|
53
37
|
sync-worktrees --config ./sync-worktrees.config.js
|
|
54
38
|
```
|
|
55
39
|
|
|
@@ -60,8 +44,8 @@ sync-worktrees --config ./sync-worktrees.config.js
|
|
|
60
44
|
| `--config` | `-c` | Path to JavaScript config file | No | - |
|
|
61
45
|
| `--filter` | `-f` | Filter repositories by name (wildcards supported) | No | - |
|
|
62
46
|
| `--list` | `-l` | List configured repositories and exit | No | `false` |
|
|
63
|
-
| `--
|
|
64
|
-
| `--
|
|
47
|
+
| `--repoUrl` | `-u` | Git repository URL (HTTPS or SSH) | Yes* | - |
|
|
48
|
+
| `--bareRepoDir` | `-b` | Directory for bare repository | No | `.bare/<repo-name>` |
|
|
65
49
|
| `--worktreeDir` | `-w` | Directory for storing worktrees | Yes* | - |
|
|
66
50
|
| `--cronSchedule` | `-s` | Cron pattern for scheduling | No | `0 * * * *` (hourly) |
|
|
67
51
|
| `--runOnce` | - | Execute once and exit | No | `false` |
|
|
@@ -71,80 +55,67 @@ sync-worktrees --config ./sync-worktrees.config.js
|
|
|
71
55
|
|
|
72
56
|
## Examples
|
|
73
57
|
|
|
74
|
-
###
|
|
75
|
-
```bash
|
|
76
|
-
sync-worktrees -r /home/user/my-repo -w /home/user/my-repo-worktrees --runOnce
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Custom cron schedule (every 30 minutes)
|
|
58
|
+
### Single repository
|
|
80
59
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
60
|
+
# One-time sync
|
|
61
|
+
sync-worktrees -u https://github.com/user/repo.git -w ./worktrees --runOnce
|
|
83
62
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
sync-worktrees \
|
|
87
|
-
-r /home/user/new-repo \
|
|
88
|
-
-u https://github.com/example/project.git \
|
|
89
|
-
-w /home/user/new-repo-worktrees \
|
|
90
|
-
--runOnce
|
|
63
|
+
# Scheduled sync (every 30 minutes)
|
|
64
|
+
sync-worktrees -u git@github.com:user/repo.git -w ./worktrees -s "*/30 * * * *"
|
|
91
65
|
```
|
|
92
66
|
|
|
93
67
|
### Using a config file
|
|
94
68
|
```bash
|
|
95
|
-
# Sync all repositories
|
|
69
|
+
# Sync all repositories
|
|
96
70
|
sync-worktrees --config ./sync-worktrees.config.js
|
|
97
71
|
|
|
98
|
-
#
|
|
99
|
-
sync-worktrees --config ./sync-worktrees.config.js --filter "frontend
|
|
72
|
+
# Filter specific repositories
|
|
73
|
+
sync-worktrees --config ./sync-worktrees.config.js --filter "frontend-*"
|
|
100
74
|
|
|
101
75
|
# List configured repositories
|
|
102
76
|
sync-worktrees --config ./sync-worktrees.config.js --list
|
|
103
|
-
|
|
104
|
-
# Override config settings
|
|
105
|
-
sync-worktrees --config ./sync-worktrees.config.js --runOnce
|
|
106
77
|
```
|
|
107
78
|
|
|
108
79
|
## Configuration File
|
|
109
80
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### Basic Config Structure
|
|
81
|
+
For managing multiple repositories, create a JavaScript config file:
|
|
113
82
|
|
|
114
83
|
```javascript
|
|
115
84
|
module.exports = {
|
|
116
|
-
// Optional
|
|
85
|
+
// Optional defaults for all repositories
|
|
117
86
|
defaults: {
|
|
118
|
-
cronSchedule: "0 * * * *",
|
|
87
|
+
cronSchedule: "0 * * * *", // Hourly
|
|
119
88
|
runOnce: false
|
|
120
89
|
},
|
|
121
90
|
|
|
122
|
-
// Array of repository configurations
|
|
123
91
|
repositories: [
|
|
124
92
|
{
|
|
125
|
-
name: "
|
|
126
|
-
repoUrl: "https://github.com/
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
93
|
+
name: "frontend", // Unique identifier
|
|
94
|
+
repoUrl: "https://github.com/company/frontend.git",
|
|
95
|
+
worktreeDir: "./worktrees/frontend", // Relative paths supported
|
|
96
|
+
cronSchedule: "*/30 * * * *" // Override default
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "backend",
|
|
100
|
+
repoUrl: process.env.BACKEND_REPO_URL, // Environment variables supported
|
|
101
|
+
worktreeDir: "/absolute/path/backend-worktrees"
|
|
102
|
+
// Uses default schedule
|
|
131
103
|
}
|
|
132
104
|
]
|
|
133
105
|
};
|
|
134
106
|
```
|
|
135
107
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
- **Conditional config**: Include/exclude repos based on environment
|
|
141
|
-
- **Relative paths**: Resolved relative to the config file location
|
|
142
|
-
|
|
143
|
-
See `sync-worktrees.config.example.js` for more examples.
|
|
108
|
+
**Notes:**
|
|
109
|
+
- Relative paths are resolved from the config file location
|
|
110
|
+
- `bareRepoDir` defaults to `.bare/<repo-name>` if not specified
|
|
111
|
+
- Repository-specific settings override defaults
|
|
144
112
|
|
|
145
113
|
## How it works
|
|
146
114
|
|
|
147
|
-
1. **Initialization**:
|
|
115
|
+
1. **Initialization**:
|
|
116
|
+
- Clones the repository as a bare repository (space-efficient, no working tree)
|
|
117
|
+
- Creates a main worktree for immediate use
|
|
118
|
+
- Stores bare repository in `.bare/<repo-name>` by default
|
|
148
119
|
2. **Synchronization**:
|
|
149
120
|
- Fetches latest changes from all remotes
|
|
150
121
|
- Creates worktrees for new remote branches
|
|
@@ -159,21 +130,17 @@ See `sync-worktrees.config.example.js` for more examples.
|
|
|
159
130
|
## Development
|
|
160
131
|
|
|
161
132
|
```bash
|
|
162
|
-
#
|
|
133
|
+
# Setup
|
|
163
134
|
git clone https://github.com/yordan-kanchelov/sync-worktrees.git
|
|
164
135
|
cd sync-worktrees
|
|
165
|
-
|
|
166
|
-
# Install dependencies
|
|
167
136
|
pnpm install
|
|
168
137
|
|
|
169
|
-
# Build
|
|
138
|
+
# Build and test
|
|
170
139
|
pnpm build
|
|
171
|
-
|
|
172
|
-
# Run tests
|
|
173
140
|
pnpm test
|
|
174
141
|
|
|
175
|
-
#
|
|
176
|
-
pnpm dev -- --
|
|
142
|
+
# Run in development mode
|
|
143
|
+
pnpm dev -- --repoUrl https://github.com/user/repo.git --worktreeDir ./worktrees --runOnce
|
|
177
144
|
```
|
|
178
145
|
|
|
179
146
|
### Available Scripts
|
|
@@ -181,12 +148,19 @@ pnpm dev -- --repoPath /path/to/repo --worktreeDir /path/to/worktrees --runOnce
|
|
|
181
148
|
- `pnpm build` - Build the project
|
|
182
149
|
- `pnpm dev` - Run in development mode
|
|
183
150
|
- `pnpm test` - Run tests
|
|
151
|
+
- `pnpm test:watch` - Run tests in watch mode
|
|
152
|
+
- `pnpm test:coverage` - Run tests with coverage report
|
|
184
153
|
- `pnpm lint` - Check linting
|
|
154
|
+
- `pnpm lint:fix` - Auto-fix linting errors
|
|
185
155
|
- `pnpm typecheck` - Run type checking
|
|
186
156
|
- `pnpm changeset` - Create a changeset for your changes
|
|
187
157
|
- `pnpm version` - Update versions based on changesets
|
|
188
158
|
- `pnpm release` - Build and publish to npm
|
|
189
159
|
|
|
160
|
+
### Testing
|
|
161
|
+
|
|
162
|
+
The test suite uses Jest with comprehensive unit and integration tests. Common test utilities are available in `src/__tests__/test-utils.ts` including mock factories, test data constants, and helper functions. Use these utilities when writing tests to maintain consistency.
|
|
163
|
+
|
|
190
164
|
## Contributing
|
|
191
165
|
|
|
192
166
|
This project uses [changesets](https://github.com/changesets/changesets) to manage versions and releases.
|
|
@@ -194,13 +168,14 @@ This project uses [changesets](https://github.com/changesets/changesets) to mana
|
|
|
194
168
|
### Making Changes
|
|
195
169
|
|
|
196
170
|
1. Make your changes and commit them
|
|
197
|
-
2.
|
|
198
|
-
3.
|
|
199
|
-
4.
|
|
200
|
-
5.
|
|
171
|
+
2. Write tests for your changes using the test utilities in `src/__tests__/test-utils.ts`
|
|
172
|
+
3. Run `pnpm changeset` to create a changeset describing your changes
|
|
173
|
+
4. Select the appropriate version bump type (patch/minor/major)
|
|
174
|
+
5. Write a summary of your changes for the changelog
|
|
175
|
+
6. Commit the generated changeset file
|
|
201
176
|
|
|
202
177
|
The CI will automatically create a PR to update versions when changesets are merged to main, and will publish to npm when that PR is merged.
|
|
203
178
|
|
|
204
179
|
## License
|
|
205
180
|
|
|
206
|
-
|
|
181
|
+
MIT © [Yordan Kanchelov](https://github.com/yordan-kanchelov)
|
package/dist/index.js
CHANGED
|
@@ -79,8 +79,11 @@ async function runMultipleRepositories(repositories, runOnce) {
|
|
|
79
79
|
console.log(`\n🔄 Syncing ${repositories.length} repositories...`);
|
|
80
80
|
for (const repoConfig of repositories) {
|
|
81
81
|
console.log(`\n📦 Repository: ${repoConfig.name}`);
|
|
82
|
-
console.log(`
|
|
82
|
+
console.log(` URL: ${repoConfig.repoUrl}`);
|
|
83
83
|
console.log(` Worktrees: ${repoConfig.worktreeDir}`);
|
|
84
|
+
if (repoConfig.bareRepoDir) {
|
|
85
|
+
console.log(` Bare repo: ${repoConfig.bareRepoDir}`);
|
|
86
|
+
}
|
|
84
87
|
const syncService = new worktree_sync_service_1.WorktreeSyncService(repoConfig);
|
|
85
88
|
services.set(repoConfig.name, syncService);
|
|
86
89
|
try {
|
|
@@ -133,12 +136,12 @@ async function listRepositories(configPath) {
|
|
|
133
136
|
configFile.repositories.forEach((repo, index) => {
|
|
134
137
|
const resolved = configLoader.resolveRepositoryConfig(repo, configFile.defaults, configDir);
|
|
135
138
|
console.log(`${index + 1}. ${resolved.name}`);
|
|
136
|
-
console.log(`
|
|
139
|
+
console.log(` URL: ${resolved.repoUrl}`);
|
|
137
140
|
console.log(` Worktrees: ${resolved.worktreeDir}`);
|
|
138
141
|
console.log(` Schedule: ${resolved.cronSchedule}`);
|
|
139
142
|
console.log(` Run Once: ${resolved.runOnce}`);
|
|
140
|
-
if (resolved.
|
|
141
|
-
console.log(`
|
|
143
|
+
if (resolved.bareRepoDir) {
|
|
144
|
+
console.log(` Bare repo: ${resolved.bareRepoDir}`);
|
|
142
145
|
}
|
|
143
146
|
console.log("");
|
|
144
147
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2CAA6B;AAE7B,+CAA4C;AAC5C,gDAAkC;AAElC,4EAAuE;AACvE,4EAAuE;AACvE,qCAAuF;AACvF,qDAAsD;AAItD,KAAK,UAAU,mBAAmB,CAAC,MAAc;IAC/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAA,2BAAqB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,WAAW,GAAG,IAAI,2CAAmB,CAAC,MAAM,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAE/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC7E,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAElF,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YAEzB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAErD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;gBAC5C,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,YAAgC,EAAE,OAAgB;IACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,gBAAgB,YAAY,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAEnE,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,14 +83,14 @@ class ConfigLoaderService {
|
|
|
83
83
|
throw new Error(`Duplicate repository name: ${repoObj.name}`);
|
|
84
84
|
}
|
|
85
85
|
seenNames.add(repoObj.name);
|
|
86
|
-
if (!repoObj.
|
|
87
|
-
throw new Error(`Repository '${repoObj.name}' must have a '
|
|
86
|
+
if (!repoObj.repoUrl || typeof repoObj.repoUrl !== "string") {
|
|
87
|
+
throw new Error(`Repository '${repoObj.name}' must have a 'repoUrl' property`);
|
|
88
88
|
}
|
|
89
89
|
if (!repoObj.worktreeDir || typeof repoObj.worktreeDir !== "string") {
|
|
90
90
|
throw new Error(`Repository '${repoObj.name}' must have a 'worktreeDir' property`);
|
|
91
91
|
}
|
|
92
|
-
if (repoObj.
|
|
93
|
-
throw new Error(`Repository '${repoObj.name}' has invalid '
|
|
92
|
+
if (repoObj.bareRepoDir !== undefined && typeof repoObj.bareRepoDir !== "string") {
|
|
93
|
+
throw new Error(`Repository '${repoObj.name}' has invalid 'bareRepoDir' property`);
|
|
94
94
|
}
|
|
95
95
|
if (repoObj.cronSchedule !== undefined && typeof repoObj.cronSchedule !== "string") {
|
|
96
96
|
throw new Error(`Repository '${repoObj.name}' has invalid 'cronSchedule' property`);
|
|
@@ -115,13 +115,13 @@ class ConfigLoaderService {
|
|
|
115
115
|
resolveRepositoryConfig(repo, defaults, configDir) {
|
|
116
116
|
const resolved = {
|
|
117
117
|
name: repo.name,
|
|
118
|
-
|
|
118
|
+
repoUrl: repo.repoUrl,
|
|
119
119
|
worktreeDir: this.resolvePath(repo.worktreeDir, configDir),
|
|
120
120
|
cronSchedule: repo.cronSchedule ?? defaults?.cronSchedule ?? "0 * * * *",
|
|
121
121
|
runOnce: repo.runOnce ?? defaults?.runOnce ?? false,
|
|
122
122
|
};
|
|
123
|
-
if (repo.
|
|
124
|
-
resolved.
|
|
123
|
+
if (repo.bareRepoDir) {
|
|
124
|
+
resolved.bareRepoDir = this.resolvePath(repo.bareRepoDir, configDir);
|
|
125
125
|
}
|
|
126
126
|
return resolved;
|
|
127
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.service.js","sourceRoot":"","sources":["../../src/services/config-loader.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAI7B,MAAa,mBAAmB;IAC9B,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;YAEpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEhC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC9E,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,+BAAgC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAAe;QACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,SAAS,GAAG,MAAiC,CAAC;QAEpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,KAAa,EAAE,EAAE;YAC9D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,oBAAoB,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,OAAO,GAAG,IAA+B,CAAC;YAEhD,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,8BAA8B,CAAC,CAAC;YAC9E,CAAC;YAED,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5B,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"config-loader.service.js","sourceRoot":"","sources":["../../src/services/config-loader.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import type { SimpleGit } from "simple-git";
|
|
|
3
3
|
export declare class GitService {
|
|
4
4
|
private config;
|
|
5
5
|
private git;
|
|
6
|
+
private bareRepoPath;
|
|
7
|
+
private mainWorktreePath;
|
|
6
8
|
constructor(config: Config);
|
|
7
9
|
initialize(): Promise<SimpleGit>;
|
|
8
10
|
getGit(): SimpleGit;
|
|
@@ -18,5 +20,6 @@ export declare class GitService {
|
|
|
18
20
|
path: string;
|
|
19
21
|
branch: string;
|
|
20
22
|
}[]>;
|
|
23
|
+
private getWorktreesFromBare;
|
|
21
24
|
}
|
|
22
25
|
//# sourceMappingURL=git.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.service.d.ts","sourceRoot":"","sources":["../../src/services/git.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.service.d.ts","sourceRoot":"","sources":["../../src/services/git.service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,UAAU;IAKT,OAAO,CAAC,MAAM;IAJ1B,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAS;gBAEb,MAAM,EAAE,MAAM;IAK5B,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAsEtC,MAAM,IAAI,SAAS;IAOb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMtC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3D,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB1D,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC,YAAY,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;YAKnD,oBAAoB;CA4BnC"}
|
|
@@ -38,31 +38,77 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.GitService = void 0;
|
|
40
40
|
const fs = __importStar(require("fs/promises"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
41
42
|
const simple_git_1 = __importDefault(require("simple-git"));
|
|
43
|
+
const git_url_1 = require("../utils/git-url");
|
|
42
44
|
class GitService {
|
|
43
45
|
config;
|
|
44
46
|
git = null;
|
|
47
|
+
bareRepoPath;
|
|
48
|
+
mainWorktreePath;
|
|
45
49
|
constructor(config) {
|
|
46
50
|
this.config = config;
|
|
51
|
+
this.bareRepoPath = this.config.bareRepoDir || (0, git_url_1.getDefaultBareRepoDir)(this.config.repoUrl);
|
|
52
|
+
this.mainWorktreePath = path.join(this.config.worktreeDir, "main");
|
|
47
53
|
}
|
|
48
54
|
async initialize() {
|
|
49
|
-
const {
|
|
55
|
+
const { repoUrl } = this.config;
|
|
50
56
|
try {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.
|
|
54
|
-
return this.git;
|
|
57
|
+
// Check if bare repo already exists
|
|
58
|
+
await fs.access(path.join(this.bareRepoPath, "HEAD"));
|
|
59
|
+
console.log(`Bare repository at "${this.bareRepoPath}" already exists. Using it.`);
|
|
55
60
|
}
|
|
56
61
|
catch {
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
// Clone as bare repository
|
|
63
|
+
console.log(`Cloning from "${repoUrl}" as bare repository into "${this.bareRepoPath}"...`);
|
|
64
|
+
// Validate bareRepoPath before using path.dirname()
|
|
65
|
+
if (!this.bareRepoPath || this.bareRepoPath.trim() === "") {
|
|
66
|
+
throw new Error("Invalid bare repository path: path cannot be empty");
|
|
59
67
|
}
|
|
60
|
-
|
|
61
|
-
|
|
68
|
+
const resolvedBareRepoPath = path.resolve(this.bareRepoPath);
|
|
69
|
+
const parentDir = path.dirname(resolvedBareRepoPath);
|
|
70
|
+
// Check if bareRepoPath is a root directory or if parent directory is the same as bareRepoPath
|
|
71
|
+
if (parentDir === resolvedBareRepoPath || parentDir === "/" || /^[A-Za-z]:[\\/]?$/.test(parentDir)) {
|
|
72
|
+
throw new Error(`Invalid bare repository path: "${this.bareRepoPath}" is a root directory or has invalid parent directory`);
|
|
73
|
+
}
|
|
74
|
+
await fs.mkdir(path.dirname(resolvedBareRepoPath), { recursive: true });
|
|
75
|
+
await (0, simple_git_1.default)().clone(repoUrl, this.bareRepoPath, ["--bare"]);
|
|
62
76
|
console.log("✅ Clone successful.");
|
|
63
|
-
this.git = (0, simple_git_1.default)(repoPath);
|
|
64
|
-
return this.git;
|
|
65
77
|
}
|
|
78
|
+
// Configure bare repository for worktrees
|
|
79
|
+
const bareGit = (0, simple_git_1.default)(this.bareRepoPath);
|
|
80
|
+
// Check if remote.origin.fetch config already exists to prevent duplicates
|
|
81
|
+
const fetchRefspec = "+refs/heads/*:refs/remotes/origin/*";
|
|
82
|
+
try {
|
|
83
|
+
const existingFetch = await bareGit.raw(["config", "--get-all", "remote.origin.fetch"]);
|
|
84
|
+
if (!existingFetch.includes(fetchRefspec)) {
|
|
85
|
+
await bareGit.addConfig("remote.origin.fetch", fetchRefspec);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Config doesn't exist, add it
|
|
90
|
+
await bareGit.addConfig("remote.origin.fetch", fetchRefspec);
|
|
91
|
+
}
|
|
92
|
+
// Check if main worktree exists
|
|
93
|
+
let needsMainWorktree = true;
|
|
94
|
+
try {
|
|
95
|
+
const worktrees = await this.getWorktreesFromBare(bareGit);
|
|
96
|
+
needsMainWorktree = !worktrees.some((w) => w.path === this.mainWorktreePath);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// If worktree list fails, assume we need main worktree
|
|
100
|
+
}
|
|
101
|
+
if (needsMainWorktree) {
|
|
102
|
+
// Create main worktree if it doesn't exist
|
|
103
|
+
console.log(`Creating main worktree at "${this.mainWorktreePath}"...`);
|
|
104
|
+
await fs.mkdir(this.config.worktreeDir, { recursive: true });
|
|
105
|
+
// Use absolute path for worktree add to avoid relative path issues
|
|
106
|
+
const absoluteWorktreePath = path.resolve(this.mainWorktreePath);
|
|
107
|
+
await bareGit.raw(["worktree", "add", absoluteWorktreePath, "main"]);
|
|
108
|
+
}
|
|
109
|
+
// Use the main worktree as our primary git instance
|
|
110
|
+
this.git = (0, simple_git_1.default)(this.mainWorktreePath);
|
|
111
|
+
return this.git;
|
|
66
112
|
}
|
|
67
113
|
getGit() {
|
|
68
114
|
if (!this.git) {
|
|
@@ -81,18 +127,20 @@ class GitService {
|
|
|
81
127
|
return branches.all.filter((b) => b.startsWith("origin/")).map((b) => b.replace("origin/", ""));
|
|
82
128
|
}
|
|
83
129
|
async addWorktree(branchName, worktreePath) {
|
|
84
|
-
const
|
|
85
|
-
|
|
130
|
+
const bareGit = (0, simple_git_1.default)(this.bareRepoPath);
|
|
131
|
+
// Use absolute path for worktree add to avoid relative path issues
|
|
132
|
+
const absoluteWorktreePath = path.resolve(worktreePath);
|
|
133
|
+
await bareGit.raw(["worktree", "add", absoluteWorktreePath, branchName]);
|
|
86
134
|
console.log(` - Created worktree for '${branchName}'`);
|
|
87
135
|
}
|
|
88
136
|
async removeWorktree(worktreePath) {
|
|
89
|
-
const
|
|
90
|
-
await
|
|
137
|
+
const bareGit = (0, simple_git_1.default)(this.bareRepoPath);
|
|
138
|
+
await bareGit.raw(["worktree", "remove", worktreePath, "--force"]);
|
|
91
139
|
console.log(` - ✅ Safely removed stale worktree at '${worktreePath}'.`);
|
|
92
140
|
}
|
|
93
141
|
async pruneWorktrees() {
|
|
94
|
-
const
|
|
95
|
-
await
|
|
142
|
+
const bareGit = (0, simple_git_1.default)(this.bareRepoPath);
|
|
143
|
+
await bareGit.raw(["worktree", "prune"]);
|
|
96
144
|
console.log("Pruned worktree metadata.");
|
|
97
145
|
}
|
|
98
146
|
async checkWorktreeStatus(worktreePath) {
|
|
@@ -123,8 +171,11 @@ class GitService {
|
|
|
123
171
|
return branchSummary.current;
|
|
124
172
|
}
|
|
125
173
|
async getWorktrees() {
|
|
126
|
-
const
|
|
127
|
-
|
|
174
|
+
const bareGit = (0, simple_git_1.default)(this.bareRepoPath);
|
|
175
|
+
return this.getWorktreesFromBare(bareGit);
|
|
176
|
+
}
|
|
177
|
+
async getWorktreesFromBare(bareGit) {
|
|
178
|
+
const result = await bareGit.raw(["worktree", "list", "--porcelain"]);
|
|
128
179
|
const worktrees = [];
|
|
129
180
|
const lines = result.trim().split("\n");
|
|
130
181
|
let currentWorktree = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.service.js","sourceRoot":"","sources":["../../src/services/git.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;
|
|
1
|
+
{"version":3,"file":"git.service.js","sourceRoot":"","sources":["../../src/services/git.service.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B"}
|
package/dist/utils/cli.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface CliOptions extends Partial<Config> {
|
|
|
3
3
|
config?: string;
|
|
4
4
|
filter?: string;
|
|
5
5
|
list?: boolean;
|
|
6
|
+
bareRepoDir?: string;
|
|
6
7
|
}
|
|
7
8
|
export declare function parseArguments(): CliOptions;
|
|
8
9
|
export declare function isInteractiveMode(config: Partial<Config>): boolean;
|
package/dist/utils/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,cAAc,IAAI,UAAU,CA0D3C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAElE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwB5D"}
|