web-dev-qa-db-ja.com

「ヘッドリビジョンではありません!」 Mercurial Hgで

私は小さな組織で働いており、開発者は2人だけで、Mercurialバージョン管理tortoisehg-2.2.2-hg-2.0.2-x86を使用しています。 Mercurialは初めてです。

programmerAprogrammerBを検討してください。

programerAマシンで、"EFSL"という名前のリポジトリとクライアントを作成しました。 programmerBは、単にprogrammerAマシンリポジトリを指す"Uthaya Kumar"という名前のクライアントです。

programmerAマシンの変更セットをプルすると、新しいブランチが作成され、作業ディレクトリとリポジトリの両方に"Not a head revision!"エラーも表示されます。

programmerBでは問題ありません。

以下のスクリーンショットをご覧ください。

前もって感謝します。

Screen Shot 1Screen Shot 2Screen Shot 3

47
Uthay

最初のスクリーンショットを調べて、一番上の行がRev列の8+を示していることを確認してください。これは、作業コピーがリビジョン8に基づいていることを意味します。行をたどると、同じことを示すリビジョン8で結合することもわかります。

これを解決するには、変更を加えたかどうかに応じて2つの方法があります。

  • 変更を加えていない場合は、リビジョン13を右クリックして、更新...を選択します。最新の変更に更新します。

  • 変更を行った場合は、それらの変更をコミットし、リビジョン13を右クリックしてMerge with local ...を選択する必要があります。これにより、マージを処理するウィザードが表示されます。

最後のスクリーンショットでは、作業コピーがまったくないようですので、上記の更新手順を使用してリビジョン13に更新する必要があります。

TortoiseHgの設定を変更することにより、updateを自動的に発生させることができます。

  1. WorkbenchからFile> Settingsを選択します
  2. 上部の適切なタブを選択して、設定を変更する場所を選択します。選択肢は、ユーザーに対してグローバルであるか、このリポジトリーのみです。
  3. 左のリストでWorkbenchを選択します
  4. 右側のセクションで、プル操作後というラベルのドロップダウンリストを探します
  5. リストからpdateを選択します

これにより、プルを行うたびに最新版に更新され、最初のスクリーンショットでの問題が回避されます。あなたと他の開発者が変更を加えた場合、まだ手動でマージする必要があります。

そのリストの他のオプションはrebasefetchで、どちらも有効な適切な拡張機能に依存しており、高度な使用のみを目的としています。

56
Steve Kaye

これはMercurialの完全に正常で正しい動作です。現在、作業ディレクトリは変更セット8「マージ2」に更新されています。プル操作では、作業ディレクトリの内容は変更されません。欠落している変更セットを取得し、履歴グラフに追加するだけです。プルした後も、まだチェンジセット8で作業しています。「ヘッドリビジョンではありません」というメッセージが表示されます。新しいブランチ。これはあなたがしたいこともしたくないこともあります。通常、新しいチェンジセットを取得した後、最新のチェンジセットを右クリックして[更新...]を選択し、作業ディレクトリを最新のチェンジセットに更新します。

追伸TortoiseHGの最新バージョンを使用していません。最新バージョンに更新してください。多くの改善が含まれており、多くのバグが解決されています。

32
Eiver