[解決済み】Mercurial:最後のコミットを修正する方法は?
質問
の対極にあるものを探しています。
git commit --amend
Mercurial のコミット、つまり作業コピーをリンクしているコミットを変更する方法です。私は最後のコミットにのみ興味があり、任意の以前のコミットには興味がありません。
このamend-procedureの要件は以下の通りです。
-
可能であれば、拡張機能を必要としないこと。そのためには デフォルト以外の拡張機能を必要としない つまり、Mercurial の公式インストールに付属していないエクステンションです。
-
修正するコミットが現在のブランチの1つ前のものである場合。 新しいヘッドなし を作成する必要があります。もしそのコミットが head でないなら、新しい head が作成されるかもしれません。
-
という手順が必要です。 安全 何らかの理由で修正に失敗した場合、修正前と同じ作業コピーとリポジトリの状態を復元できるようにしたい。言い換えれば、修正自体が失敗する可能性がある場合、作業コピーとリポジトリの状態を復元するフェイルセーフの手順が必要です。ここでいう失敗とは、ファイルシステム関連の問題(アクセス制限、書き込みのためにファイルをロックできない、など)ではなく、amend-procedureの性質に起因するもの(たとえばコンフリクトなど)です。
アップデート(1)です。
- というプロシージャである必要があります。 自動化可能 そのため、ユーザーの操作を必要とせず、GUIクライアントで実行することができます。
アップデート(2)。
- 作業ディレクトリにあるファイルに触れてはいけません(特定の変更されたファイルに対してファイルシステムロックがかかる場合があります)。これは特に、可能なアプローチは、クリーンな作業ディレクトリを必要としないかもしれないことを意味します。
解決方法は?
のリリースに伴い
マーキュリアル2.2
を使用することができます。
--amend
オプションで
hg commit
最後のコミットを現在の作業ディレクトリで更新する場合
から コマンドラインリファレンス :
--amend フラグを使うと、作業ディレクトリの親を、現在 hg status で報告されている変更に加えて、親での変更を含む新しいコミットで修正することができます (ある場合)。古いコミットは .hg/strip-backup にあるバックアップバンドルに保存されます (復元方法については hg help bundle と hg help unbundle を参照してください)。
メッセージ、ユーザ、日付は指定がない限り修正されたコミットから取得します。コマンドラインでメッセージが指定されていない場合、エディタは修正されたコミットのメッセージで開かれます。
このメカニズムが素晴らしいのは、比較的新しい "Phases" 機能に依存しているため、ローカルリポジトリの外部ですでに利用可能になっている履歴を変更するような更新を防ぐことができ、"safe" な点です。
関連
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] git commitの代わりに行った "git commit --amend "を元に戻すには?
-
[解決済み] プッシュ後に git のコミットメッセージを変更する (誰もリモートからプルしていないと仮定した場合)
-
[解決済み] Git で古いコミットのタイムスタンプを変更するにはどうしたらいいですか?
-
[解決済み] コミットメッセージを変更せずに(以前のものを再利用して)コミットを修正する方法は?
-
[解決済み] 修正したコミットをリモートの Git リポジトリにプッシュするにはどうしたらいいですか?
-
[解決済み】TortoiseHgのパスワード保存について
-
[解決済み] すべて破棄して、最新リビジョンのクリーンコピーを取得しますか?
-
[解決済み] Mercurial のエラー: ユーザー名が指定されずに中止する
-
[解決済み] Mercurialでコードの作者を探す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SourceTreeで強制プッシュ
-
[解決済み] Mercurialで不正なコミットメッセージを編集するには?重複
-
[解決済み】Mercurialでユーザー名とパスワードを保存する方法は?
-
[解決済み】Mercurialの'hg remove'を全ての見つからないファイルに対して行うには?
-
[解決済み] [Solved] Mercurialで作業ディレクトリから未追跡のファイルをすべて削除するには?
-
[解決済み】マーキュリアル。ブランチの名前を変更できますか?
-
[解決済み】Mercurial:最後のコミットを修正する方法は?
-
[解決済み] 履歴から削除せずに変更を放棄する
-
[解決済み] すべて破棄して、最新リビジョンのクリーンコピーを取得しますか?
-
[解決済み] Mercurial のエラー: ユーザー名が指定されずに中止する