当前位置:文档之家› SVN管理手册

SVN管理手册

SVN管理手册
SVN管理手册

SVN使用管理规范

1、SVN账户和密码

1.1各在职员工需牢记各自的账户和密码,不可向他人透漏,禁止使用他人账户进行SVN各项操作。

1.2新员工入职后,由管理员(暂定为孙明明)为其新增SVN用户,并分配对应的权限,员工只能操作其权限之内的代码,文档等等。

1.3 员工离职后,由管理员删除其SVN账户,并负责把该账户下的东西拷贝移植出来,避免重要资料的丢失。

2、不要签出(SVN Checkout)整个目录。

工作中需要对项目或解决方案进行任何操作时,应使用SVN请求最新代码或文件。不要签出(SVN Checkout)整个目录,除非特别必要,不应同时签出过多的项。

3、先更新(SVN Update),再提交(SVN Commit)

SVN更新的原则是要随时更新(SVN Update),随时提交(SVN Commit)。当完成了一个小功能,能够编译并且通过自己测试之后,谨慎地提交。

如果在修改的期间别人也更改了SVN的对应文件,那么Commit就可能会失败。如果别人和自己更改的是同一个文件,那么Update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。

在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错。

4、多提交(SVN Commit),不要长时间签出(SVN Checkout)项目或解决方案,减少因多人对同一文件进行操作而产生的文件冲突。

每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。

5、不要提交不能通过编译的代码

代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出(SVN Checkout)代码之后能够在统一的环境中进行编译。

6、每次提交必须书写明晰的标注

在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。

7、提交时注意不要提交本地自动生成的文件

例如eclipse中的.classpath文件,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。

8、不要提交自己不明白的代码

代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。

9、慎用锁定功能

在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。

平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。

10、标记版本

对已经成熟稳定的版本,可标记为“发布版”,由项目经理提交给管理员。管理员将该版本向技术支持部成员开放,用于新项目的实施和现有用户的升级维护。

11、管理员需对SVN管理的所有项目定期备份。

版本管理工具可以管理任何类型的文件,但是在软件开发过程中哪些应该纳入版本管理,哪些不应该纳入版本管理,还是有些建议需要遵循。

11.1. 所有源代码、makefile文件、工程文件需要入软件库。

11.2. 所有编译过程中生成的中间文件和目标文件一般不需要加入到版本库。

11.3. 构建脚本、测试脚本、说明文件、安装脚本、设计文档等需要加入到版本库。

11.4. 工程中的用到的图标文件、声音文件等在编译、运行时需要的文件要加入到版本库中。

11.5. 第三方源代码、库等开发、运行环境需要加入到版本库。

11.6. 版本库要合理组织目录,以满足项目的需求。

11.7. 避免在版本库中多处保存同样的东西,如果确实有此需求,可以在一处保存,用一个项目级的工作区初始化脚本来实现

项目管理版本控制SVN实践教程

针对原文做了两个修改,见文中【修改】部分,不然不能正确配置服务器,并且添加了一些注释(flywen 2010-9-28) 原文出处: https://www.doczj.com/doc/9b1995803.html,/ttzhang/archive/2008/11/03/1325102.html https://www.doczj.com/doc/9b1995803.html,/ttzhang/archive/2008/11/04/1325940.html 文章版权归原作者Forrest Zhang所有。 一、VisualSVN Server的配置和使用方法【服务器端】 1.1 VisualSVN Server的安装 最新版本是1.6.1,你可以在这里下载: https://www.doczj.com/doc/9b1995803.html,/files/VisualSVN-Server-1.6.1.msi VisualSVN Server,最新更新版本是1.6.2,你可以在这里下载: https://www.doczj.com/doc/9b1995803.html,/files/VisualSVN-Server-1.6.2.msi VisualSVN Server Documentation下载: https://www.doczj.com/doc/9b1995803.html,/server/doc/VisualSVN-Server.pdf 下载后,运行VisualSVN-Serv er-1.6.1.msi程序,点击Next,下面的截图顺序即为安装步骤: 图1:

图2: 注意:Server Port那里,默认端口有80/81/8080三个;如果最后面的CheckBox被选中,则表示使用安全连接【https协议】,这是的端口只有433/8433二个可用。Location 是服务器端的安装位置,Repositories是代码仓库,这里保留一份总的代码,别人的需要从中check out代码,修改后再commit回这个仓库 图3:

