本文描述 svn repository版本的物理结构

下面是版本37的内容及注释,#之前的为内容,之后的外注释

 

DELTA 35 0 4#本版本是35版本的增量版本,0 4的意义不是很清楚

SVN^A^@^@^W^E^S^D~PE^F~B^Rdsfaew^M

wer^M

ewrweENDREP#直到ENDREP为增量内容

id: 0-35.0.r39/53#39版本的id号

type: file#类型为文件

pred: 0-35.0.r38/49#39版本前一版本的id号

count: 4#不清楚

text: 39 0 33 23 0ad7106c3e6e01aed9ccf59c4774934e

cpath: /openssh/dtest.c#相对库根目录路径

copyroot: 0 /#根目录为/


PLAIN#以下内容为39版本修改文件的上层目录包含内容

K 7#表示以下内容为7个字符

dtest.c#文件名

V 18#表示以下内容为18个字符

file 0-35.0.r39/53#文件id

K 5

hello

V 17

dir 0-20.0.r21/77

K 6

ji.txt

V 18

file 0-34.0.r34/17

K 44

step1_libssl0.9.8_0.9.8g-4ubuntu3.3_i386.deb

V 22

file 4-3.0.r3/11156648

K 48

step2_libssl0.9.8-dbg_0.9.8g-4ubuntu3.3_i386.deb

V 22

file 2-3.0.r3/11156028

K 51

step3_openssh-blacklist_0.1-1ubuntu0.8.04.1_all.deb

V 22

file 3-3.0.r3/11156336

K 46

step4_openssh-client_4.7p1-8ubuntu1.2_i386.deb

V 22

file 5-3.0.r3/11156953

 

K 46

step5_openssh-server_4.7p1-8ubuntu1.2_i386.deb

V 22

file 1-3.0.r3/11155729

K 23

æ~V°å»º æ~V~Gæ~\¬æ~V~Gæ¡£.txt#中文目录显示乱码

V 18

file 0-17.0.r30/61

END

ENDREP

id: 0-3.0.r39/779

type: dir

pred: 0-3.0.r38/775

count: 20

text: 39 200 566 566 83f6470b16635398bc7bee06f1c776c0

cpath: /openssh

copyroot: 0 /

之后还有更上一层目录,直到/目录;
 
当svn检出39版本时,svn将根据树形往上然后平行,然后循环往下搜索形成一个完成的镜像;所以说每个版本都是版本库的一个镜像;
 

svn 版本结构_职场

 当你以某个版本号num检出某个目录时,首先找到物理文件为num,然后根据其中的树进行搜索,最终检出需要的目录;