客户端svn上传后,原始文件在服务器的什么位置?

来源:互联网 发布:淘宝衣服褪色解释 编辑:程序博客网 时间:2024/05/30 23:01
原作者:寅春树

来源:知乎
著作权归作者所有,转载请联系作者获得授权。

SVN服务器端不是简单将上传的文件一个一个存放起来的;
SVN服务器端默认采用的FSFS格式是将每次commit的内容增量方式存放的,每个增量包存成1个文件,这个增量包中包括了这次commit的全部数据。
也就是说你不可能在服务器端存放该版本库的文件夹下找到你上传的某个文件。

SVN服务器版本库有两种格式,

一种为FSFS,

一种为BDB

把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。

如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息 。


怎把指定文件夹上传到SVN服务器?
一般来说新建项目是在服务器端操作的,每个项目作为一个独立的版本库进行管理。
当然你可以可以把这个项目当作服务器上某个版本库下面的一个文件夹进行管理,但是会导致这个项目的版本号看起来是不连续的,因为SVN是用版本号标注整个版本库的状态。
你如果确定想把这个项目当成某个版本库的一个文件夹进行管理的话,那么就这么做:
首先,用TSVN检出那个版本库到本地;
然后,将这个项目复制到本地这个版本库的某个文件夹下面;
最后,用TSVN增加并提交这个文件夹。

SVN在服务器端的存储方式和客户端是不一样的,所以在服务器端是看不到源文件的。服务器端有两种存储方式FSFS和BDB,目前默认都是FSFS。

要导入文件有两种做法:
1、用import指令,将客户端文件夹导入到服务器端
2、先checkout空库到客户端,然后将要导入的文件夹放入客户端checkout产生的空文件夹,然后执行add将这些文件夹纳入SVN控制,最后执行commit上传到服务器

0 0