svn版本管理工具的使用
安装参考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版本管理工具的使用的更多相关文章
- 项目(七)SVN版本管理与大型代码上线方案
SVN介绍 Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置 ...
- svn版本管理与上线
1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统 ...
- Linux实战教学笔记41:企业级SVN版本管理与大型代码上线方案
第1章 SVN服务实战应用指南 1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN ...
- 企业SVN版本管理与代码上线方案
1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Sv ...
- SVN版本管理与大型代码上线方案(一)
SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...
- 在Eclipse中使用版本管理工具SVN
近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具.由于平时主要是写Java代码,所以能够在Eclipse中使用SVN工具进行版本管理就可以说是很 ...
- 版本管理工具git与svn简介
版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行 ...
- $SVN代码版本管理工具的使用
SVN是一种代码版本管理工具,具有可视化的操作界面,使用简便,和git的功能类似.下面总结一下SVN的基本用法: 1.安装SVN软件,和安装一般的软件的步骤差不多,这里使用的版本是TortoiseSV ...
- SVN 等版本管理工具
程序猿团队开发代码,必须的程序版本管理工具 1.SVN使用教程总结 2.SVN如何切换用户 在使用svn更新或提交数据时需要输入用户名和密码,在输入框中可以选择是否记录,以便下次操作无需再次输入用户名 ...
随机推荐
- 内核中container_of宏的详细分析【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637597.html 内核中container_of宏的详细分析 16年2月28日09:00:37 内核中 ...
- V4L2学习记录【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637600.html V4L2学习记录 这个还没有分析完,先在这放着,防止电脑坏掉丢了,以后再完善 V4L ...
- 存储器结构、cache、DMA架构分析--【原创】
存储器的层次结构 高速缓冲存储器 cache 读cache操作 cache如果包含数据就直接从cache中读出来,因为cache速度要比内存快 如果没有包含的话,就从内存中找 ...
- springboot系列十一、redisTemplate和stringRedisTemplate对比、redisTemplate几种序列化方式比较
一.redisTemplate和stringRedisTemplate对比 RedisTemplate看这个类的名字后缀是Template,如果了解过Spring如何连接关系型数据库的,大概不会难猜出 ...
- 编写html与js交互网页心得:编写两个按钮切换显示不同的图片
第一步:先建立一个html网页,如下: <!DOCTYPE html><html> <head> <meta charset="utf-8&quo ...
- zabbix3.0.4报错Get value from agent failed: cannot connect to [[1.1.1.1]:10050]: [4] Interrupted syste
一.问题描述 部署完Zabbix agent之后,Server无法获取到数据.报错.报错信息如下: Get value from agent failed: cannot connect to [[1 ...
- iframe传递参数问题
在页面中嵌入了iframe,如果需要传递参数到iframe中 1.通过将参数嵌入到url中,在iframe中使用${param.xxx}可以获取 2.通过将参数存入到session中,在iframe中 ...
- LinkedList源码分析笔记(jdk1.8)
1.特点 LinkedList的底层实现是由一个双向链表实现的,可以从两端作为头节点遍历链表. 允许元素为null 线程不安全 增删相对ArrayList快,改查相对ArrayList慢(curd都会 ...
- oracle中REGEXP_SUBSTR方法的使用
近期在做商旅机票平台,遇到这样一个问题: 有一张tt_ticket表,用来存机票信息.里边有一个字段叫schedule,表示的是行程,存储格式为:北京/虹桥 由于公司位于上海.而上海眼下有两个机场:浦 ...
- java.net.ServerSocket 解析
注:本文来自:简书:jianshu 作者:jijs链接:http://www.jianshu.com/p/7c0722a8b66f來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...