0
基本的には、現在の作業ファイルを変更せずに、古いバージョンのファイルをリポジトリに入れる必要があります。 私はさまざまな方法を考えた:ファイルをチェックアウト、ngitで古いバージョンのファイルの内容を取得する
- 一時ブランチをし、事
- コピーしたファイルを実行するには、私のことを行うと、それを
を返す。しかし、これらの方法は本当に遅いと複雑です。 ngitに比べて簡単なことはないのですか? NGitを使用して
基本的には、現在の作業ファイルを変更せずに、古いバージョンのファイルをリポジトリに入れる必要があります。 私はさまざまな方法を考えた:ファイルをチェックアウト、ngitで古いバージョンのファイルの内容を取得する
を返す。しかし、これらの方法は本当に遅いと複雑です。 ngitに比べて簡単なことはないのですか? NGitを使用して
:メソッドの使用方法の詳細については、http://jgit.info/javadoc/
ObjectId commitId = git.GetRepository().Resolve(ref);
RevWalk revWalk = new RevWalk(git.GetRepository());
RevTree revTree = loRevWalk.ParseTree(commitId);
TreeWalk treeWalk = new TreeWalk(git.GetRepository());
treeWalk.AddTree(revTree);
while (treeWalk.Next())
{
//compare treeWalk.NameString yourself
byte[] bytes = treeWalk.ObjectReader.Open(treeWalk.GetObjectId(0)).GetCachedBytes()
...
}
それはngitする必要もありませんjgitドキュメントを参照してください? 'git show:path/to/file> file.old-version'(あるいは、おそらくngitにgit-showアナログがありますか?) –
Cascabel
[git-cat-file](http://schacon.github.com/ git/git-cat-file.html)も選択肢です。 [git show answers here](http://stackoverflow.com/questions/610208/how-to-retrieve-a-single-file-from-specific-revision-in-git)完全に –
ありがとう、私たちの製品はすでにngitを使用しており、すべてを変更するにはかなりの努力が必要です。さて、私はこの唯一の理由でコンソールを試してラップすることができますが、私はまだngitソリューションを望んでいます:) –