svn版本管理工具的使用

时间:2023-01-14 10:09:07

安装参考http://www.cnblogs.com/macula/archive/2012/02/12/2347637.html

主要的使用步骤如下:

建立版本管理库:

svnadmin create mobile

(mobile为版本管理库名称,位置在当前登录用户的主目录下,如我正在使用svnadmin用户,则路径为/home/svnadmin/mobile,当如root用户不使用/home路径而是直接是/root/mobile)
将末版文件导入项目(这个命令用于把一个文件夹下的内容整个纳入版本前面创建的管理库中)

svn import mytree file:///home/svnadmin/mobile/  -m "Initial import"

mytree为要导入的文件所在的文件夹路径,file:///....为进行过svnadmin create后的目录 -m 'xxx'会使得'xxx'作为日志记录加入日志中

析出文件

每次有一个用户加入到开发时,需要先执行一次svn checkout命令将文件从版本管理库中导出到制定工作目录(这个目录下采用ll命令可以看到有.svn文件,该文件就是联系svn版本管理的文件)

svn checkout file:///home/svnadmin/www/

第一次需要析出 此后每次修改前svn update即可,在工作目录下svn update后自动将文件夹内文件更新到最后修改的版本 一般开发时都是在最新版本下做修改

提交更改

svn commit -m 'xxx'

即可,-m 后的'xxx'仍然会加入到日志中,用于后续使用svn log查看日志时查看,一般都会加入该版本相关的说明性内容

导出裸文件夹
svn export ~/www  ~/default   //需要强制时加--force参数

就可以把~/www(这是一个工作目录)中的版本(没有指定参数时默认该文件夹下的最新版本)导出到后面制定的目录下,且不包含.svn文件也就是“裸文件夹”。

svn在create命令时得到的那个文件夹下(上例中是mobile文件夹)还有很多文件夹,比如hooks文件夹下可以放置与很多事件相关的处理脚本(比如名称为post-commit的脚本可以在每次一个提交发生后被执行 ),它们可以用于在提交等事件发生时进行文件夹同步等后续操作。

注意,这些脚本是根据名称来决定何时被触发执行的,一般刚安装的时候每个脚本都有一个.tmpl的后缀,此时是不会被执行的。

脚本所使用的语言可以随意,最终执行所使用的解释器通过第一行指定,安装时那些默认脚本里是#!/bin/sh,也就是shell脚本。

当使用shell脚本时注意要使用的命令必须给出完整的路径名,比如我们平常在linux下命令行直接svn xxxx习惯了但是实际上它调用了/usr/bin/svn程序,在脚本中如果要使用需要把/usr/bin/svn完整给出或定义变量

eg.一个完成日志输出和同步到指定文件夹的post-commit脚本

SVN=/usr/bin/svn
REPOS="$1"
REV="$2"
ECHO=/bin/echo
$ECHO `whoami`,$REPOS,$REV >> /home/svnadmin/www/hooks/svn_hook.log
"$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf
export LANG=en_US.UTF-8
$SVN update /home/svnadmin/www/www --no-auth-cache

注意$ECHO `whoami`,$REPOS,$REV >> /home/svnadmin/www/hooks/svn_hook.log中>>是追加而>重定向每次都会清除原文件内容再录入

$SVN update /home/svnadmin/www/www --no-auth-cache 用于同步更新的版本到/home/svnadmin/www/www文件夹,--no-auth-cache可以使得每次同步会立即执行

然后注意需要给予这些脚本可执行的权限。

有关svn的用户权限设置可以参见http://www.cppblog.com/sureandrew/articles/94748.html

远程使用要求服务器上开放3690端口的访问

如果开放,在本地pc上使用svn checkout svn://123.123.123.123/projectname localdirectory --username 用户名 --password 密码

即可(后面用户名和密码可选,projectname是远程服务器上开放的版本库名称,localdirectory为本地想要存放的工作目录)

svn版本管理工具的使用的更多相关文章

  1. 项目(七)SVN版本管理与大型代码上线方案

    SVN介绍 Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置 ...

  2. svn版本管理与上线

    1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统 ...

  3. Linux实战教学笔记41:企业级SVN版本管理与大型代码上线方案

    第1章 SVN服务实战应用指南 1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN ...

  4. 企业SVN版本管理与代码上线方案

    1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Sv ...

  5. SVN版本管理与大型代码上线方案(一)

    SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  6. 在Eclipse中使用版本管理工具SVN

    近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具.由于平时主要是写Java代码,所以能够在Eclipse中使用SVN工具进行版本管理就可以说是很 ...

  7. 版本管理工具git与svn简介

    版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行 ...

  8. $SVN代码版本管理工具的使用

    SVN是一种代码版本管理工具,具有可视化的操作界面,使用简便,和git的功能类似.下面总结一下SVN的基本用法: 1.安装SVN软件,和安装一般的软件的步骤差不多,这里使用的版本是TortoiseSV ...

  9. SVN 等版本管理工具

    程序猿团队开发代码,必须的程序版本管理工具 1.SVN使用教程总结 2.SVN如何切换用户 在使用svn更新或提交数据时需要输入用户名和密码,在输入框中可以选择是否记录,以便下次操作无需再次输入用户名 ...

随机推荐

  1. CSS padding margin border属性详解

    图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层. ...

  2. asp.net 把图片压缩成zip之后再进行下载

    //这是导出的js方法 function fundaochu() { var data = "keyword=GetImageListdaochu&type=daochu&m ...

  3. codeforces 622A Infinite Sequence

    A. Infinite Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. 码工具通过ICP备案

    5月22日,为广大程序员造福的在线工具--码工具 通过了ICP备案,这也意味着本站也越来越正规化,规范化.大家从今日起就可以在网站底部看到本站的ICP备案号. 备案/许可证编号:粤ICP备170597 ...

  5. Spring(三)--AOP【面向切面编程】、通知类型及使用、切入点表达式

    1.概念:Aspect Oriented Programming 面向切面编程 在方法的前后添加方法   2.作用:本质上来说是一种简化代码的方式      继承机制      封装方法      动 ...

  6. Linux找回root密码

    Linux忘记root密码时,密码重置步骤: 1.将虚拟机重启: 2.当进入GRUB倒计时界面,点击键盘e键: 3.点击键盘上下键选择第二行(kernel /vmlinuz-2.6.32-71.29. ...

  7. Unity Shader 基础(3) 获取深度纹理

    Unity提供了很多Image Effect效果,包含Global Fog.DOF.Boom.Blur.Edge Detection等等,这些效果里面都会使用到摄像机深度或者根据深度还原世界坐标实现各 ...

  8. 【BZOJ5302】[HAOI2018]奇怪的背包(动态规划,容斥原理)

    [BZOJ5302][HAOI2018]奇怪的背包(动态规划,容斥原理) 题面 BZOJ 洛谷 题解 为啥泥萌做法和我都不一样啊 一个重量为\(V_i\)的物品,可以放出所有\(gcd(V_i,P)\ ...

  9. NAT与网桥

    CentOS设置虚拟网卡做NAT方式和Bridge方式桥接 时间:2015-02-25 23:30来源:blog.51cto.com 作者:samlei    摘要:KVM虚拟机网络配置的两种方式:N ...

  10. 使用FFmpeg常见问题

    使用FFmpeg常见问题 https://blog.csdn.net/willib/article/details/52530328 https://blog.csdn.net/nogodoss/ar ...