导语
svn客户端大部分开发都会用到,但是为什么我们仍然需要svn服务端呢?
理由可能有:
1,我们想存放一些属于自己的文档,而不像被其他人发现(在自己的网络环境中,安全性更高,更易用,不依赖于公司,不依赖于github,更省心);
2,我们在每个地方都有一份文档,比如多台电脑,多个环境,那么我们可能需要一个有外网IP的虚拟主机,所有终端均可连接该主机,可自由修改和获取共享文档(当然github是个选项,但是github能被检索,无法存放私密文件,除非付费使用);
我们要做的事有哪些?
所以我们可能需要以下的技能点:
1,搭建版本控制服务器(svn或者git都行);
2,能够在不同的客户端下获取版本,并且执行修改操作;
3,需要能将一整个版本库完整地迁移到其它机器,因为虚拟主机我可能不想付费使用了,因为我原先用的电脑太落伍想更新换代了,因为硬盘坏了所以我必须从云主机上能够获取最近一份版本;
4,能够定期拷贝版本库,防止磁盘坏掉等异常情况;
点亮技能点
技能点1:搭建svn服务器
1, sudo apt-get install subversion
2, mkdir /data/svn/repos
3, sudo vim /data/svn/repos/conf/svnserve.conf
打开
[general]
auth-access = write
password-db = passwd
4,sudo vim /data/svn/repos/conf/passwd
添加用户名和密码
5, sudo svnserve -d -r /data/svn/repos/
技能点2:客户端操作
创建文件夹:d:\svn\mydoc\
使用小乌龟操作(TurtoiseSVN)或者svn checkout svn://ip:port/ ./
执行update,执行commit
技能点3:导出和导入完整的数据库
a,导出命令如下;
sudo svnadmin dump /data/svn/repos > svn.data
b,导入命令如下:
sudo svnadmin load /data/svn/repos1 < svn.data
技能点4:定时导出svn数据库,执行远程备份
sudo svnadmin dump /data/svn/repos > svn.data
rsync srcIP:/PATH/FILE remoteIP:/PATH/FILE
如果定期备份到远程机上,需要有一台有外网IP的虚拟主机,或者存储服务,否则只能依赖本地存储,定期导出