安装参考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. Netty通信原理

    Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端,它极大的简化了TCP和UDP套接字服务器等网络编程. BIO(Blocking IO):每一个请求,一个S ...

  2. 【转】Python之文件读写

    [转]Python之文件读写 本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 ...

  3. Python学习之not,and,or篇

    Python学习之not,and,or篇 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. 运算符优先级 not > and > or. 举例如下: ...

  4. datatables 添加excel下载

    Datatables 版本 1.10.12 和普通datatables不一样的是: 引入包 <script src="../../vendor/datatables/js/dataTa ...

  5. centos中进程管理工具

    进程管理:  二进制的格式为ELF,是CPU指令集中的指令  程序=指令+数据,  进程是程序的副本,可以有多个  内核是一个资源调度监视器  Linux是抢占式多任务  内存被事先划分成多个相同大小 ...

  6. jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案

    1. 前言 由于项目需要,需要load一个页面并保持ajax返回的div能响应其页面内的JS的click事件.这个不是 解决用jquery load加载页面到div时,不执行页面js的问题 这类问题, ...

  7. matplotlib画图

    matplotlib画图 import numpy as np import matplotlib.pyplot as plt x1=[20,33,51,79,101,121,132,145,162, ...

  8. Dubbo入门---搭建一个最简单的Demo框架

    参考文档: https://blog.csdn.net/noaman_wgs/article/details/70214612/

  9. SSD笔记

    参考:https://zhuanlan.zhihu.com/p/24954433?refer=xiaoleimlnote http://blog.csdn.net/u010167269/article ...

  10. laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)

    laravel中比较常规的列表查询: /** * 活动列表 * @param Request $request * @return \Illuminate\Http\JsonResponse */ p ...