SVN是Subversion的简称,是一个自由开源的版本控制系统。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具。
SVN架构
Subversion支持Linux和Windows,更多是安装在Linux下。
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
svn存储版本数据也有2种方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统。
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
首先要确保linux安装了yum,如果没有安装,首先先安装yum
yum install subversion2. 配置
我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。
[root@localhost home]# mkdir svn [root@localhost home]# svnadmin create /home/svn [root@localhost home]# ll svn
我们这里特别关注一下conf文件夹,这个是存放配置文件的
[root@localhost home]# cd svn/conf [root@localhost conf]# ll
其中:
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件
接下来我们依次修改这3个文件。
配置passwd
[root@localhost conf]# vi passwd [users] kejizhentan=123456 test=123456
上面的例子中我们创建了2个用户,一个test1,一个test2
配置authz
[root@localhost conf]# vi authz [/] kejizhentan=rw test=r *=
上面配置的含义是,kejizhentan对/home/svn/下所有文件具有可读可写权限,test只有只读权限,除此之外,其它用户均无任何权限,最后一行*=很重要不能少。
使用用户分组(一般不用)
[root@localhost conf]# vi authz [groups] group1 = kejizhentan group2 = test1,test2 [/] @group1 = rw @group2 = r * =
上面配置中创建了2个分组,分组1的用户可读可写,分组2的用户只读。
格式说明:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
配置svnserve.conf
[root@localhost conf]# vi svnserve.conf 打开下面的5个注释 anon-access = read #匿名用户可读 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /home/svn # 认证空间名,版本库所在目录
3. 启动与停止注意:
[root@localhost conf]# svnserve -d -r /home/svn(启动) [root@localhost conf]#killall svnserve(停止)
测试是否搭建成功:
随便找个文件夹,点击SVN checkout
访问的url是: svn://192.168.193.225
至此,说明svn搭建成功了。
4. 如何删除掉svn文件夹我们经常无法删除掉svn文件夹,效果如下:
我们只要建立一个文本文件,取名为kill-svn-folders.reg(扩展名由txt改为reg),内容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREClassesFoldershellDeleteSVN] @="Delete SVN Folders" [HKEY_LOCAL_MACHINESOFTWAREClassesFoldershellDeleteSVNcommand] @="cmd.exe /c "TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r "%1" %%f IN (.svn) DO RD /s /q "%%f" ""
保存之后,双击这个reg文件。成功后,在每一个文件夹上点击右键都会有一个“Delete SVN Folders”的选项,点击之后,既可以删除这个文件下下面所有的.svn文件了:
然后再删除文件夹就可以成功了
TortoiseSVN是一个基于windows系统的svn客户端图形化界面.
安装太简单了,就不演示了。
浏览仓库
正常情况下,在浏览仓库时会要求录入username与password 我们可以清空svn客户端的缓存
注意:检出后会有一个.svn隐藏目录
2. add将文件交由svn管理 3. commit 提交到svn服务器SVN文件夹图标显示不正常的解决办法:
右击任意文件夹,选择TortoiseSVN ——>Settings
从d出的对话框左侧选择Icon Overlays(图标覆盖),右侧的Status cache中选择Shell
找到软件的安装包,双击选择下一步,选择repair(修复)。完成就好了,有些时候可能需要重启系统。
我的完成了之后遇到了一点小问题,不过重启了资源管理器之后,就可以了。
标记删除 *** 作,本地文件会删除,我们需要进行提交,才能真正从服务器删除
import将本地资源导入到svn服务器
Export导出项目,和checkout的区别,它不存在.svn隐藏文件
手动Merge之后就剩HelloWorld.java文件,说明冲突已解决
我们采用手动Merge,解决冲突后,重新commit.
前提是我们的电脑上已经安装了TortoiseSVN
注意:
TortoiseSVN安装如目录下没有svn.exe的解决方法:
打开我们TortoiseSVN的安装包,双击打开,选中Modify(点那个电脑小图标),然后按我的截图 *** 作即可。
idea配置的具体步骤如下:
打开svn管理的项目,结果显示这样说明svn配置成功了
2. IDEA 下SVN使用1.Update Project 更新项目
2.Commit changes 提交项目上所有变化文件
3.Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑 的文件没有修改,则是灰色不可点击。
4.Show history 显示当前文件的历史记录
5.Revert 还原当前被修改的文件到违背修改的版本状态下
1.Local Changes 本地修改过的文件都会出现在这里
2.Repository svn仓库所有提交记录
3.Incoming 本地还没有更新的别人提交的代码
跟小乌龟使用一样,不过多解释了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)