50

I am working in a small organisation, only two developers and we use Mercurial version control tortoisehg-2.2.2-hg-2.0.2-x86. I am new to mercurial.

Consider programmerA, programmerB.

In programerA machine I created a repository and a client with name "EFSL". programmerB is simply a client with name "Uthaya Kumar" pointing at programmerA machine repository.

When I am pulling change set in programmerA machine it creates a new branch, and it also shows "Not a head revision!" error in both working directory and repository.

In programmerB it is fine.

Please see the screenshots below.

Thanks in advance.

Screen Shot 1 Screen Shot 2 Screen Shot 3

4

2 に答える 2

58

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

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

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

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

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

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

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

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

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

于 2013-01-18T08:45:35.227 に答える
32

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

PSあなたはTortoiseHGの最新バージョンを使用していません。最新バージョンに更新してください。それは多くの改善を含み、多くのバグを解決します。

于 2013-01-18T08:52:05.177 に答える