さまざまな機能を簡単に操作できるようにするため、レポで hg ブックマークを使用しています。Mercurial の問題点は、すべてのコミットがブランチに関連付けられていることです。だから、私がしたことは、多くのローカル変更があり、同じブランチに多くのプルされた (ただし更新されていない変更) があるということです。つまり、私のローカル リポジトリは次のようになります。
default -------E-F---------
newf -A-C-D---------J---
newf,bmark --\--------H-I----K
newf
リモートにあり、J にプルアップされたブランチであり、bmark
私が作成したブックマークです。newf
でマークされた 内のすべては、bmark
厳密に私のマシンに対してローカルです。
ここで、H、I、および K (実際には、20 個までの変更があります) を別のブランチに再割り当てして、リポジトリにプッシュできるようにします。私の作業コピー (コミットされていない変更がまだいくつかあります) が可能な限り影響を受けないように、Mercurial でそれを行う方法はありますか?
「リベース」を使用するという提案に基づいて、次の手順を試しました。
hg up -r A
hg branch newbranch && hg ci -m "will hold some development"
# This effectively made a commit X
hg up bmark
hg rebase -d newbranch
フェーズに関するいくつかのエラーが発生することは別として、リベースにより、予期しないものが得られます。
default -------E-F---------
newf -A-C-D---------J---
newf,bmark \ -----H-I----K
newbranch \X/
つまり、H
、I
、およびは引き続きおよびにK
属しているとリストされており、ブランチ に属するコミットで一番上にあります。ここで何か間違ったことをしていますか?newf
bmark
X
newbranch