「コミットログ間違えた」というコミットログを 「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を押して編集モードに移行
- 望みの形にパッチを編集