千家信息网

一、代码管理平台介绍、安装SVN、客户端上使用SVN(Linux)、Windows

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,一、代码管理平台介绍版本控制,记录若干文件内容的变化,以便将来查阅特定版本修订情况版本管理工具发展简史,CVS→SVN→GitCVS:兼容性不太好。SVN:太慢。全名:Subversion,是一个开源
千家信息网最后更新 2025年02月23日一、代码管理平台介绍、安装SVN、客户端上使用SVN(Linux)、Windows

一、代码管理平台介绍

版本控制,记录若干文件内容的变化,以便将来查阅特定版本修订情况

版本管理工具发展简史,CVS→SVN→Git

CVS:兼容性不太好。

SVN:太慢。全名:Subversion,是一个开源版本控制系统,始于2000年。

Git:Linux创始人linus发起的,2005年发布,最初目的是更好的管理Linux内核代码。

Git和SVN不同在于Git不需要依赖服务端就可以工作,即Git是分布式的。


关于Git和SVN的比较,参考http://blog.lishiming.net/?p=305

SVN和Git的最主要的差异--分布式。

SVN优势:

1.存储

SVN服务器既具有CVS所具有数据储存的优点,数据一般不会丢失,同时又拥有自己的特色。SVN是通过关系数据库及二进制的存储方式,同时解决了既往不能同时读写同一文件等问题,同时增添了自己特有的"零或一"原则。

2.速度

与初始的CVS相比,SVN在速度运行方面有很大提升。因为SVN服务器只支持少量的信息、资源传输,与其他系统相比,更支持的是离线模式,因此避免了网络拥挤现象的出现。

3.安全性

SVN是一种技术性更加安全的产品,实现了系统和控制两方面的结合。一方面可以将系统整体的安全功能有效地分布在分支系统中,进而保证分支系统能正常运行,从而使各分支系统能够互补,最终在系统整体性的安全性得以保障,通过均衡原则实现最终追求安全的目的。


Git优劣势:

优点:

适合分布式开发,强调个体。

公共服务器压力和数据量都不会太大。

速度快、灵活。

任意两个开发者之间可以很容易的解决冲突。

离线工作。

缺点:

资料少(起码中文资料很少)。

学习周期相对而言比较长。

不符合常规思维。

代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。


GitHub是基于Git的在线web页面代码托管平台,可以选择付费服务。

Gitlab可以认为是一个开源的GitHub,两者没有直接联系。

一句话区分,git是管理工具,github是在线的基于git的平台(或者叫做服务)。gitlab和github一样,也是一个基于git的提供web界面的代码管理平台。


二、安装SVN

# yum install -y subversion

创建版本库

# mkdir -p /data/svnroot/myproject //该目录路径可自定义

# svnadmin create /data/svnroot/myproject //在这个目录下初始化一些文件

# cd !$/conf #authz为权限配置文件,passwd为密码文件,svnserve.conf为SVN仓库的配置文件。

# vim authz  //配置文件新增内容如下:[groups]admins = aming,user1   //加到用户组的下面[/]@admins = rw   //@后面跟组名* = r   //除了admins组以外的所有人只有只读的权限。[myproject:/]user1 = rw# myproject指项目名,这种用法适合于/data/svnroot/有多个项目的情况下,这只是其中一个项目而已。# 带冒号指的是一个项目名,这里只有一个项目,可以在这下面创建子目录dir1,dir2。可以写成[/dir1]、[/dir2]的形式。# 两种不同的形式表达而已。一种是[/dir1]、一种是[myproject:/],一个意思。因为这里只有一个项目。


aliases:别名

groups:用户组

[/]:指的是/data/svnroot/myproject这个目录。

仓库里面的目录或者项目里面的目录,针对这些项目配置的关于用户和组的读写权限:

[/foo/bar]

[repository:/baz/fuz]

# vim passwd  //[users]下新增[users]aming = aming_!(*$123     ##左边是用户,右边是密码。user1 = user1_^^^123user2 = user2-***123# vim svnserve.conf[general]  ##在下面增加这5行内容anon-access = none  ##匿名用户,没有权限auth-access = write  ##被授权的用户,有写权限password-db = passwd  ##用户密码存储位置authz-db = authz  ##权限控制文件位置,这里只写一个字符串,表示这个字符串就是一个文件名,位置在当前目录下,针对svnserve.conf的相对路径。realm = /data/svnroot/myproject  ##表示对哪一个项目生效,绝对路径。# svnserve -d -r /data/svnroot/   //启动SVN,-d:deamon的形式,后台启动;-r:指定SVN所在路径;后面也可以跟到项目名。# ps aux |grep svnroot       1621  0.0  0.0 162200   656 ?        Ss   19:53   0:00 svnserve -d -r /data/svnroot/root       1623  0.0  0.0 112676   984 pts/0    S+   19:53   0:00 grep --color=auto svn# netstat -lntp |grep svntcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1621/svnserve# iptables -nvL  //检查一下有没有防火墙规则,有的话后续操作不会太顺利。


