1

SVN book では、差分化について「ファイルの新しいバージョンがリポジトリにコミットされるたびに、Subversion は以前のバージョン (実際にはいくつかの以前のバージョン) を新しいバージョンに対する差分としてエンコードします」と説明しています。

このcollab.net ブログ記事 には、「BDB (Berkeley Database) では、ファイルの履歴の各行の先頭にフルテキストがある」と書かれています。一方、「FSFS は逆方向にデルタを格納するため、古いバージョンを書き換える必要はありません。」

これが正しい場合、SVN (BDB を使用) はファイルの完全なコピーを各ブランチの HEAD に保存し、ブランチがマージされた場合にファイルのコピーを 1 つ削除しますか?

4

2 に答える 2

4

SVN はデルタのみを保存します。つまり、コミット/バージョン間で変更されたものです。これが、古いバージョンに戻って削除できない理由の 1 つです。新しいリビジョンは以前のものに依存するからです。これにより、ディスク容量を節約できるだけでなく、バ​​ージョン間の変更点をすばやく確認できます。

これは、別のブランチからマージする場合にも適用されます。新しいファイルが追加され、変更されたファイルがマージされます - デルタが保存されます - など。

于 2009-11-11T16:39:20.797 に答える
0

いいえ、古いリビジョンがまだ存在するためです。つまり、以前のマージされていないバージョンに戻るには、それを維持する必要があります。

于 2009-11-11T16:33:48.153 に答える