Subversion(简称SVN)是一种版本控制系统,专门用于开发团队的软件源代码管理。SVN服务器是一种托管代码的服务器,能够方便的进行版本控制和协作开发。在最近的一次SVN服务器更新中,官方宣布取消FSFS文件系统。为了更好地了解此更新内容以及对版本控制系统和开发者的影响,我们需要深入了解SVN服务器以及FSFS文件系统。
SVN服务器:一个协作开发工具
SVN版本控制系统是我们日常开发工作中最常用的工具之一。无论是在开发过程中管理自己的源代码,还是在协作开发团队同维护一个项目,SVN都能够很好地满足开发者的需求。通过SVN服务器,我们可以对代码进行版本控制,管理不同版本之间的差异,还可以在开发中方便的实现分支、合并等操作。SVN服务器已经成为很多企业、团队中软件开发的必备工具,是一个非常方便的协作开发工具。
FSFS文件系统:SVN服务器默认文件系统
SVN服务器使用文件系统来存储版本控制的相关数据,FSFS文件系统是SVN服务器默认的文件系统。FSFS全称是“FileSystem-Friendly Storage”,中文翻译为“文件系统友好格式”。它是一种基于文件的格式存储方式,将版本控制的数据存储在磁盘文件中。文件名为rev-N,其中N代表版本号。每个rev-N文件包含此版本的所有数据,包括提交代码、修改代码等信息。历史版本控制数据也可以存储在此文件中。
FSFS文件系统的好处是非常直观:因为每个版本的信息都存在一个对应的文件中,所以每个版本都是独立的,可以进行高效的操作和存储。它还能更好地防止数据损坏和文件出错,因为每个版本都有一个单独的文件。
取消FSFS文件系统:为什么?
在最新的SVN服务器更新中,官方宣布将取消FSFS文件系统。这是为什么呢?
官方发布的声明中,提到了以下几个因素:
1.速度和性能问题
FSFS文件系统在存储版本大量数据时,会显得非常慢,并且占用大量的存储空间。
2.文件损坏和错误等问题
FSFS文件系统存在一些严重的问题,如数据损坏、文件错误等,很容易导致数据丢失和版本控制出错。
3.不支持一些重要的功能
FSFS文件系统不支持一些重要的功能,如大规模突发操作和根据改变来存储版本数据等功能。
因此,为了解决这些问题,官方取消了FSFS文件系统,并使用更强大的第三方文件系统代替它。这将提高服务器的性能和运行效率,并为使用SVN服务器的企业和开发者带来更好的版本控制体验。
影响分析:版本控制的未来
SVN已经是一个相对成熟的版本控制系统,并且在过去的几年中得到了广泛的应用和改进。取消FSFS文件系统的动作是其进一步改进和完善的重要一步,并且意义深远。这意味着版本控制系统正在不断地更新和改进,而且开发者和企业将会受益于这些更高效、更强大的版本控制系统。新的文件系统将提供强大的性能和功能,可能还能带来更多的新特性。因此,可以预见SVN服务器的未来发展将会更加光明和有希望。
在SVN服务器更新中,取消FSFS文件系统是一个非常重要的改进,这将带来更高效、更强大的版本控制体验。新的文件系统将提供更快的速度、更强大的功能、更多的优化和特性。尽管这次更新可能对一些用户和企业产生一些负面的影响和不便,但是这些问题都可以通过升级和优化来解决,因此,即使取消FSFS文件系统,在未来的版本更新中,SVN服务器也将会变得更完美。
相关问题拓展阅读:
- svn目录下为什么很多其他文件夹
- 如何搭建本地SVN服务
svn目录下为什么很多其他文件夹
上传的文件放在SVN服务器的哪个目录下SVN服务器版本库有两种格式,一种为FSFS,一种为BDB把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放毕神在版本库中。如果是FSFS格式带掘,手行亏这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息
如何搭建本地SVN服务
搭建svn服务的方法步骤问题,主要有七个部分 。下面是具体的步骤介绍。
一、准备工作
1、获取S version服务器程序
到官方网站(htt p:/ /s version.tigris.org/)下载最新的服务器安装程序。目前最新的是1.5版本,具体下载地址 在:htt p:/ /s version.tigris.org/servlets /ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
2、获取TortoiseSVN客户端程序
从官方网站htt p:/ /tortoisesvn.n et/downloads获取最新的TortoiseSVN。TortoiseSVN是一个客户端程 序,用来与s vers服务器端通讯。S version自带一个客户端程序svn.exe,但TortoiseSVN更好操作,提高效率灶悉局。
二、安装服务器端和客户端
搭建svn服务第二步要安装服务器端和客户端。安装S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个zip压缩包,直 接解压缩即可,比如我解压到E:\s version。客户端安装文件是个exe可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
三、建立版本库(Repository)
运行S version服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。开始建立版本 库。首先建立e:\svn空文件夹作为所有版本库的根目录。然后,进入命令行并切换到s version的bin目录。输入如下命 令:svnadmincreateE:\svn\repos1此命令在E:\svn下建立一个版本库repos1。repos1下面会自动生成一些文件夹 和文件。我们也可以使用TortoiseSVN图形化的完成这一步:先建立空目录E:\svn\repos1,注意一定是要空的。然后在repos1文件 夹上“右键->TortoiseSVN->CreateRepositoryhere…”,然后可以选择版本库模式,这里使用默认的 FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
四、运行独立服务器
搭建svn服务过程中要运行独立服务器。 此时s version服务还没有开始,只是通过它的命令建立陆档了 版本库。继续在刚才的命令窗口输入:svnserve.exe–daemon
svnserve将会在端口3690等待请求,–daemon(两个短横线)选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退 出。注意不要关闭命令行窗口,关闭窗口会把svnserve停止。为了验证svnserve正常工作,使用TortoiseSVN->Repo- browser来查看版本库。在弹出的URL对话框中输入:
点OK按钮后就可以看见repos1版本库的目录树结构了,只不过这时repos1是个空库。你也可以使用–root选项设置根位置来限制服务器的访问 目录,从而增加安全性和节约输入svnserveURL的时间:svnserve.exe–daemon–rootdrive:\path\to \repository以前面的测试作为例,svnserve将会运行为:svnserve.exe–daemon–roote:\svn然后 TortoiseSVN中的版本库浏览器URL缩减为:
五、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:#password-db=passwd改 为:password-db=passwd
即去掉前面的#注释符,注意前面不能有空格。然后修改同目录的passwd文件,增加一个帐号:将:
#harry=harryssecret
#sally=sallyssecret
增加帐号:
#harry=harryssecret
#sally=sallyssecret
test=test
六、初始化导入
下面就是搭建svn服务时将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢 失、改错数据时版本库也能帮我们找回数据。
比如,我在d:\wwwroot下有个gstbook文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 ->TortoiseSVN->Import…”,在弹出对话框的“URLofrepository”输入 “
点OK后要求输入帐号。我们在用户名和密码处都输入test。完成后gstbook中的内容全部导入到了 /repos1/gstbook。
我们看到在e:\svn\repos1没有任何变化,连个gstbook文件夹都没有建立,唯一的变化就是e:\svn\repos1容量变大了。实 际上我们源gstbook中的内容已经导入repos1版本库了,源gstbook文件夹可以删除了。需要注意的是,这一步操作可以完全在另一台 安装了TortoiseSVN的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是 “
七、基本操作流程
1、取出(checkout)
取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹f:\work。“右键->SVNCheckout”。在“URLofrepository”中输 入“
2、存入(checkin)/提交(commit)
在工作拷贝中作出修改并提交:
在gstbook工作拷贝中随便打开一个文件,作出修改,然后“右键->SVNCommit…”。这样我们就把修改提交到了版本库,版本库 根据情况存储我们提交的数据。
在修改过的文件上“右键->TortoiseSVN->ShowLog”,可以看到对这个文件所有的提交。在不同的revision条目上 “右键->Comparewithworkingcopy”,我们可以比较工作拷贝的文件和所选revision版本的区别。本节介绍搭建SVN服 务完毕,请关注本节其他相关报道。
搭建好svn后创建svn版本
1、创建一个空文件夹,右键->TortoiseSVN->CreateRepositoryhere,然后该文件夹会自动生成一些文件出来
2、用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:#password-db=passwd改 为:password-db=passwd
即去掉前面的#注释符
3、修改同目录的passwd文件,增加一个帐号
增加帐号:
#harry=harryssecret
#sally=sallyssecret
amylv=amylv
4、初始化导入 比如在d:\wwwroot下有个gstbook文件夹,在此文件夹上“右键 ->TortoiseSVN->Import…”,
输入你的用户名跟密码
到此ok了
附:svn服务器端只能装在c盘下 svnserve.exe –daemon 这个命令才能使用,版本库也必须放在c盘下 对应的是c盘直接目录
如果你创建的文件夹目录为 c:/svnlib/weibo。那么import的地址为
安装了两次终于明白应该注意什么了,总结一个最简单的说明,节省大家时间
1、获取svn程序
2、安装 S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\s version 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
3、先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here…”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
(这一步注意svn服务端要和库目录在同一个盘符下面,否则提示找不到目录)
4、进入命令行并切换到s version的bin目录。输入如下命令:
svnserve.exe –daemon
svnserve 将会在端口 3690 等待请求,–daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止
5、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:
将:
# password-db = passwd
改为:
password-db = passwd
即去掉前面的 # 注释符,注意前面不能有空格。
然后修改同目录的passwd文件,增加一个帐号:
将:
# harry = harryssecret
# sally = sallyssecret
增加帐号:
#harry = harryssecret
#sally = sallyssecret
test = test
6、初始化导入
(在做这一步之前一定要执行第5步)
下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:\wwwroot 下有个 gstbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import…” ,在弹出对话框的“URL of repository”输入“ message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 gstbook 中的内容全部导入到了 。
我们看到在 e:\svn\repo1 没有任何变化,连个 gstbook 文件夹都没有建立,唯一的变化就是e:\svn\repo1容量变大了。实际上我们源gstbook中的内容已经导入 repo1 版本库了,源 gstbook 文件夹可以删除了。
7、svn配置结束,这是最简单的步骤,已经可以用了,然后把svn整合到系统服务,以后就不用一直开着命令窗口了。把以下内容粘贴到文本文件,然后重命名文件为:*.bat执行就好了,
sc create svnserver binpath= “C:\Program Files\S version\bin\svnserve.exe –service –root F:\svn” displayname= “svnserver” depend= tcpip start= auto obj= “NT AUTHORITY\NetworkService”
其中C:\Program Files\S version\bin\svnserve.exe 为svn的路径
F:\svn 为版本库的目录
displayname= “svnserver” 为设置服务的名字
–root 是设置根目录 比如:原来你访问为:
设置–root F:\svn之后缩写为 这个一定要注意,否则Error: URL ‘ exist
8、svn能用了,下面是原始资料,稍微整理了一下,如果以上内容不能满足,参考以下内容,希望没有浪费宝贵时间。
搭建svn服务的方法步骤问题,主要有七个部分 。下面是具体的步骤介绍。
一、准备工作
1、获取S version服务器程序
到官方网站(htt p:/ /s version.tigris.org/)下载最新的服务器安装程序。目前最新的是1.5版本,具体下载地址 在:htt p:/ /s version.tigris.org/servlets /ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
2、获取TortoiseSVN客户端程序
从官方网站htt p:/ /tortoisesvn.n et/downloads获取最新的TortoiseSVN。TortoiseSVN是一个客户端程 序,用来与s vers服务器端通讯。S version自带一个客户端程序svn.exe,但TortoiseSVN更好操作,提高效率灶悉局。
二、安装服务器端和客户端
搭建svn服务第二步要安装服务器端和客户端。安装S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个zip压缩包,直 接解压缩即可,比如我解压到E:\s version。客户端安装文件是个exe可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
三、建立版本库(Repository)
运行S version服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。开始建立版本 库。首先建立e:\svn空文件夹作为所有版本库的根目录。然后,进入命令行并切换到s version的bin目录。输入如下命 令:svnadmincreateE:\svn\repos1此命令在E:\svn下建立一个版本库repos1。repos1下面会自动生成一些文件夹 和文件。我们也可以使用TortoiseSVN图形化的完成这一步:先建立空目录E:\svn\repos1,注意一定是要空的。然后在repos1文件 夹上“右键->TortoiseSVN->CreateRepositoryhere…”,然后可以选择版本库模式,这里使用默认的 FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
四、运行独立服务器
搭建svn服务过程中要运行独立服务器。 此时s version服务还没有开始,只是通过它的命令建立陆档了 版本库。继续在刚才的命令窗口输入:svnserve.exe–daemon
svnserve将会在端口3690等待请求,–daemon(两个短横线)选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退 出。注意不要关闭命令行窗口,关闭窗口会把svnserve停止。为了验证svnserve正常工作,使用TortoiseSVN->Repo- browser来查看版本库。在弹出的URL对话框中输入:
点OK按钮后就可以看见repos1版本库的目录树结构了,只不过这时repos1是个空库。你也可以使用–root选项设置根位置来限制服务器的访问 目录,从而增加安全性和节约输入svnserveURL的时间:svnserve.exe–daemon–rootdrive:\path\to \repository以前面的测试作为例,svnserve将会运行为:svnserve.exe–daemon–roote:\svn然后 TortoiseSVN中的版本库浏览器URL缩减为:
五、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:#password-db=passwd改 为:password-db=passwd
即去掉前面的#注释符,注意前面不能有空格。然后修改同目录的passwd文件,增加一个帐号:将:
#harry=harryssecret
#sally=sallyssecret
增加帐号:
#harry=harryssecret
#sally=sallyssecret
test=test
六、初始化导入
下面就是搭建svn服务时将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢 失、改错数据时版本库也能帮我们找回数据。
比如,我在d:\wwwroot下有个gstbook文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 ->TortoiseSVN->Import…”,在弹出对话框的“URLofrepository”输入 “
点OK后要求输入帐号。我们在用户名和密码处都输入test。完成后gstbook中的内容全部导入到了 /repos1/gstbook。
我们看到在e:\svn\repos1没有任何变化,连个gstbook文件夹都没有建立,唯一的变化就是e:\svn\repos1容量变大了。实 际上我们源gstbook中的内容已经导入repos1版本库了,源gstbook文件夹可以删除了。需要注意的是,这一步操作可以完全在另一台 安装了TortoiseSVN的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是 “
七、基本操作流程
1、取出(checkout)
取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹f:\work。“右键->SVNCheckout”。在“URLofrepository”中输 入“
2、存入(checkin)/提交(commit)
在工作拷贝中作出修改并提交:
在gstbook工作拷贝中随便打开一个文件,作出修改,然后“右键->SVNCommit…”。这样我们就把修改提交到了版本库,版本库 根据情况存储我们提交的数据。
在修改过的文件上“右键->TortoiseSVN->ShowLog”,可以看到对这个文件所有的提交。在不同的revision条目上 “右键->Comparewithworkingcopy”,我们可以比较工作拷贝的文件和所选revision版本的区别。本节介绍搭建SVN服 务完毕,请关注本节其他相关报道。
搭建好svn后创建svn版本
1、创建一个空文件夹,右键->TortoiseSVN->CreateRepositoryhere,然后该文件夹会自动生成一些文件出来
2、用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:#password-db=passwd改 为:password-db=passwd
即去掉前面的#注释符
3、修改同目录的passwd文件,增加一个帐号
增加帐号:
#harry=harryssecret
#sally=sallyssecret
amylv=amylv
4、初始化导入 比如在d:\wwwroot下有个gstbook文件夹,在此文件夹上“右键 ->TortoiseSVN->Import…”,
输入你的用户名跟密码
到此ok了
附:svn服务器端只能装在c盘下 svnserve.exe –daemon 这个命令才能使用,版本库也必须放在c盘下 对应的是c盘直接目录
如果你创建的文件夹目录为 c:/svnlib/weibo。那么import的地址为
安装了两次终于明白应该注意什么了,总结一个最简单的说明,节省大家时间
1、获取svn程序
2、安装 S version(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\s version 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。
3、先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here…”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。
(这一步注意svn服务端要和库目录在同一个盘符下面,否则提示找不到目录)
4、进入命令行并切换到s version的bin目录。输入如下命令:
svnserve.exe –daemon
svnserve 将会在端口 3690 等待请求,–daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止
5、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:
将:
# password-db = passwd
改为:
password-db = passwd
即去掉前面的 # 注释符,注意前面不能有空格。
然后修改同目录的passwd文件,增加一个帐号:
将:
# harry = harryssecret
# sally = sallyssecret
增加帐号:
#harry = harryssecret
#sally = sallyssecret
test = test
6、初始化导入
(在做这一步之前一定要执行第5步)
下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:\wwwroot 下有个 gstbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import…” ,在弹出对话框的“URL of repository”输入“ message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 gstbook 中的内容全部导入到了 。
我们看到在 e:\svn\repo1 没有任何变化,连个 gstbook 文件夹都没有建立,唯一的变化就是e:\svn\repo1容量变大了。实际上我们源gstbook中的内容已经导入 repo1 版本库了,源 gstbook 文件夹可以删除了。
7、svn配置结束,这是最简单的步骤,已经可以用了,然后把svn整合到系统服务,以后就不用一直开着命令窗口了。把以下内容粘贴到文本文件,然后重命名文件为:*.bat执行就好了,
sc create svnserver binpath= “C:\Program Files\S version\bin\svnserve.exe –service –root F:\svn” displayname= “svnserver” depend= tcpip start= auto obj= “NT AUTHORITY\NetworkService”
其中C:\Program Files\S version\bin\svnserve.exe 为svn的路径
F:\svn 为版本库的目录
displayname= “svnserver” 为设置服务的名字
–root 是设置根目录 比如:原来你访问为:
设置–root F:\svn之后缩写为 这个一定要注意,否则Error: URL ‘ exist
关于svn服务器取消fsfs的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。