三、客户端上使用SVN(Linux)

# yum install -y subversion  //另一台机器上安装,安装好后就可以使用svn命令了。# mkdir svntest# cd !$# svn checkout svn://192.168.93.130/myproject --username=aming  //checkout,检出代码。如果你到一台机器上,从来没有连接过svn服务器的情况下,执行这一步以后,它就可以在本机上保存一个曾经你连接过的svnserve的用户名和密码。上面这条命令可以把远程服务端的myproject项目搞到本地来。认证领域:  /data/svnroot/myproject"aming"的密码: aming_!(*$123          //此处的密码就是配置文件中设置的密码-----------------------------------------------------------------------注意!  你的密码,对于认证域:    /data/svnroot/myproject只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion可以保存加密后的密码。请参阅文档以获得详细信息。你可以通过在"/root/.subversion/servers"中设置选项"store-plaintext-passwords"为"yes"或"no",来避免再次出现此警告。-----------------------------------------------------------------------保存未加密的密码(yes/no)?yes   //将密码存在了/root/.subversion/servers下取出版本 0。[root@MRX svntest]# lsmyproject# cd project ; ls -la总用量 0drwxr-xr-x 3 root root 18 8月  29 18:43 .drwxr-xr-x 3 root root 23 8月  29 18:43 ..drwxr-xr-x 4 root root 75 8月  29 18:43 .svn[root@MRX myproject]# cp /etc/fstab .# svn add ./fstab  //添加到版本控制中心,把变更的想要搞到服务器上去的东西做个标记A         fstab# svn commit -m "add file"   //把文件上传到服务器。先增加,再上传。# svn commit -m "add fstab"正在增加       fstab传输文件数据.提交后的版本为 1。# svn delete filename  //在本地删除# svn commit -m "delete filename"  //在服务器上删除[root@MRX myproject]# svn delete fstab D         fstab[root@MRX myproject]# svn commit -m "delete fstab"正在删除       fstab提交后的版本为 2。# svn update  //把当前目录下的文件都更新到最新版,把本地的和服务端的同步。# svn log  //查看变更日志/root/.subversion/auth/svn.simple下的密码文件,如果某个用户不想存储了,可以删除这个文件。


四、客户端上使用SVN(windows)

官网 https://tortoisesvn.net/index.zh.html

下载TortoiseSVN 并安装

简明教程 http://www.jianshu.com/p/6b3b7b915332

下载好后随便选择一个文件夹,比如新建一个myproject,右键文件夹可以看到SVN Checkout和TortoiseSVN。

第一次使用时,也要先SVN checkout,点击之后,会弹出来一个窗口,在最上面的URL of repository里定义一下服务地址和项目地址就可以点OK了:svn://192.168.93.130/myproject。


点OK后再定义用户名和密码:

aming , aming_!(*$123

再点OK


试验:

在Windows的myproject目录下创建一个txt文档,内容随便写一点。再右键该文档,和在Linux上同样的操作,TortoiseSVN→add,再右键SVN commit,在上方空白框内输入add 123.txt,再点OK就可以了。


再到服务端或者另一台客户端上svn update同步一下,就可以看到123.txt了。

在Linux上写了文档,同样的操作,再到Windows上右键SVN update一下,同样可以看到这个111.txt。

# svn add 111.txtA         111.txt[root@MRX myproject]# svn commit -m "add 111.txt"正在增加       111.txt传输文件数据.提交后的版本为 4。


文件 服务 密码 项目 版本 用户 系统 目录 代码 服务器 数据 权限 配置 管理 安全 控制 平台 内容 同时 路径 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全管理岗位考什么 梦幻西游竞拍烟花后就无原服务器 软件开发合同终止条款约定 朝阳区信息化网络技术服务好处 可视化管理数据库 洛阳星际网络技术有限公司 鲤城区众神软件开发公司 海南本地软件开发价格合理 深圳商城软件开发商家 互联网科技榜单 文物绘画软件开发 本地电脑怎么设置为网页服务器 表格每一行增加一行数据库 东企网络技术有限 进销存系统用什么软件开发好 软件开发工程师福利待遇 数据库 约束类型 网络安全个人安全相关知识 山东文旅网络技术有限公司 太仓口碑好的软件开发信息推荐 信息化网络安全员培训课件 电源1300W的服务器 计算机网络技术命令表 电脑dns服务器坏了要多少钱 广播有线电视网络技术 本地电脑怎么设置为网页服务器 东南大学计算机网络安全 光网络技术的发展趋势 北京西城区软件开发公司名单 数据库分布式锁怎么使用
0