Subversion安装、基本操作、多人协同工作与Github提交代码

案例1:Subversion基本操作

步骤一:安装Subversion服务器
1、 YUM安装subversion软件

yum -y install subversion
rpm -q subversion

输出:subversion-1.7.14-10.el7.x86_64

2、 创建版本库(创建后已经有相应的配置了)

mkdir /var/svn/
svnadmin create /var/svn/project/
ls /var/svn/project/

输出: conf/ db/ format hooks/ locks/ README.txt

3、 本地导入初始化数据(测试)

cd /usr/lib/systemd/system/
svn import . file:///var/svn/project/ -m “Init Data”

4、修改配置文件

vim /var/svn/project/conf/svnserve.conf

anon-access = none  #19行,匿名无任何权限
auth-access = write  #20行,有效账户可写
password-db = passwd  #27行,密码文件
authz-db = authz    #34行,ACL访问控制列表文件

5、创建账户与密码

vim /var/svn/project/conf/passwd

[users]
harry = 123456  #用户名和密码

6、定义ACL访问控制

vim /var/svn/project/conf/authz

[/]            //定义ACL访问控制
harry = rw      //用户对项目根路径可读可写

7、启动服务

svnserve -d -r /var/svn/project

# -d 以守护进程方式运行;-r设置一个虚拟路径,默认客户端要指定绝对路径访问库

netstat -nutlp |grep svnserve

输出:tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 4043/svnserve

备注:启动服务也可以使用svnserve -d启动,但客户端访问时需要指定绝
对路径(svn://服务器IP/var/svn/project)。

步骤二:客户端测试(本机测试也行)

1)将服务器上的代码下载到本地

cd /tmp
svn --username harry --password 123456 co svn://127.0.0.1/ code

#建立本地副本,从服务器本机(ip)上co下载代码到本地code目录,用户名harry,密码123456
输出:Store password unencrypted (yes/no)? yes //提示是>否保存密码

cd /tmp/code
vim user.slice                     //挑选任意文件修改其内容
svn ci -m "modify user"            //将本地修改的数据同步到服务器,-m是备注
svn update                         //将服务器上新的数据同步到本地
svn info     svn://192.168.2.100   //查看版本仓库基本信息
svn log     svn://192.168.2.100    //查看版本仓库的日志
echo "test" > test.sh              //本地新建一个文件
svn ci -m "new file"               //提交失败,该文件不被svn管理
svn add test.sh                    //将文件或目录加入版本控制
svn ci -m "new file"               //再次提交,成功
svn mkdir subdir                   //创建子目录
svn rm timers.target               //使用svn删除文件
svn ci -m "xxx"                    //提交一次代码
vim umount.target                  //任意修改本地的一个文件
svn diff                           //查看所有文件的差异
svn diff umount.target             //仅查看某一个文件的差异
svn cat svn://192.168.2.100/reboot.target    //查看服务器文件的内容
sed -i 'd' tmp.mount              //删除文件所有内容,但未提交
svn revert tmp.mount              //还原tmp.mount文件
rm -rf  *.target                  //任意删除若干文件
svn update                        //还原
sed -i '1a #test###' tuned        //修改本地副本中的代码文件
svn ci  -m  "xxx"                 //提交代码
svn merge -r7:2    tuned          //将文件从版本7还原到版本2

案例2:使用Subversion协同工作

步骤一:多人协同工作
1、两用户修改相同文件的不同行

svn ci -m “modified” //提交失败

报:svn: File ‘/user.slice’ is out of date(过期)

svn update //提示失败后,先更新再提交即>可
svn ci -m “modified” //提交成功

2、两用户修改相同文件的相同行

svn ci -m “modified”

报:svn: File ‘/tuned.service’ is out of date(过期)

svn update //出现冲突,需要解决

报:(s) show all options:p //选择先标记p,随后解决

mv tuned.service.mine tuned.service //修改文件名
rm -rf tuned.service.r10 //删除有问题的文件
svn ci -m “modified” //解决冲突

步骤二:使用dump指令备份版本库数据

svnadmin dump /var/svn/project > project.bak //备份
svnadmin create /var/svn/project2 //新建空仓库
svnadmin load /var/svn/project2 < project.bak //还原

案例3:Github使用命令提交代码

yum -y install git
git clone https://github.com /账户名称/仓库名称clone指令用于将服务器仓库中的资料打包下载到本地
cd 仓库名称
任意修改文件,或新建文件
git add . #add添加新文件
git commit -m “test”
git push #commit和push实现提交代码的功能
git pull #pull更新,类似于svn update

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值