「コミットログ間違えた」というコミットログを 「add file3」に変更してください
$ hg qimport -r 3:tip $ hg qgoto 0 $ hg qrefresh -e $ hg qpush -a $ hg qfinish -a
hg qpushを行ってください。パッチの適用に失敗します。
1.次のコマンドでリポジトリの状態を確認してください。
hg qseries --summary hg diff hg qdiff hg status
2.hg qrefreshを使って「サシスセソ」を「ざじずぜぞ」にする パッチを作成してください。
$ hg qpush $ vi 50on.txt $ hg qrefresh
mqのコマンドのみで履歴を一直線にしてください。
$ hg glog $ hg qimport -r tip $ hg qpop -a $ hg up $ hg qpush $ hg qfinish -a $ hg glog
mqのコマンドのみで履歴を一直線にしてください。
$ hg qimport -r 5 $ hg qpop $ hg up $ hg qimport -r 4 $ hg qpop $ hg up $ hg qimport -r 3 $ hg qpop $ hg up $ hg qimport -r 2 $ hg qpop $ hg up $ hg qpush -a $ hg qfinish -a
hg qpush --moveを利用せずにコミットをファイルの番号順に並び替えてください
$ hg slog $ hg qimport -r 1:tip $ hg qser $ hg qrename 1.diff file5.diff $ hg qrename 2.diff file3.diff $ hg qrename 3.diff file2.diff $ hg qrename 4.diff file4.diff $ hg qrename 5.diff file1.diff $ hg qser $ hg qpop -a $ vi .hg/patches/series $ hg qpush -a $ hg qfinish -a
Note
hg slog は以下のようなエイリアス
[alias]
slog = log --template '{rev}:{node|short} {desc|firstline}\n'
hg qpush --moveを利用してコミットをファイルの番号順に並び替えてください
$ hg slog $ hg qimport -r 1:tip $ hg qser $ hg qrename 1.diff file5.diff $ hg qrename 2.diff file3.diff $ hg qrename 3.diff file2.diff $ hg qrename 4.diff file4.diff $ hg qrename 5.diff file1.diff $ hg qser $ hg qpop -a $ hg qpush --move file1.diff $ hg qpush --move file2.diff $ hg qpush --move file3.diff $ hg qpush --move file4.diff $ hg qpush --move file5.diff $ hg qser $ hg qfinish -a
1.revision 1からrevison 5までをhg qfoldを使って 1つのコミットにしてください。
2.コミットログを「add file1, file2, file3, file4 and file5」 に変更してください。
$ hg glog $ hg qimport -r 1:tip $ hg qgoto 0 $ hg qser $ hg qfold 2.diff 3.diff 4.diff 5.diff $ hg qser $ hg qrefresh -e $ hg qfinish -a
1.revision 1, revision 3, revison 5までをhg qfoldを使って 1つのコミットにしてください。
2.コミットログは「add odd files」 に変更してください。
3.revision 2, revision 4までをhg qfoldを使って 1つのコミットにしてください。
4.コミットログは「add even files」 に変更してください。
$ hg glog $ hg qimport -r 1:tip $ hg qser $ hg qgoto 0 $ hg qpush --move 3.diff $ hg qpush --move 5.diff $ hg qser $ hg qgoto 0 $ hg qfold 3.diff 5.diff $ hg qrefresh -e $ hg qpush $ hg qser $ hg qfold 4.diff $ hg qrefresh -e $ hg qser $ hg qpush $ hg qfinish -a
file1からfile5までが1つのコミットになっています。 1つのコミットで1つのファイルが追加されるように コミットを分割してください。
$ hg glog $ hg qimport -r tip $ hg qdiff $ hg qrefresh -m "add file1" file1 $ hg qnew -m "add file2" 2.diff file2 $ hg qnew -m "add file3" 3.diff file3 $ hg qnew -m "add file4" 4.diff file4 $ hg qnew -m "add file5" 5.diff file5 $ hg qfinish -a
1.revision1で5行追加されています。 1コミットで1行追加するようにコミットを分割してください。
$ hg log $ hg qimport -r tip $ hg qrefresh -X 50on.txt $ hg st $ hg qrefresh -e -i $ hg qnew -e 2.diff -i $ hg qnew -e 3.diff -i $ hg qnew -e 4.diff -i $ hg qnew -e 5.diff -i $ hg qnew -e 6.diff $ hg qser $ hg qfinish -a
Note
hg qrefresh -i は未コミットの変更を対象とするため、 hg qrefresh -X でパッチの内容を空にしている
Note
hg qnew/qrefresh -i の使い方
- 最初に対象のパッチを選択 (単にENTERキーを押す)
- パッチを選択する画面でeを押して編集モードに移行
- 望みの形にパッチを編集