2011-12-07 16 views
1

これは複雑なシナリオですが、これは私の状況です。 ファイル(* .doc)が更新され、SharePointに送信されています。私はMercurialでそれらを欲しい。これらのファイルを、水銀リポジトリ(クローン)としてマークされたWindows共有にエクスポートするスクリプトがあり、自動的にファイルを中央の水銀のリポジトリにプッシュすることを意図しています。Mercurial:外部ソースからファイルをプッシュ

ファイルを最初にエクスポートした結果、これらのファイルはバージョン管理外としてマークされていました。単純

hg add 
hg push 

ファイルを目的の中央レポに移動しました。これらのファイルは、夜間にWindows共有にエクスポートされます(ファイルを上書きします)。しかし、水銀は変化を認識しません。

hg status 

結果が空です。

私の質問は、どのように変更を認識してプッシュすることができるのですか?

おかげ

+0

ファイルが異なるのは確かですか?それとも上書きされたのでしょうか? hgのステータス結果が空の場合、ファイルが変更されていないことを意味します。あなたのワークフローには何も問題は生じません。ディレクトリ内でファイルが変更された場合、Mercurialはそのファイルを表示します。 – krtek

+0

@krtekはいファイル(またはその一部)が異なっています。はい、上書きされます。 – TDF

答えて

0

私の理解では、2つのレポ、一つの中心レポのクローンを持っているということです。あなたはここから別のリポジトリとしてそれらを考慮する必要があります。 HGの状態のみレポに変更をもたらすレポでworking copyと自然のままのファイルの違い(.hg directory) を示しては、ここでhg logないhg status

に表示されます通常の手順です。

   +------+   +------+ 
       |Repo A|   |Repo B| 
       +------+   +------+ 
New File  |     | 
.............> |     | 
       | hg add   | 
       | hg commit   | 
Files in repo A |     | 
--------------- |     | 
       |  hg push  | 
       |------------------ | Files in Repo B 
       |  hg pull  | 
       |     | hg update 
       |     | hg status (empty) 
       |     | hg log (Will show new 
                version) 

MSワードのDocファイルもバイナリファイルとみなされ、バージョンコントロールの大きな利点は得られません。

残念ですが少しペンパンティですが、レポと作業ディレクトリの違いは十分な混乱を招きます。レポで取得したファイルは、hg updateと表示されます。

 +------------+     +---------+ 
     |Your working|     |Your Repo| 
     |directory |     |.hg dir | 
     +------------+     +---------+ 
      |        | 
      |  hg status   | 
      |-----------------------------| 
      | shows difference between | hg pull <-- 
      |  working dir and repo |------------- 
      |        | <-- hg push 
      |        |  from another repo 
      |        | 
      |   hg update   | hg pull or push 
      | <-------------------------- | deals with repo 
      | This brings latest change | and not working 
      | version from repo to  | dir 
        working dir 
+0

あなたは正しいですが、それらは2つの別々のリポジトリであり、ローカルリポジトリにインポートされたファイルは上書きされています。それらがバイナリであることは事実ですが、私たちの主な関心事は、TortoiseHg VisualDiffとDocDiffツールを使って変更を区別できることです。 – TDF

+0

上書きされるファイルは、「hg add」ルートをまったく通過してはいけません。新しいファイルだけが "hg add"を経由しなければなりません。他に何が間違っているのか違っているのかを理解しようとするだけです。ありがとう – pyfunc

+0

作業ディレクトリへの最初のエクスポートで、hg statusとhg addが期待通りに機能していたのを修正しました。どのフォローアップエクスポートでも(ユーザーが変更してSharePointに投稿した後)、Hgは上書きされたファイルが変更されたことを認識しません。 – TDF

関連する問題