Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN存储库内部_Svn_Version Control_Internals - Fatal编程技术网

SVN存储库内部

SVN存储库内部,svn,version-control,internals,Svn,Version Control,Internals,我正在为一篇学期论文研究有关subversions内部数据结构的信息。 我已经找到了,但找不到其他信息 在一个新的存储库中,我提交了一个简单的文本文件,其中包含一些测试行 DELTA SVN▒▒ ▒▒▒Dies ist die erste Datei im SVN-Repository. Ebenfalls ist dies die erste Zeile der Ersten Datei. Dies ist die zweite Zeile der ersten Datei. //leer

我正在为一篇学期论文研究有关subversions内部数据结构的信息。 我已经找到了,但找不到其他信息

在一个新的存储库中,我提交了一个简单的文本文件,其中包含一些测试行

DELTA
SVN▒▒   ▒▒▒Dies ist die erste Datei im SVN-Repository. Ebenfalls ist dies die erste Zeile der Ersten Datei.
Dies ist die zweite Zeile der ersten Datei.
//leerzeile
Diese Zeile wird in der nächsten Revision gelöscht werden.
//leerzeile
Dies ist die letzte Zeile der Datei.
ENDREP
id: 0-1.0.r1/293
type: file
count: 0
text: 1 0 280 263 f76e56eefcb558ac6682682c05c16eb8 785a12924cf4a78d97cb10ba9903086bf3683d2d 0-0/_2
cpath: /Erste Datei.txt
copyroot: 0 /

PLAIN
K 15
Erste Datei.txt
V 17
file 0-1.0.r1/293
END
ENDREP
id: 0.0.r1/529
type: dir
pred: 0.0.r0/17
count: 1
text: 1 468 48 48 6d3f404edb0eca280b1f748b565436c9
cpath: /
copyroot: 0 /

_0.0.t0-0 add-file true false /Erste Datei.txt


529 654
第一个块(以一个空行结束的增量开始)在结构文件中解释,但它下面的部分没有解释

这里有人能给我解释一下吗? 当然,我看到“K15”之后的那一行是文件名,“V17”之后的那一行是上面Delta中描述的,但是在哪里使用这些信息呢


感谢您的帮助

这是存储库根目录的表示形式。将Subversion中的目录视为文件,其中文件的内容是目录的哈希转储(如链接页面中所述)

如果表示用于目录节点的文本内容, 扩展内容采用散列转储格式,将条目名称映射到 “”对,其中是“file”或“dir”,并给出 子节点的ID

直到最近,目录表示一直是以
(即全文)的形式编写的,但从开始(这大大减少了存储库具有非常深的树时所需的存储空间)

我们使用目录表示的原因是,我们将单个文件的存储从其在树中的位置抽象出来。首先,它用于实现廉价拷贝。当您分支(通过copy命令)时,Subversion不会为树中的文件写出新的文件内容表示形式,而只是将该点的新目录表示形式写到现有的文件表示形式。这进一步用于表示共享(使用数据库避免存储通过合并独立添加或创建的相同内容)

您可能还想了解用于存储的目录冒泡方法,如中所述。请注意,此文档非常旧,并且不是完全最新的。但冒泡的信息仍然是准确的和信息性的

我想让你看看Stefan Fuhrmann在Subversion和Git Live 2013上的演讲,但我认为它还没有发布到网络上。但是它会有一些你可能会感兴趣的关于文件系统格式的工作的花边新闻

如果您还有其他问题,请访问irc.freenode.net上的#svn dev