FR: split: 将更改 ID 和书签保留在一起,并添加 CLI 标志以选择后继提交
作者: jgirata创建于 2026年9月14日更新于 2026年9月15日
您的特性请求与问题有关吗 ? 请说明。
此特性请求取代了 # 10028 。 它提出了其中提议的功能的一个子集。
当`jj 拆分 ' 将一分为二时,它目前将原来的** 更改ID移动到选定的更改**(第一/父母承诺),并将其余更改**(第二/子女承诺)留下原来的** 书签。
将承诺人的身份划分为两个导致的承诺令人困惑并造成出人意料的行为。 此外,大多数用户预计,由此产生的承诺都得不到更改的ID和书签。
在某些情况下,用户希望更改的ID和书签(“身份”)随其余的更改一起到承诺处去,而用户希望随选定的更改一起到承诺处去。
- 在将重构承诺从特征承诺中分出时,希望将身份与所余变化(儿童承诺)放在一起,同时打算打开或更新单一的公关,同时将两者都承诺。
- 将身份与选定的修改(父母承诺)放在一起,是在将一项承诺分入堆叠式工作流程(如Gerrit或Critique,其中1个承诺=1 CL)或将两个逻辑上独立的特征分入单独的公关时。
描述你想要的解决方案
** 保留更改的身份证和书签并加:** 获得原更改ID的承诺,总是会得到原承诺的书签.
** 过失行为:** 默认情况下,包含用户剩余更改(孩子依次分出)的承诺会保留原更改的ID和书签(匹配jj分出-B的行为-和https://GitHub.com/jj-vcs/jj/pull/6466)。
** 选择继任者的CLI 旗:** 引入 CLI 旗来选择哪个承诺保留原更改 ID 和书签 。 具体而言:
*`-身份=保留'(违约):剩余/儿童犯罪保留身份和书签。
- `-身份=选定':选定/父母承诺保留身份和书签。
** 删除split.legacy-bookmark-beavior': 配置设置split.legacy-bookmark-beavior'将干脆删除。 此设置从未被记录过, 并且这个 FR 提议没有可以迁移到旧设置的新配置设置 。 `ConfigMigation Rule: Custom'将用来告诉用户使用新的CLI旗取而代之.
描述你考虑过的其他选择
** 旗帜命名和语法:**
我个人更喜欢“继承人”一词,
-保持选择'/-保持保留': 这比 " -- -- 身份 " 略短,但从旗帜名称看含义不明确。 *`-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 虽然对一些用户来说是直观的,但它有取舍 . . . . . . .
内容来源: jj-vcs/jj