欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Subversion安装、基本操作、多人协同工作与Github使用命令

程序员文章站 2022-06-04 19:21:07
...

案例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

相关标签: subversion github