代码管理平台介绍
代码管理平台介绍--svn
版本控制,记录若干文件内容变化,以便未来查阅特定版本修订状况.
好比某一个业务,须要不断更新,好比产品经理这周提交了产品新的需求,改动了一些代码,咱们把新的代码上传到服务器上去,这时候去访问网站就产生了新的变化. 可能咱们天天都有不少的代码须要更新,假如某天想要看几个月前某个业务都更新了哪些地方、都改了哪些功能,想要作一个统计,那就须要去翻看日志,若是这些日志存在还能找到,若这些日志都不存在,那么前面的变动就什么都不知道了. 有了这些代码管理平台以后,能够便咱们查看前面作了哪些变动以及记录,且支持协同开发.
Svn全称subversion,是一个开源版本控制系统,最初母的是为了更好管理Linux内核代码
Git和svn不一样在于Git不须要依赖服务端就能够工做,即git是分布式的.
GitHub是基于Git的线下web页面代码托管品台,能够选择付费服务
GitLab能够认为是一个开源的GitHub,二者没有直接关系
安装sv
准备两台机器:192.168.2.115 -- 服务端
192.168.2.116 -- 客户端git
下载服务端
[root@root-01 ~]# yum install -y subversion
建立版本库
建立版本库的目录:
[root@root-01 ~]# mkdir -p /data/svnroot/myproject
初始化:
[root@root-01 ~]# svnadmin create /data/svnroot/myproject
初始化后会生成配置文件等:
[root@root-01 ~]# ls -la /data/svnroot/myproject
总用量 8
drwxr-xr-x 6 root root 86 10月 23 11:38 .
drwxr-xr-x 3 root root 23 10月 23 11:34 ..
drwxr-xr-x 2 root root 54 10月 23 11:38 conf
drwxr-sr-x 6 root root 233 10月 23 11:38 db
-r--r--r-- 1 root root 2 10月 23 11:38 format
drwxr-xr-x 2 root root 231 10月 23 11:38 hooks
drwxr-xr-x 2 root root 41 10月 23 11:38 locks
-rw-r--r-- 1 root root 229 10月 23 11:38 README.txt
配置文件目录:
[root@root-01 ~]# cd /data/svnroot/myproject/conf/
[root@root-01 conf]# ls
authz passwd svnserve.conf
说明:authz 文件是用来控制权限的
passwd 文件是用来定义密码的
svnserve.conf 是仓库的配置文件
编辑authz文件
vim authz
在[groups]下面添加:
Anna = user1,user2 Anna是用户组,用户组包含了两个用户(user1和user2)
[/] 方括号里面的根指的是这个目录:/data/svnroot/myproject/conf/
@Anna = rw Anna用户组可读可写
* = r 除了Anna用户组,其余的可读
另外一种方式:
[myproject:/] [myproject:/] 这表示一个项目,这种方式用在svnroot目录下有多个项目,也就是指定某个项目
user1 = rw
编辑passwd文件
[root@root-01 conf]# vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
添加用户名和密码:
Anna = 123456
user1 = 586898
user2 = 586898
注:前面是用户名,后面是密码
编辑svnserve.conf
vim svnserve.conf
在[general]下面添加:
anon-access = none anon--匿名用户 没有任何权限
auth-access = write auth--被受权的用户 可写
password-db = passwd 指定用户密码的文件是passwd
authz-db = authz 指定用户权限的文件是authz
realm = /data/svnroot/myproject 表示对应哪一个项目生效
启动svn
启动:
[root@root-01 conf]# svnserve -d -r /data/svnroot/
查看进程:
[root@root-01 conf]# ps aux |grep svn
root 3877 0.0 0.0 162188 656 ? Ss 13:48 0:00 svnserve -d -r /data/svnroot/
root 3882 0.0 0.0 112664 968 pts/0 S+ 13:57 0:00 grep --color=auto svn
查看监听端口3690:
[root@root-01 conf]# netstat -nlpt |grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 3877/svnserve
客户端上使用svn(Linux)
下载客户端
说明:客户端下载subversion就可使用svn命令web
[root@root-02 ~]# yum install -y subversion
检索
检索:
[root@root-02 ~]# cd /home
[root@root-02 svn]# svn checkout svn://192.168.2.115/myproject --username=user1
认证领域: /data/svnroot/myproject
“user1”的密码:
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
/data/svnroot/myproject
只能明文保存在磁盘上! 若是可能的话,请考虑配置你的系统,让 Subversion
能够保存加密后的密码。请参阅文档以得到详细信息。
你能够经过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
取出版本 0。
[root@root-02 home]# ls
myproject
客户端更新的文件上传到服务端
说明:是在客户端操做vim
[root@root-02 ~]# cd /home/myproject
拷贝文件:
[root@root-02 myproject]# cp /etc/favicon.png .
增长:
[root@root-02 myproject]# svn add ./favicon.png
A (bin) favicon.png
上传到服务端:
[root@root-02 myproject]# svn commit -m "add favicon.png"
正在增长 (二进制) favicon.png
传输文件数据.
提交后的版本为 2。
查看服务端
服务端本地是没法显示刚客户端上传的文件:
[root@root-01 ~]# cd /home/svntest/myproject
[root@root-01 myproject]# ls
升级能够看到客户端上传的文件:
[root@root-01 myproject]# svn up
正在升级 '.':
A favicon.png
更新到版本 2。
[root@root-01 myproject]# ls
favicon.png
客户端上使用svn(windows)
下载svn
svn官网:https://tortoisesvn.net/windows
点击DE EN ZH --> 点击下载 --> 根据系统下载32位或64位bash
下载完成后点击打开,全部都点击下一步
在桌面建立一个目录,命名为myproject
点击右键,看看有没有红色框框内的两个图标,若没有的话,重启电脑服务器
点击svn checkout
说明: 红色框框内的IP地址和目录须要填写 --->点击oktcp
点击ok后会弹出认证对话框
填写用户名和密码 -->点击ok分布式
最后还会弹出一个对话框,点击ok便可
checkout后,myproject目录就有两个文件svn
把客服端的1.txt上传到服务端
建立1.txt --> 点击右键Tortoise SVN -->点击Add -->点击SVNcommit -->会弹出一个对话框,要填写add 1.txt -->点击ok --> 再点击ok网站
查看服务端,升级后就有1.txt
[root@root-01 ~] cd /home/svntest/myproject
升级:
[root@root-01 myproject]# svn up
正在升级 '.':
A 1.txt
更新到版本 5。
[root@root-01 myproject]# ls
123.txt 1.txt favicon.png fstab test.txt
在Linux上建立11.txt,上传到服务端
[root@root-01 myproject]# vim 11.txt
[root@root-01 myproject]# svn add 11.txt
A 11.txt
[root@root-01 myproject]# svn commit -m "add 11.txt"
正在增长 11.txt
传输文件数据.
提交后的版本为 6。
Windows要想查看这个文件,点击右键SVNUpdate便可