版本控制
Git 工作区、暂存区和版本库
Git 创建仓库
Git 基本操作
Git 分支管理
Git 远程仓库(Github)
Subversion
Subversion服务端
Subversion客户端
Subversion问题
Apache+SVN
本文档使用MrDoc发布
返回首页
-
+
Subversion客户端
2020年5月5日 19:54
admin
#客户端命令: >####svn (版本库的检出/更新/提交/重定向等) svn 命令 [选项] 命令: add #添加文件、目录或符号链接 cat #输出特定文件的内容 checkout(co) URL[@REV][PATH] #checkout可以从服务器版本库中复制以分副本至本地,URL定位版本库,REV指定版本的数据,PATH为本地路径,简写co commit(ci) #将本地副本修改后的内容发布到版本中,简写ci copy SRC DST #将工作副本中的一个文件或目录复制至版本库,SRC本地目录/文件,DST版本库路径 delete PATH #从本地工作副本中删除一个项目 delete URL #从版本库中删除一个项目 diff #对比两个版本之间的差别 import #提交一个路径的副本至版本库 info #显示本地或远程版本信息 list #列出服务器参考中的数据 -------------------------------------------------------- 选项: --password #密码 --username #用户名 -r #指定要检查的特定版本 -------------------------------------------------------- svn checkout file:///var/svn/project1 /var/local_svn svn co svn://192.168.31.88/project1 /var/local_svn svn add * --force #增加当前目录下的所有文件到版本控制中 svn commit -m "modified test.txt" /var/local_svn svn delete /var/local_svn/test.txt svn import -m "new project" /tmp file:///var/svn/project ##工作流程: >####1.复制副本到本地 svn checkout file:///var/svn/project1 /var/local_svn >####2.如果有新增文件或目录,需先要将其添加到版本控制中,不然提交时,不会将这部分提交(重要) svn add * --force (*表示所有,可以填写指定路径) >####3.将本地副本修改后的内容发布到版本中 svn commit -m "modified test.txt" /var/local_svn #hooks钩子应用 >####钩子:当执行某些特定操作时触发执行预先设定好的任务。 在svn的版本库中存在文件目录hooks,里面有很多的.tmp格式的模板文件,如果需要让钩子生效,只需要将对应的文件复制一份,把.tmp这个拓展名去掉,重启svn服务,就可以启动这个钩子了,而钩子文件就是一个shell脚本,这里的执行对应任务,就是执行对应的shell脚本,可以在该脚本里面编写自己需要执行的任何脚本。 -------------------------------------------------------- #这些钩子的前缀有start(数据传输开始之前),pre(数据传输之后,写入版本库之前),post(写入版本库之后),后半部分才是对应的操作名,比如commit、lock、unlock等 >####例:在svn中每次提交完成以后,调用钩子函数,利用Apache需要将版本库的最新信息通过网页可以直接访问。 >####第一步:复制钩子文件 >#####进入到svn服务器的版本库中找到hooks目录 >![](/media//202005/2020-05-05210838347377.png) >#####进入hooks目录 >![](/media//202005/2020-05-05210922636647.png) >#####复制一份提交完成后执行的钩子函数模板在当前hooks文件目录下,只需要将文件名的拓展名去掉。 >![](/media//202005/2020-05-05211052547321.png) >#####查看钩子文件post-commit的权限,如果没有权限需要赋予执行权限 >![](/media//202005/2020-05-05211139159029.png) >#####没有执行权限需要加上执行权限 chmod +x post-commit >![](/media//202005/2020-05-05211239083339.png) --- >####第二步、编写钩子函数脚本 >#####使用编辑器打开该钩子脚本post-commit进行编辑 vi post-commit >#####写入shell脚本函数 >#####如果使自己写的shell脚本,可以去掉该钩子文件的最后几行后 >![](/media//202005/2020-05-05211425832906.png) >#####编写需要执行的脚本 >#####在每次提交完成后,每次需要将最新的版本库的详细信息保存成一个xml文件,放到Apache的目录下,用户可以通过网页浏览版本库的详细信息。 >![](/media//202005/2020-05-05211437956142.png) >#####编辑完成,保存退出 --- >####第三步、重启svn服务 ps -ef|grep svn #查看svn的进程 kill -9 2155 #杀死进程 svnserve -d -r /usr/local/SvnRepository/testrpo #启动svn服务 --- #TortoiseSVN >###下载地址:https://tortoisesvn.net/downloads.html >##windows上连接svn >####1:新建一个目录,右击选择svn 检出 >![](/media//202005/2020-05-05201550272570.png) >####2:在版本库上填写linux的svn地址 svn://ip:3690/仓库名 (这里的仓库名不是/var/project/test而是/test) >![](/media//202005/2020-05-05201634639515.png) >####2:填写用户名密码 >![](/media//202005/2020-05-05201653054857.png) #这时候我们可以看到此目录下生成了一个.svn文件,说明我们已经连接上了linux上的svn服务器 >####3:上传文件 >####现在我们新建一个test.txt文件,在里面随便填一些信息 >####(1)右击选择add >![](/media//202005/2020-05-05201732986419.png) >####然后选择test.txt文件,点击确定,这时候我们会看到test.txt文件上会多了一个加号 >![](/media//202005/2020-05-05201831655498.png) --- >##上传 >####右击选择提交 >![](/media//202005/2020-05-05201847766522.png) >####填写备注选择要上传的文件后点击确定 >![](/media//202005/2020-05-05202114601509.png) >####这时候我们可以看到test.txt文件上的加号会变成绿色的对号,表示上传成功 >![](/media//202005/2020-05-05202128935546.png)
分享到: