2012-02-21 10 views
2

私は、a.javaとb.javaを内部に持つリリース番号500の特定のステータスファイルを持つ「開発」というブランチを持っています。マージ中のMercurialファイルの削除

ステップ - a.javaが開発から削除され、次にプッシュされました(501)。 - (my_branch)という501からブランチを作成します。 - my_branchでは、新しいバージョンのa.javaと新しいファイルc.javaを追加しました。

問題 my_branchを開発中の、mercurial delete a.javaとマージしようとします。結果はb.javaとc.javaのmy_branchです。

私は、mercurialがa.javaをあらかじめ削除していることを認識しており、警告メッセージを表示せずにmy_branchに再度追加してもファイルを削除すると思います。

my_branchのファイルを強制的にマージできますか?

答えて

2

私は説明したシナリオを試しました。水銀は以前に削除されたファイルの新しいバージョンを削除しません。

再現手順:

  • は、新しいHGリポジトリを作成します
  • 、変更コミット新しいファイルA.TXTを作成する - 、バージョン1
  • 削除ファイルA.TXTを変更をコミット - バージョン2
  • ファイルb.txtを作成して変更をコミットする - バージョン3
  • バージョン2へのアップデートhg update -C 2
  • 新しいファイルをもう一度作成するa.txt、coファイル内の二つのヘッドの結果をマージMMIT変更(新しいヘッドを作成します)

はA.TXTと

0

B.TXT私はあなたの説明に欠けているいくつかの詳細がありますことを、@ bbaja42でよ - これはしていません通常の使用で発生します。

これは簡単です。マージをコミットする前に必要なファイルを置くだけです。マージは常にMercurialで手動でコミットされます。

hg update my_branch 
hg merge developing 
hg revert -r my_branch a.java 
hg add a.java # might be unnecessary, but it can't hurt 
hg commit -m 'committed the merge with a.java from my_branch in place' 
関連する問題