使用SVN命令行工具

使用SVN命令行工具 如果你不知道命令怎么用svn命令,可通过如下方式查询:svn help知道了子命令,但是不知道子命令的用法,还可以查询:svn help ci 开发人员常用命令导入项目svn import https://www.doczj.com/doc/9b1995803.html,:82/pthread --message "Start project"导出项目svn checkout https://www.doczj.com/doc/9b1995803.html,:82/pthread采用export 的方式来导出一份“干净”的项目svn export https://www.doczj.com/doc/9b1995803.html,:82/pthread pthread为失败的事务清场svn cleanup在本地进行代码修改,检查修改状态svn status -vsvn diff更新(update)服务器数据到本地svn update directorysvn update file增加(add)本地数据到服务器svn add file.csvn add dir对文件进行改名和删除svn mv b.c bb.csvn rm d.c提交(commit)本地文档到服务器svn commitsvn cisvn ci -m "commit"查看日志svn log directorysvn log file相关的一些东西:1、在本地文件中,每个目录下都有一个.svn文件夹(属性为隐藏),保存了相关的信息。2、注册环境变量SVN_EDITOR为"E:\Program Files\Vim\vim71\gvim.exe",结果在svn ci的时候,出现错误:'E:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。svn: 提交失败(细节如下):svn:

SVN使用手册大全(史上最全)

目录 1.修改SVN访问密码 (1) 2.SVN客户端使用说明 (2) 2.1.安装SVN客户端 (2) 2.2.迁出配置库内容 (3) 2.3.维护工作文件 (4) 2.3.1.增加文件 (4) 2.3.2.更新文件 (8) 2.3.3.删除文件 (9) 2.3.4.修改文件 (10) 2.3.5.比较版本差异 (10) 2.3.6.撤销更改 (13) 2.3.7.锁定和解锁 (13) 2.3.8.重命名文件 (14) 2.3.9.获取历史文件 (14) 2.3.10.检查冲突 (15) 2.3.11.解决冲突 (16) 2.3.12.忽略无需版本控制的文件 (16) 2.3.13.去除SVN标志 (17) 2.3.14.查看文件每行的修改信息 (17) 2.3.15.重置访问路径 (18) 2.3.16.本地路径转换 (18) 2.4.浏览版本库 (18) 2.5.建立标签 (19) 2.6.建立分支 (19) 2.7.清除用户名等信息 (20) 2.8.统计信息 (21) 3.MYECLIPSE集成SVN (23) 3.1.安装SVN插件 (23) 3.2.配置M Y E CLIPSE提交目录 (28)

1. 修改SVN访问密码 打开IE,在地址栏中输入地址:http:// /svnmanager/index.php,进入SVNManager的欢迎界面,如下图所示: 点击“登陆”按钮进入登陆界面,如下图所示: 输入已知的用户名和密码,点击“登陆”按钮进入用户管理界面,点击“用户管理”按钮显示“编辑用户”菜单,如下图所示: 点击“编辑用户”按钮,进入用户信息修改界面,如下图所示:

SVN管理员使用指南

SVN 管理员使用指南

目录 1Subversion简介 (1) 1.1Subversion简介 (1) 1.2Subversion架构 (2) 1.3Subversion组件 (3) 1.4Subversion基本流程 (3) 2安装SVN 服务 (4) 2.1安装SVN和TortoiseSVN (4) 2.2创建SVN资源库 (4) 2.3创建SVNserver服务 (5) 2.4运行SVNserver服务 (6) 3用户及权限管理 (6) 3.1用户管理 (7) 3.2权限管理 (7) 4SVN基本使用 (9) 4.1导入/导出(import/export) (9) 4.2初始化检出(checkout) (10) 4.3更新修改(update) (10) 4.4查看日志信息(show log) (10) 4.5取消修改(revert) (10) 4.6提交修改(commit) (10) 4.7合并信息(merge) (10) 4.8创建/删除/重命名 (10) 4.9加锁/释放锁(get/release lock) (10) 4.10添加、删除、重命名(add、delete、rename) (10) 4.11拷贝(copy) (13) 4.12查看修改信息(check for modifications) (13) 4.13分支/标记(branch/tag) (13)

4.14创建并应用补丁(create/apply patch) (15) 4.15备份/恢复资源库 (17) 4.16删除资源库 (19) 4.17版本(revision)关键字 (19) 4.18统计信息(statistics) (20) 4.19禁用密码缓存 (21) 5TortoiseSVN设置 (21) 5.1常规设置(General) (23) 5.2图标叠加(Icon overlays) (27) 5.3网络设置(network) (29) 5.4日志缓存设置(log caching) (30) 5.5钩子脚本设置(Hook Scripts) (32) 5.6外部程序设置(external programs) (32) 6TortoiseSVN基本命令 (37) 6.1Svn子命令 (37) 6.2Svnadmin (38) 6.2.1Svnadmin Switches (39) 6.2.2Svnadmin Subcommands (39) 6.3Svnlook (40) 6.3.1Svnlook选项 (40) 6.3.2Svnlook (41) 6.4Svnserve (41) 6.4.1Svnserve选项 (41) 6.5Svnversion (42) 6.5.1Svnversion选项 (42)

SVN命令使用手册

SVN命令使用手册修改版本记录 M:修改A:添加D:删除

SVN命令使用 一、常用命令 1.Svnadmin create创建库 svnadmin create path 在windows版本上: D:\>svnadmin create test2 D:\> 通过dir来列出目录中文件,已经包含test2,如图1所示: 图1 说明此时已经成功建立 2.Svn import导入项目 svn import project_path svn_lib_path -m “comment” 举例: 假设有一个工程名称unismg,代码的文件目录是unicom; A、我们在D盘新建目录unismg,在此目录下新建三个文件目录,如图2所示: 图2

trunk中存放的是项目主线;branches中存放源码分支;tags存放在开发过程中做的标签。 B、我们将代码unicom放到d:\unismg\trunk\中 C、执行命令D:\>svn import d:\unismg file:///d:/test2/unismg -m "initial import unismg" 结果如图3所示: 图3 这样我们就将工程代码导入svn库中管理。此时删除D:\>unismg目录也没有关系,因为你的源代码已经在SVN库中管理了。 有人会有疑问,为什么我到test2目录中去找*.c文件怎么一个没有找到啊,是的SVN 管理代码,并不是简单的保存文件,而是利用bdb管理的,所以你看不到源码存在。 之后你可以使用后续的命令来工作了。 多说一句,关于svn_lib_path的几种形式: file:///直接版本访问(本地磁盘) http://通过配置subversion的Apache服务器的WebDAV协议 https://与http://相似,只不过增加了ssh协议 Svn://通过svnserver服务自定义的协议 Svn+ssh://与svn://相似,但是通过SSH协议封装 比如,联通在信网关在30.251linux服务器上,使用的是svnserver服务自定义的协议,那么,导入工程代码时应采用的命令是: svn import $path/proj/unismg svn://192.168.30.251:3482-m "initial import unismg" 3.Svn co: 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 举例: svn co svn://192.168.30.251:3482/trunk/unicom 下面信息就是从库中下载的代码信息。

SVN管理规范方案

Subversion管理规范 一Subversion介绍 Subversion (Subversion)是一个时间机器,随时记录文件和目录的每次改动,例如:文件的增加、删除、重新排列文件等。同时SUBVERSION允许你恢复以前旧版本的数据,或者检查数据变化的历史。 SVN使用类似数据库事物的方式来处理用户提交入库的过程,整个改动要么成功的被提交,要么被中断并回滚。在数据提交完之前,其他人是看不到用户提交的修改文件,你看到的要么是改动之前的状态,要么是改动之后的状态。这样的行为被称为“原子提交”。原子提交很有用,因为它能保证所有相关人员看到的总是相同的东西。原子提交过程的其中一步就是包括把你的所有改动打包为

一个“修订集”(有时被称为改动集),并且再给个改动标记的修订号(绿色勾变为红色叹号)。 图 1 图1总体概括了SVN 整个操作过程:首先用户从版本库通过网络“检出”到本地工作副本中,然后,在本地工作副本中进行增加、修改、删除文件后“提交”到版本库中,如果本地工作副本中版本较系统版本过时,用户使用“更新”功能与系统上版本保持一致。 二 Subversion 的目录结构 每个SVN 版本库下需要有trunk(可用项目名做目录名)、branches 及tags 目录,trunk 表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上。branches 表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中。tags 表示保存测试无问题的发布版本,不可修改。branches/tags 命名规则:项目名[_说明]_版本号。 在这需要说明下分三个目录的原因,如果项目分为一期、二期、三期等,那么一期上线时的稳定版本就应该在一期完成时将代码copy 到branches 上,这样二期开发的代码就对一期的代码没有影响,如新增的模块就不会部署到生产环境上。而branches 上的稳定的版本就是发布到生产环境上的代码,如果用户使用的过程中发现有bug ,则只要在branches 上修改该bug ,修改完bug 后再编译branches 上最新的代码发布到生产环境即可。tags 的作用是将在branches 上修改的bug 的代码合并到trank 上时创建个版本标识,以后branches 上修改的bug 代码再合并到trunk 上时就从tags 的version 到branches ,最新的version 合并到trunk ,以保证前期修改的bug 代码不会在合并。 版本库 本地工作副本

SVN-高级应用使用指南

文档规则 [本地工作区] :work copy,本地工作副本; [主项目]:引用共用模块的新项目(工程) 最新版本(HEAD revision):版本库里文件或目录的最新版本 SA :SVN服务器的管理员 PRA :单个项目库的管理员,或者是项目负责人 User :普通工作人员 WC :work copy ,本地工作副本 一、模块化开发中svn的使用 主要介绍模块化开发中公用模块/组件的版本控制,介绍两种方法。其中,公用模块一般指那些已经完成的、不可修改的、无法编译成dll的、功能较为完整的代码群。 1.1手工维护公用模块/组件的[本地工作区] 将公用模块(的所需版本)直接取出ckeckout 到本地,公用模块的[本地工作区] 可以作为被引用的[主项目] [本地工作区] 的子目录也可以放在其他独立目录中。[主项目]的提交commit 对公用模块的[本地工作区] 不会发生任何影响,而且公用模块的[本地工作区] 需要项目团队中的每个成员与[主项目] [本地工作区] 相对独立的维护(取出ckeckout ),可能会出现不同项目成员之间的公用模块[本地工作区] 不一致的错误。 1.2 Svn自动维护公用模块/组件的[本地工作区] 需要使用svn:externals属性,具体操作步骤如下:察看[主项目] [本地工作区] 的目录属性

添加svn:externals 属性,格式:子目录名称-r版本号公用模块的URL。公用模块取出ckeckout出来的[本地工作区] 必须作为[主项目][本地工作区] 的子目录,格式中的“子目录名称”就是指公用模块的[本地工作区] 目录名称,注意不要与[主项目]自身的目录同名。如果需要使用公用模块的特殊版本,需要设置格式中的“版本号”,注意加上“-r”。设定好svn:externals属性后需要进行提交commit操作。项目团队的其他成员直接更新update即可,能够自动得到公用模块的[本地工作区]。[主项目]的提交commit对公用模块的[本地工作区] 不会发生任何影响。如果引用多个模块,只需要在设置该属性值的时候将多个模块的路径都填写上去即可。 注意:公用模块的[本地工作区] 一般不建议进行修改,即不要直接对公用模块的[本地工作区] 进行修改、提交commit 操作,建议管理员将公用模块的svn库的权限设置设定为只读权限。如果公用模块确实需要针对[主项目]进行个性化修改,这种情况的处理方法在此次讲座的后面将会谈到。

SVN管理管理规范

