2

HostAからリモートにプッシュされたファイル(RemoteTest.txt)に変更があります。HostBでは、最後のプッシュがない状態になっています。

「gitdiff」でbashにアクセスすると、変更が表示されます。

$ git diff origin/master head
 diff --git a/RemoteTest.txt b/RemoteTest.txt
 index 40604b4..b36b5e8 100644
 --- a/RemoteTest.txt
 +++ b/RemoteTest.txt @@ -1 +1,6 @@

..等々...

私はC#で変更を取得しようとしました

IEnumerable<string> paths = new List<string>() {@"origin/master", "head"};
TreeChanges tc = repo.Diff.Compare(paths);

しかし、tcは0の変更を示しています。これを行う正しい方法は何ですか?

前もって感謝します。

4

1 に答える 1

3

と参照によって示されるsTreeのsを比較する必要があります。CommitHEADorigin/master

次のようなものはどうですか?

var headTree = repo.Head.Tip.Tree;
var remoteMasterTree = repo.Branches["origin/master"].Tip.Tree;

TreeChanges tc = repo.Diff.Compare(remoteMasterTree, headTree);

注:オーバーロードが受け入れるパスのオプションのリストにはCompare、比較対象内のファイルへのパス(またはpathspecs)が含まれている必要がありますTrees。たとえば、ユースケースを考慮new[] { "RemoteTest.txt" }して、3番目のパラメータとしてメソッドに渡すことができます。

于 2013-03-22T17:21:45.250 に答える