代码管理平台
代码管理平台,也可以称为代码管理工具,顾名思义,就是管理代码的平台,代码可以是公司开发的网站,或者是开发的项目,我们需要把这些代码放到一个平台上面进行管理。
说到这可能有人会想,不就是代码吗?我把它放在服务器上的某个目录不就行了吗?开发完新的项目再把代码传上去替换掉旧的代码不就可以了吗?
当然,对于网站来说,这样做是没什么问题的。但是,如果代码每天有很多的地方在更新,当有一天,你想看到最近一段时间代码变化的地方,你怎么看?很不方便,而且你和同事都在开发的时候想看到对方开发的内容。而代码管理平台就能很容易实现目的。
代码管理工具的作用:
- 能追踪一个项目从诞生一直到定案的过程
- 记录一个项目的所有内容变化,无限制返回
- 查看特定版本的修订情况
1
2
3
常用的代码管理工具:
CVS
开启版本控制之门
1990年诞生,“远古时代”的主流源代码管理工具
SVN
全称是Subversion,C/S架构,集中式版本控制之王者
是CVS的接班人,速度比CVS快,功能比CVS多且强大
在国内软件企业中使用最为普遍(70%-90%)
GIT
一款伟大的分布式源代码管理工具
目前被越来越多的开源项目使用
SVN正在被GIT慢慢取代
GIT与SVN的不同在于GIT是分布式的,GIT不需要依赖服务端就可以工作,而SVN是集中式的,所以不行。
安装svn
SVN
因为是C/S架构,所以需要安装服务端和客户端。
准备两台机器,一台作为服务端,IP:192.168.70.128,一台作为客户端,IP:192.168.70.129
1.安装svn (这里用yum 进行安装)
yum -y install subversion*
2.创建svn的目录svnspos
mkdir -p /var/svn/svnspos
3.创建svnspos 仓库
svnadmin create /var/svn/svnspos
4.设置svnspos 仓库的安全账户
在/var/svn/svnspos/conf 目录下
1)vi authz 找个空白处 用户名自己设置user1 , user2 都可以
[/]
用户名 = rw 写在users 下面
2.)vi passwd
用户名 = 密码
3))vi svnserve.conf
anon-access = none (none 需要密码才能查看)
auth-access = write
password-db = passwd
authz-db = authz
realm = /var/svn/svnspos
5.启动svnspos版本服务 (默认端口3690)
svnserve -dr /var/svn/svnspos
6 检查端口是否开启
netstat -tunpl | grep svn
如显示
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN … 开启成功
7.设置svnspos 提交到你的网站根目录下的钩子脚本 假设网站根目录为 www
- cd /var/svn/svnspos/hooks 找到hooks 文件
2)cp post-commit.tmpl post-commit 复制hooks 里面的post-commit.tmpl
3)chmod a+x post-commit 获取权限 - vi post-commit 进来文件 找到最下面写上
export LANG=en_US.UTF-8
svn up --non-interactive --username 用户名 --password 密码 ‘网站根目录路径’
8 .在网站根目录下检出svnspos仓库版本
1) cd www/ 网站根目录所在的文件
2)svn co svn://192.168.70.128 (网站ip) ./
需要输入
服务器密码
用户名
用户密码
9 .设置目录权限
setfacl -m u:daemon:rwx -R ‘网站根目录’
setfacl -m d:u:daemon:rwx -R ‘网站根目录’
10…设置iptables防火墙,把3690 端口打开
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
客户端上使用svn(linux)
客户端上使用SVN
linux:
首先,客户端也需要安装subversion
[root@KXLZQ ~]# yum install -y subversion
从来没连接过SVN,最开始使用要先执行命令,以检出SVN项目
[root@KXLZQ home]# cd svntest/
[root@KXLZQ svntest]# ls
[root@KXLZQ svntest]# svn checkout svn://192.168.70.129/myproject --username=shuai
登录上去:
保存未加密的密码(yes/no)?yes
取出版本 0。
[root@KXLZQ svntest]# ls
myproject
在项目中增加文件:
[root@KXLZQ myproject]# svn add .
svn: 警告: W150002: “/home/svntest/myproject”已纳入版本控制
svn: E200009: 因为一些目标已经版本化,所以不能增加全部目标
svn: E200009: 此请求操作的目标非法
增加完之后,才能把文件上传到服务端
[root@shuai-01 myproject]# svn commit -m “add fatab”
其它客户端要使用SVN时,需要在服务端上拉下来:
svn update //把当前目录下的文件都更新到最新版
svn delete filename //在本地删除
svn commit -m “delete filename” //在服务器上删除
svn log //查看变更日志
客户端使用svn(windows)
Windows:
安装tortoiseSVN
使用教程:https://www.jianshu.com/p/6b3b7b915332