1.使用注意事项 负责而谨慎地提交自己的代码(先更新后提交) SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且并且自己测试之后,谨慎地提交。 如果提交过程中产生了冲突,则需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。 如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。 保持原子性的提交 每次提交的间歇尽可能地短,以一个小时,两个小时的开发工作为宜。如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug 的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。 不要提交自动生成的文件 Visual Studio在生成过程中会产生很多自动文件,如.suo等配置文件,Debug,Release,Obj等编译文件,以及其他的一些自动生成,同编译代码无关的文件,这些文件在提交的时候不应该签入,如果不小心签入了,需要使用Delete 命令从仓库中删除。这个可以使用SVN过滤功能,在设置里面设置ignore lists. 不要提交不能通过编译的代码 代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库或者没有放入GAC(针对.Net Framework)中,项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。 不要提交自己不明白的代码 代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。提前宣布自己的工作计划 在自己准备开始进行某项功能的修改之前,先给工作小组的成员谈谈自己的修改计划,让大家都能了解你的思想,了解你即将对软件作出的修改,这样能尽可能的减少在开发过程中可能出现的冲突,提高开发效率。同时你也能够在和成员的交流中发现自己之前设计的不足,完善你的设计。 对提交的信息采用明晰的标注 +) 表示增加了功能 *) 表示对某些功能进行了更改 -) 表示删除了文件,或者对某些功能进行了裁剪,删除,屏蔽。 b) 表示修正了具体的某个bug

svn常用命令详解

一.SVN导出(check out 和export的区别) 1.check out跟check in对应,export跟import对应; 2.check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关 联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 3.export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行 Update和Commit操作。导出文件夹下没有.svn目录。 二.linux下svn命令大全 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N][--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“[--force] PATH 例如:svn lock -m “lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update -r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改

svn迁移/用户管理

一,SVN迁移 准备工作 1,apache_2.0.63-win32-x86-no_ssl.msi 2,TortoiseSVN-1.3.5.6804-svn-1.3.2.msi 以上文件在192.168.0.141\\d$\\tool文件夹下 迁移步骤 以192.168.0.141为例 1拷贝D:\svnroot\MyProject至目标目录 在C:\Program Files\Apache Group\Apache2\conf\httpd.conf173行增加如下代码 LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so" LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so" 在858行增加 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so DAV svn SVNPath D:/svnroot/MyProject(目标目录) AuthzSVNAccessFile D:/svnroot/MyProject/conf/access.auth Satisfy Any Require valid-user AuthType Basic AuthName "Subversion repositories" AuthUserFile D:/svnroot/MyProject/conf/users.auth Require valid-user 二,Svn增加 桌面add.bat

SVN常用命令(WINDOWS)

SVN常用命令(windows) 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn addtest.php(添加test.php) svn add*.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit-m“LogMessage“[-N][--no-unlock]PATH(如果选择了保持锁,就使 用–no-unlock开关) 例如:svn commit-m“add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock-m“LockMessage“[--force]PATH 例如:svn lock-m“lock test file“test.php svn unlock PATH 5、更新到某个版本 svn update-r m path 例如: svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版 本。 svn update-r200test.php(将版本库中的文件test.php还原到版本200) svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被 锁定】 2)svn status-v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改 人。 注:svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 简写:svn st 7、删除文件 svn delete path-m“delete test fle“ 例如:svn delete svn://192.168.1.1/pro/domain/test.php-m“delete test file” 或者直接svn delete test.php然后再svn ci-m‘delete test file‘,推荐使用这种 简写:svn(del,remove,rm)

TortoiseSVN客户端常用命令详解

TortoiseSVN客户端常用命令详解 1、Checkout 首先要Checkout服务器端的Repository, 所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。Checkout的具体方式是: 在客户端新建一个空目录,比如:F:\Project1 (确保是空的) 在该目录上单击右键,在弹出式菜单中选中SVN Checkout..., 之后按要求录入内容: 然后点OK,会弹出一个认证对话框, 输入用户名和密码。

点OK后就完成了对Repository的Checkout。 检出后,所有检出文件上都打着绿色对勾: 命令方式检出 1:在DOS命令中输入需要检出的目录: http://192.168.1.210:8081/svn/svnproject/Knowledge 2:其中,意思是,检出文档是放在D盘的根目录下,是检出文档的存放位置,如下图:

2、update 获取版本库中最新版本,具体的方法是:在WC目录上单击右键,SVN Update。 这时WC中的文件就是最新的版本了。 3、commit commit功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。 只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号,在下次commit的时候才能选到该文件。commit页面:

注意:commit的时候,最好填写Log信息, Log内容包括:修改了哪些东西及为什么做这些修改(what+why) 强制必须录入log: property 中设置录入log最小长度,此时commit必须录入log,否则不允许提交. 设置录入log最小长度页面:

svn项目管理

目录划分 Trunk:存放项目代码的基线 Tags:暂时不用 Branches:存放各种代码分支。 ●DevBranche放开发分支 ●TestBranche放测试分支 ●ReleaseBranche放发布分支 Document:存放每个版本产生的文档。其中每个版本分为几个阶段: ●项目计划:存放该版本的任务安排的相关事宜。 ●需求分析:存放该版本的相关需求文档,及对需求分析的相关产出。 ●开发阶段:存放在开发代码过程中的相关产出。如SQL ●测试阶段:存放在测试阶段应该具备的产出文档。如测试用例。 ●发布阶段:存放发布阶段具备的文档。如发布手册

分支管理流程 开发过程中,一般采用版本迭代,并行开发的模式。理由如下: 1.为了能够适应需求快速上线 2.及时修复线上生产环境的bug 3.快速响应紧急需求 根据以上的背景及目的,对并行版本的分支管理如下 1.在时间A点打出dev-version-01分支 2.在时间B点打出dev-version-02分支 3.随着dev-version-01版本的任务的遂一交付,分别在A-01,A-02打出test分支进行测试 4.当版本的bug全部解决完后,测试结束,则打出realese版本进行版本发布 5.版本发布结束后,当线上环境验收完毕后,需要把该开发分支的代码合并入trunk。并 通知其余各分支从trunk合并到各开发分支。 版本命名 一般版本管理中会出现几种情况:正常版本,bug修复版,紧急需求版。针对不同情况版本的命名可如下: 正常情况下的版本命名:ms_项目名_版本号。如ms_care_2014.01 bug修复版版本命名:ms_项目名_版本号-序号。如ms_care_2014.01-01 紧急需求版:由于紧急需求一般会跟bug修复版一起发布,命名可同上 分支合并方式 分支合并至trunk:

svn管理规范,华为

竭诚为您提供优质文档/双击可除 svn管理规范,华为 篇一:svn管理规范 安生sVn管理规范 第一章总则 第一条目的 通过对具备sVn管理权限的员工进行sVn规范的落实工作,促使员工不断改善工作效率,规范操作过程,从而提高公司对sVn仓库的合理、充分、高效利用的能力。 第二条适用范围 本制度适用于浙江安生信息科技有限公司(以下简称“公司”)及下属子分公司全体员工。 第三条责任说明 对于公司离职的员工,原则上由其所在部门具备sVn管理系统管理权限人员负责清除权限,同时人事行政部必须及时通知离职员工所在部门具备sVn管理系统管理权限人员(通常为部门主管)的权限清除工作。 第二章细则 第一条库管理

1,公司的所有sVn仓库(包括杭州)将整合在统一的sVn服务器上。2,公司历史迁移库在访问uRl中以“svn-past”标记,新建库在访问uRl中以“svn”标记。 第二条权限下放原则 1,由具备系统管理员权限(可配置)的管理人员分配库管理员。2,库管理员允许多个,通常将库管理员赋给对应于某库的项目经理。3,项目经理具备分配拥有项目(对应于某库)的人员以及权限的能力。3,sVn访问时统一将 ip替换为“https://www.doczj.com/doc/9b1995803.html,”,端口为90。 第三条目录规范 1,按业务领域创建库,再按区域和平台性质划分分支目录,在分支目录下管理开发分支(适用于开发部)。 2,所有新建仓库默认结构为: --branches--tags--trunk各目录下的所有子目录均不允许出现trunk、tags、branches。3,开发分支命名规范:年月日-时分秒-编号,如“20xx1223-000000-001”。4,标签命名规范:年月日-时分秒-release-编号,如 “20xx1223-000000-release-001”。 第四条其他约束 1,对于仓库目录结构的操作,一律通过sVn管理系统进行,禁止使用eclipse5,编号为branches或则tags下已存在目录数量加1的结果。svn插件或则tortoisesVn客户

SVN管理规范

1、目的: 本制度为研发部SVN配置管理的准则和依据,所有与SVN配置管理的行为都必须遵照并服从于本制度。 2、适用范围: 本制度适用于研发部全体员工。 3、控制要求和方法: 3.1 操作流程 首先用户从svn版本库通过网络“检出”到本地工作副本中,然后,在本地工作副本中进行增加、修改、删除文件后“提交”到版本库中,如果本地工作副本中版本较系统版本过时,用户使用“更新”功能与系统上版本保持一致。 3.2 帐号注册、权限申请 1. 用户帐号注册:新进员工没有SVN帐号,通过联系SVN管理员,注明申请SVN普 通帐号,管理员处理完帐号注册事宜后,通知使用并介绍使用规范。 注:普通帐号,只对目录有读取权限,无法更改。 2. 权限的申请:根据员工所参与的项目,SVN管理员对其开放相应目录的读、写权限。 3. 账号注销:员工离职后,对其账号进行注销。 3.3 操作规范 1. 每日进行开发工作之前更新代码,下班时提交代码。 2. 各员工需牢记各自的账户和密码,不得向他人透漏,严禁使用他人账户进行SVN各项操作。

3. 不要签出整个目录,除非特别必要,不应同时签出过多的项目。 4. 文件提交时要求必须提交注释,注明相关修改信息,日志信息描述的越详细越好,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。 5. 代码变动及时提交,避免丢失本地修改后无法恢复。 6. 在提交之前要编译代码并修正错误。要保证新增加的文件同时被提交,否则只在你本地能正常工作,导致其它人不能编译通过。 7. 提交之前要测试所改变的应用,测试改变后的效果是否达到预期的目的。 8. 多次检查提交的内容。提交之前应先做SVN更新或与资源库同步,注意到SVN关于冲突、错误的信息。资源库同步会告诉你将要提交的内容与资源库内容之间的差别,确认它们是不是你真正想要提交的。 9. 如果别人和自己更改的是同一个文件,那么Update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。 10. 在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错。 11. 提前宣布修改计划。当你计划进行修改,需要影响到SVN里的许多文件时,先通过邮件或者当面通知其他开发者。例如,修改底层数据库模块时,有可能影响到业务逻辑层调用数据库模块的地方。这样其他开发者会有准备,也会对修改提出意见和建议。 12. 每次提交尽量是一个最小粒度的修改。比如一个小功能提交一次。 13. 不要提交不能通过编译的代码。代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。 14. 提交时注意不要提交本地自动生成的文件,提交的文件必须是开发者共用的程序文件,程序编译中产生的中间文件或文件夹,如/Debug/、/Release/、*.ncb、*.obj、*.o、Thumbs.db、/build/、*.class、/classes/、/data/等不要提交到SVN里。 15. SVN管理员需对SVN的所有项目定期备份。 16. SVN的资料不允许公开给其他部门人员,确实要分发的,必须通过总经理同意。 重要说明文件要求: 硬件开发:

linux下svn的配置及svn常用命令

SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。右图是一个svn的工作流程,它可以很方便用户的代码编写。 1.首先安装SVN:”sudo apt-get install subversion”. 查看svn的版本和确定是否安装成功:”svnserve –version”. 2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。这里说明一下:版本库之间是独立的。(下图为msm的目录) 3.增加用户 修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,列子如下 用户组格式: [groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。版本库目录格式: [<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>, 其中,方框号内部分可以有多种写法: /,表示根目录(仓储目录)及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。 下图是我增加的用户组:(注意:等号后留有空格) 增加后:

SVN权限控制

权限配置 作为一个配置管理员,需要管理用户的权限,本文主要介绍了使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。 1. 认证(Authentication)和授权(Authorization) 这两个术语经常一起出现。其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限。 2. svnserve下的配置文件 因为本文是以svnserve为例的,所以先介绍一下版本库目录的结构: D:\SVNROOT\PROJECT1 ├─conf ├─dav ├─db │ ├─revprops │ ├─revs │ └─transactions ├─hooks └─locks 其中conf下面有三个文件: authz passwd svnserve.conf

其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件: password-db = passwd authz-db = authz 上面的配置说明使用“svnserve.conf”同目录的passwd和authz,其中的password-db指定了用户密码文件,authz-db是我们的授权文件,也就是我们本文主要介绍的文件。 3. 基于svnserve的版本库文件布局 使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。下面是一个多版本库的目录: D:\SVNROOT ├─project1 │ ├─conf │ ├─dav │ ├─db │ │ ├─revprops │ │ ├─revs │ │ └─transactions │ ├─hooks │ └─locks └─project2 ├─conf ├─dav

svn详细使用教程-超经典

svn详细使用教程-超全面 TortoiseSVN是一个SVN的客户端,SVN客户端的使用 1.Checkout Repository 首先要Checkout服务器端的Repository, 所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。 这个Checkout和Visual Source Safe的Checkout意义完全不一样, VSS的Checkout指的是锁定某个文件,如果你以前使用过VSS, 在学习Subversion时这个问题一定要注意。 Checkout的具体方式是: 在客户端新建一个空目录,比如:F:\Project1 在该目录上单击右键,在弹出式菜单中选中SVN Checkout..., 之后在“URL of Repository”文本框中填入你想要连接的Repository的地址, 这个URL地址可以用浏览方式加入。 对于在本教程第二节建立的Repository, URL应该是“svn://xxx/project1” (xxx可以是服务器端主机名,也可以是服务器端的ip地址)。 然后点OK,会弹出一个认证对话框, 输入在教程第三节设置的用户名和密码。 点OK后就完成了对Repository的Checkout。 比如:在服务器端Repository中有一个a.txt文件, 那么Checkout之后F:\Project1目录下也会出现一个a.txt文件。 在本例中由于服务器端的Repository还未添加任何文件, 所以在客户端的F:\Project1下没有文件被Checkout。 执行Checkout除了会在F:\Project1产生Repository存储的文件及目录外, 还会产生了一个“.svn”的隐含目录,该目录是由subversion管理的, 不要删除或者手工改动其中的文件和目录。 现在F:\Project1中的文件和目录就叫做Repository的“Working Copy”简写“WC”(这个简写...汗)。 以后对Repository中文件和目录的修改,添加,删除的操作, 都是通过对这个“Working Copy”的操作实现的。 Checkout执行完后, 会发现F:\Project1目录的图标的左下角附着了一个小的状态图标 (当F:\Project1目录中的文件改变时,这个状态图标也会随之变化), 它表示F:\Project1是一个Repository的“Working Copy”, F:\Project1内的所有文件和目录也会有类似的状态图标。 2.添加文件 将要添加的文件或者目录拷贝到F:\Project1下, 然后在该文件或目录上单击右键,TortoiseSVN->Add,点OK。 如果添加了不止一个文件或目录, 则鼠标不要在F:\Project1中点中任何文件, 然后单击右键,TortoiseSVN->Add, 就可以添加多个文件或目录。

SVN使用和SVN常用命令

Svnserve –d –r 路径名+文件名 Svn://IP SVN使用和SVN常用命令 之前比较少接触linux,今天参考网上的资料实践了一下如何建立svn仓库,包括简单的授权设置。 假设要建立一个svn项目:new_project 一、创建svn仓库 去到svn服务的根目录,(这个目录是在启动svn服务的时候指定的,启动的命令如:svnserve -d -r /usr/local/svnrepos)执行创建仓库命令: svnadmin create new_project 这样在/usr/local/svnrepos/ 里面就多了一个new_project目录出来,进入new_project/conf/ 目录 vi svnserve.conf 将下面几行的注释去掉 [general] anon-access = read #匿名的用户可读 auth_access = write #有授权的用户可写 password-db = passwd #表示svn用户的授权资料保存在passwd文件里面 在conf/目录里面vi passwd,添加授权资料。格式如下: [user] your_name = your_password 二、导入源码 (导入源码的过程不一定要按照下面说的来做,关于svn目录管理其实可以很灵活,适合自己就行) 现在先准备一个临时文件夹,用来构建仓库中的基本目录结构: mkdir temp mkdir temp/trunk mkdir temp/tags mkdir temp/branches

这时可以将temp目录导入的仓库中: svn import temp svn://localhost/new_project -m 'initial' 如果new_project已经开发到一定程度,我们只需要将源码导入到仓库中的trunk就行了。 假设源码的根目录是~/new_project 进入~目录,把源码导入到trunk中: svn import new_project svn://localhost/new_project/trunk -m 'initial again' ====================================================================== ========= 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库 svn commit -m “LogMessage“[-N] [–no-unlock] PA TH(如果选择了保持锁,就使用–no-unlock开关) 例如:svn commit -m “add test file for my test“test.php 简写:svn ci 4、加锁/解锁 svn lock -m “LockMessage“ [–force] PATH

相关主题
文本预览
相关文档 最新文档