clawt 2.12.0 → 2.12.1
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/README.md +5 -8
- package/dist/index.js +2 -2
- package/dist/postinstall.js +1 -1
- package/docs/spec.md +1 -1
- package/package.json +1 -1
- package/src/commands/merge.ts +1 -1
- package/src/constants/messages/merge.ts +2 -1
- package/src/constants/messages.ts +2 -1
- package/tests/unit/commands/merge.test.ts +2 -1
package/README.md
CHANGED
|
@@ -19,22 +19,19 @@ npm i -g clawt
|
|
|
19
19
|
```bash
|
|
20
20
|
# 1. 在项目根目录(包含 .git 的目录)下执行
|
|
21
21
|
# 2. 并行执行 3 个任务,每个任务在独立的 worktree 中运行
|
|
22
|
-
clawt run -b
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
--tasks "实现密码重置功能"
|
|
22
|
+
clawt run -b <branch-1>
|
|
23
|
+
clawt run -b <branch-2>
|
|
24
|
+
clawt run -b <branch-3>
|
|
26
25
|
|
|
27
26
|
# 3. 查看所有 worktree 状态
|
|
28
27
|
clawt status
|
|
29
28
|
|
|
30
29
|
# 4. 验证某个分支的变更(在主 worktree 中测试)
|
|
31
|
-
clawt validate -b
|
|
30
|
+
clawt validate -b branch-1
|
|
32
31
|
|
|
33
32
|
# 5. 确认无误后合并到主分支
|
|
34
|
-
clawt merge -b
|
|
33
|
+
clawt merge -b branch-1 -m "feat: 实现xxx功能"
|
|
35
34
|
|
|
36
|
-
# 6. 清理不需要的 worktree
|
|
37
|
-
clawt remove -b feature-auth
|
|
38
35
|
```
|
|
39
36
|
|
|
40
37
|
## 命令一览
|
package/dist/index.js
CHANGED
|
@@ -119,7 +119,7 @@ var MERGE_MESSAGES = {
|
|
|
119
119
|
/** merge 后清理 worktree 和分支成功 */
|
|
120
120
|
WORKTREE_CLEANED: (branch) => `\u2713 \u5DF2\u6E05\u7406 worktree \u548C\u5206\u652F: ${branch}`,
|
|
121
121
|
/** 目标 worktree 有未提交修改但未指定 -m */
|
|
122
|
-
TARGET_WORKTREE_DIRTY_NO_MESSAGE:
|
|
122
|
+
TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath) => `${worktreePath} \u6709\u672A\u63D0\u4EA4\u7684\u4FEE\u6539\uFF0C\u8BF7\u901A\u8FC7 -m \u53C2\u6570\u63D0\u4F9B\u63D0\u4EA4\u4FE1\u606F`,
|
|
123
123
|
/** 目标 worktree 既干净又无本地提交 */
|
|
124
124
|
TARGET_WORKTREE_NO_CHANGES: "\u76EE\u6807 worktree \u6CA1\u6709\u4EFB\u4F55\u53EF\u5408\u5E76\u7684\u53D8\u66F4\uFF08\u5DE5\u4F5C\u533A\u5E72\u51C0\u4E14\u65E0\u672C\u5730\u63D0\u4EA4\uFF09",
|
|
125
125
|
/** merge 命令检测到 validate 状态的提示 */
|
|
@@ -2205,7 +2205,7 @@ async function handleMerge(options) {
|
|
|
2205
2205
|
const targetClean = isWorkingDirClean(targetWorktreePath);
|
|
2206
2206
|
if (!targetClean) {
|
|
2207
2207
|
if (!options.message) {
|
|
2208
|
-
throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE);
|
|
2208
|
+
throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE(targetWorktreePath));
|
|
2209
2209
|
}
|
|
2210
2210
|
gitAddAll(targetWorktreePath);
|
|
2211
2211
|
gitCommit(options.message, targetWorktreePath);
|
package/dist/postinstall.js
CHANGED
|
@@ -111,7 +111,7 @@ var MERGE_MESSAGES = {
|
|
|
111
111
|
/** merge 后清理 worktree 和分支成功 */
|
|
112
112
|
WORKTREE_CLEANED: (branch) => `\u2713 \u5DF2\u6E05\u7406 worktree \u548C\u5206\u652F: ${branch}`,
|
|
113
113
|
/** 目标 worktree 有未提交修改但未指定 -m */
|
|
114
|
-
TARGET_WORKTREE_DIRTY_NO_MESSAGE:
|
|
114
|
+
TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath) => `${worktreePath} \u6709\u672A\u63D0\u4EA4\u7684\u4FEE\u6539\uFF0C\u8BF7\u901A\u8FC7 -m \u53C2\u6570\u63D0\u4F9B\u63D0\u4EA4\u4FE1\u606F`,
|
|
115
115
|
/** 目标 worktree 既干净又无本地提交 */
|
|
116
116
|
TARGET_WORKTREE_NO_CHANGES: "\u76EE\u6807 worktree \u6CA1\u6709\u4EFB\u4F55\u53EF\u5408\u5E76\u7684\u53D8\u66F4\uFF08\u5DE5\u4F5C\u533A\u5E72\u51C0\u4E14\u65E0\u672C\u5730\u63D0\u4EA4\uFF09",
|
|
117
117
|
/** merge 命令检测到 validate 状态的提示 */
|
package/docs/spec.md
CHANGED
|
@@ -751,7 +751,7 @@ clawt merge [-m <commitMessage>]
|
|
|
751
751
|
5. **根据目标 worktree 状态决定是否需要提交**
|
|
752
752
|
- 检测目标 worktree 工作区是否干净(`git status --porcelain`)
|
|
753
753
|
- **工作区有未提交修改**:
|
|
754
|
-
- 如果用户未提供 `-m`,提示
|
|
754
|
+
- 如果用户未提供 `-m`,提示 `<worktreePath> 有未提交的修改,请通过 -m 参数提供提交信息`(其中 `<worktreePath>` 为目标 worktree 的完整路径),退出
|
|
755
755
|
- 提供了 `-m` → 执行提交:
|
|
756
756
|
```bash
|
|
757
757
|
cd ~/.clawt/worktrees/<project>/<branchName>
|
package/package.json
CHANGED
package/src/commands/merge.ts
CHANGED
|
@@ -165,7 +165,7 @@ async function handleMerge(options: MergeOptions): Promise<void> {
|
|
|
165
165
|
if (!targetClean) {
|
|
166
166
|
// 目标 worktree 有未提交修改,必须提供 -m
|
|
167
167
|
if (!options.message) {
|
|
168
|
-
throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE);
|
|
168
|
+
throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE(targetWorktreePath));
|
|
169
169
|
}
|
|
170
170
|
gitAddAll(targetWorktreePath);
|
|
171
171
|
gitCommit(options.message, targetWorktreePath);
|
|
@@ -11,7 +11,8 @@ export const MERGE_MESSAGES = {
|
|
|
11
11
|
/** merge 后清理 worktree 和分支成功 */
|
|
12
12
|
WORKTREE_CLEANED: (branch: string) => `✓ 已清理 worktree 和分支: ${branch}`,
|
|
13
13
|
/** 目标 worktree 有未提交修改但未指定 -m */
|
|
14
|
-
TARGET_WORKTREE_DIRTY_NO_MESSAGE:
|
|
14
|
+
TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath: string) =>
|
|
15
|
+
`${worktreePath} 有未提交的修改,请通过 -m 参数提供提交信息`,
|
|
15
16
|
/** 目标 worktree 既干净又无本地提交 */
|
|
16
17
|
TARGET_WORKTREE_NO_CHANGES: '目标 worktree 没有任何可合并的变更(工作区干净且无本地提交)',
|
|
17
18
|
/** merge 命令检测到 validate 状态的提示 */
|
|
@@ -45,7 +45,8 @@ export const MESSAGES = {
|
|
|
45
45
|
/** 请提供提交信息 */
|
|
46
46
|
COMMIT_MESSAGE_REQUIRED: '请提供提交信息(-m 参数)',
|
|
47
47
|
/** 目标 worktree 有未提交修改但未指定 -m */
|
|
48
|
-
TARGET_WORKTREE_DIRTY_NO_MESSAGE:
|
|
48
|
+
TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath: string) =>
|
|
49
|
+
`${worktreePath} 有未提交的修改,请通过 -m 参数提供提交信息`,
|
|
49
50
|
/** 目标 worktree 既干净又无本地提交 */
|
|
50
51
|
TARGET_WORKTREE_NO_CHANGES: '目标 worktree 没有任何可合并的变更(工作区干净且无本地提交)',
|
|
51
52
|
/** 检测到用户中断 */
|
|
@@ -26,7 +26,8 @@ vi.mock('../../../src/constants/index.js', () => ({
|
|
|
26
26
|
MERGE_SQUASH_PENDING: (path: string, branch: string) => `请手动提交: ${path}`,
|
|
27
27
|
MERGE_VALIDATE_STATE_HINT: (branch: string) => `分支 ${branch} 存在 validate 状态`,
|
|
28
28
|
MAIN_WORKTREE_DIRTY: '主 worktree 有未提交的更改',
|
|
29
|
-
TARGET_WORKTREE_DIRTY_NO_MESSAGE:
|
|
29
|
+
TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath: string) =>
|
|
30
|
+
`${worktreePath} 有未提交修改,请提供 -m 参数`,
|
|
30
31
|
TARGET_WORKTREE_NO_CHANGES: '没有可合并的变更',
|
|
31
32
|
MERGE_CONFLICT: '合并冲突',
|
|
32
33
|
PULL_CONFLICT: 'pull 冲突',
|