目录
一 、安装Visual SVN
二、配置SVN
三、安装TortoiseSVN
五、从远程仓库下载项目
六、检出项目
七、版本回退
https://blog.csdn.net/jinmie0193/article/details/81583264
VisualSVN server 服务端和 TortoiseSVN客户端搭配比使用原始的 SVN和Apache相配合来实现源
代码的 SVN管理简单。
VisualSVN Server的下载:
http://www.visualsvn.com/server/download/
TortoiseSVN 的 下载:
http://tortoisesvn.net/download
s.html
在网页下面还有
一个Language packs,你可以选择简体
中文,下载后直接安装,最后勾选立即使用
即可。
一 、安装Visual SVN
首先下载VisualSVN Server
【1 】打开后一路下一步,有协议点同意
【2】 选择 visualVSN服务器和管理控制台 或只有管理控制权限
选个标准版或企业版
【3】选择程序安装的路径、Subversion Repository(库)的路径和所使用的协议和端口以及备份路径
Use secure connection勾上表示使用安
全连接。
继续【Next】到【Finish】。
在1.4版本后,Subversion加入了
service运行的
功能。端口号可以任意定义。
个人偏向于使用
httpS的8443端口,因为
httpS安全性比较高,
虽然443端口是标准
httpS端口,但如果做WEB开发那肯定就有麻烦,同时Skype也会使
用这个端口进行某些通讯。
还有就是下面的用于验证的身份,
一个是windows验证,
一个是Subversion身份验证,这里
默认是Subversion身份验证。
【4】接着就是安装过程
【5】安装完成后会询问你是否需要运行VisualSVN Server Manager
【6 】点finish,打开“ VisualSVN Server Manager “
Status:服务运行状态
SubversionAuthentication:账户信息
如电脑IP是:192.168.100.100
右键 VisualSVN Server选择Properties
选中NetWork输入IP即可
FSFS:根据标准的FSFS数据存储创建
一个常规的Subversion存储库。
VDFS:基于VisualSVN分布式
文件系统创建分布式Subversion存储库。VDFS存储库充当标准的Subversion存储库,允许在地理分布的
站点之间复制数据。
选择FSFS,输入仓库名字
选Single,则在
代码库FirstRep下面会创建trunk、branches、tags三个子目录。
我们选Single
点击create之后带你finish,创建成功
2.创建
用户并
添加
在左侧的Users上点击右键:
点击刚才创建的库,右击选择
属性(Properties)
点击上图中的"Add..."按钮,在下图中选择我们刚才
添加的
用户,
注意这里的权限设置,要选择好。
点击"确定"按钮,上面的
用户就具有了访问
代码库的不同权限。
右键创建的仓库,选copy url ,然后到网页打开连接
之后会让你输入账号密码,然后就可以登陆了。
三、安装TortoiseSVN
上传到SVN服务器首先要下载TortoiseSVN
下载后安装,一路next,然后finish
最后也可以自己安装
中文包,一路next,最后勾选立即使用
即可。
四、
上传项目到远程仓库
假设我们本地有个TestDIR目录,里面两个txt
文件
此时远程仓库状态:
右键FirstRep,选择copy url
之后到本地右键FirstRep目录,选择TortoiseSVN,导入
等待一会
此时在VisualSVN 空白处右键,选择刷新,此时远程仓库状态:
五、从远程仓库下载项目
假如我们要下载FirstRep仓库
代码,到TestDIR
首先右键点击FirstRep
文件夹,这时候的右键
菜单如下图所示:选择copy URL toCLipboard
然后再进入TestDIR
文件夹,在电脑的空白处单击右键,选择小海龟的图标/ 导出
之后弹出对话框,将刚出的地址粘贴到第
一个地址栏中,也可以自己指定目录,然后确定
之后会弹出输入
用户名和密码的对话框,输入新建账户和密码,
确定,然后会弹出检出界面。
ok下载成功。
六、检出项目
检出项目是把远程仓库下载到本地,可以对项目提交,
修改,
删除等。
下载
代码只是下载到本地,没有任何权限,相当于只读。
客户端去检出
代码,在桌面空白处单击右键,选择SVN检出,
在弹出的对话框中填写版本库URL,检出目录(
自动生成项目同名
文件夹),还可以选择版本
七、版本回退
首先检出项目到本地
基本
方法:
1.右击刚才检出的FirstRep目录,TortoiseSVN – show log(
显示日志)
2.右击你想要回滚到的版本,可以看到两个选项:“Revert to this revision”和“Revert changes from this revision”。
下面举例说明
譬如有个
文件,有十个版本,假定版本号是1,2,3,4,5,6,7,8,9,10。
Revert to this revision(复原到此版本):
如果是在版本6这里点击“Revert to this revision”,表示7~10的
修改全部作废,历史倒退到了版本6那个年代。
Revert changes from this revision(复原到此版本做出的
修改):
如果是在版本6这里点击“Revert changes from this revision”,表示版本6这个历史事件被抹杀了,只剩下除版本6外的9个历史事件了。
如果同时选择了6,7,8三个历史时期并点击“Revert changes from this revision”,表示抹杀6~8这仨历史时期。
同理,如果同时选择7~10,然后点击“Revert changes from this revision”,则
效果跟在版本6这里点击“Revert to this revision”是一样的。
点击还原
然后右键检出的FirstRep目录,点击提交之后
便生效了。
其他优质
方法
方法1
描述:直接检出
一个你需要的版本,然后用你检出的版本覆盖
你的最新的版本,
优点:不丢失你新建的
文件,同时获得最新的SVN版本控制。
操作步骤:
(1)右键刚刚检出的版本14
文件夹→TortoiseSVN→Show log(
显示日志)→选中需要回滚的版本→右键→检出。
(2)你需要重新指定
一个文件夹,否则会冲突,如选择test1
文件夹
(4)然后在新检出的目录
修改BUG,比如新加
一个3.txt
文件
此时远程仓库如下
(1)右键检出目录,选择TortoiseSVN中的合并(merge)。
(2)选择合并类型
![Windows 下搭建 SVN服务器 Windows 下搭建 SVN服务器](http://img.voidcn.com/vcimg/static/loading.png)
(3)点击next,后面什么都不用改,点击”合并”
文件就回滚到了指定的版本了,commit之后,回滚完成。
方法3
描述:若是你编辑了工程,在没有提交的前提下,你想放弃这些
修改,
操作:直接选择TortoiseSVN→revert就可以更新到工程的最新的版本。
![Windows 下搭建 SVN服务器 Windows 下搭建 SVN服务器](http://img.voidcn.com/vcimg/static/loading.png)
方法4
描述:若是你想退回到某
一个版本,你就可以直接选择TortoiseSVN→
update to reversion。
注释:这样就可以把版本回退到你选中的版本去,这种情况下SVN并没有
显示出有什么冲突,并且新建立的
文件也还在。
缺点:
在这种情况下你并不能直接在你回退后的版本上进行编辑,
因为SVN的版本控制还是在最新的主干上。我们需要
update并
解决冲突。
(1)右键test1,选择TortoiseSVN→
update to reversion,选择版本15
(3)等待更新完成,test1
内容图如下,3.txt已
删除
(5)但是此时SVN的版本控制还是在最新的主干上。我们需要
update 并
解决冲突。
方法5
你可以直接选择revert changes from this revision,这样的话你可以直接
解决冲突并提交。
不过这种
方法的不足是,你新建的
文件都没有了,整个工程都回退到之前的版本了。
方法6
描述:可以从日志中回滚到你需要的版本,从日志中选中你需要的版本,然后
update item to reversion就好了,这种情况下SVN不会对新建
文件产生冲突,并且新建立的
文件也还在,
缺点:
在这种情况下你并不能直接在你回退后的版本上进行编辑,
因为SVN的版本控制还是在最新的主干上。我们需要
update并
解决冲突
注意:
向SVN服务器提交源
代码的时候,一定不要提交bin、obj等
文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而
生成的dll不需要提交。
如果
项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在
你的解决方案下,
添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用。