2016-11-20 9 views
-2

私はGitリポジトリからデータを複製するためにLibGit2Sharpを使用するアプリケーションに取り組んでいます。私は、LibGit2Sharpがクローンが完了した(成功したかどうか)後にSHA-1のようなデータ完全性検査を行うかどうかを知り、データが欠けているか改ざんされていないことを確認したい。LibGit2Sharpは、リポジトリからクローンされているデータが、私たちが最後に受け取ったものと同じであることを保証しますか?

答えて

0

これはlibgt2sharp langaugeバインディングの機能ではなく、下位のlibgit2の機能です。

今、実際には、それは関与する輸送のビジネスです。

私が言う限り、いいえ、彼らはそれをしません。私のようにソースコード(https://github.com/libgit2/libgit2/blob/cc5966b071b37c38736ce8ad526e612d0703b523/src/transports/smart_protocol.c)を自由に閲覧することができます。

+0

実際、私はlibgit2sharpとgit bashが提供するGitクローンを比較しようとしました。ファイル数とフォルダ数が同じではありません(明らかにディスク上のサイズも同じです)。 あなたが私に送ったこのリンクを調べました。送信されたパケットと受信されたパケットを確認していますが、SHAチェックは行っていませんでしたか? –

0

Gitは、リポジトリ間でオブジェクトを転送するためにパックファイルを使用します。これらのパックファイルの各オブジェクトにはCRC32チェックサムがあり、パックファイル自体にはSHA-1チェックサムトレーラがあります。

これらのチェックサムの両方が、受信したデータと照合されます。これには、ハッシュを使用してリモートを信頼するのではなく、受信したデータに基づいてオブジェクトの名前を計算することが含まれます。

しかし、これはlibgit2sharpまたはlibgit2に関するものではありません。これがGitシステムの仕組みです。データフォーマットに関する情報は、その技術文書で見つけることができます。

関連する問題