SVN常用命令与分支操作
1.基本操作
1.0 创建版本库:
Svnadmin create /data/repos
2.0 修改配置文件
Auth文件
[groups]
admin=shguo
[/]
@admin=rw
*=r
[groups] admin=shguo [/] @admin=rw *=r
Passwd文件
[users]
shguo=shguo
[users] shguo=shguo
Svnserve.conf文件
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
注意:要去掉前面的空格不然会报,认证配置失败
3.0启动:
svnserve –d –r repos
4.0 创建目录
svn mkdir svn://127.0.0.1/repos/ -m “mkdir” (说明“”中是提交的log注释)
svn mkdir svn://127.0.0.1/repos/sns/ -m “mkdir”
svn mkdir svn://127.0.0.1/repos/sns/trunk -m “mkdir”
svn mkdir svn://127.0.0.1/repos/sns/branches -m “mkdir”
svn mkdir svn://127.0.0.1/repos/sns/tags -m “mkdir”
或者本地操作
svn mkdir file:///data/repos/ -m “mkdir”
svn mkdir file:///data/repos/sns/ -m “mkdir”
svn mkdir file:///data/repos/sns/trunk -m “mkdir”
svn mkdir file:///data/repos/sns/branches -m “mkdir”
svn mkdir file:///data/repos/sns/tags -m “mkdir”
5.0导入项目:
Svn import sns svn://127.0.0.1/repos/sns/trunk/ –m “init project”
查看:svn list svn://127.0.0.1/repos/sns/trunk/
6.0导出项目开发:
Svn checkout svn://127.0.0.1/repos/sns/trunk/sns
7.0进入目录就可以进行开发操作了
Cd sns
Svn status
Svn add new.txt
Svn commit –m ‘commit’
Svn log new.txt
其它一些命令:
Svn update
Svn diff –r m:n path
Svn lock some.java or svn unlock some.java
Svn revert
Svn add /delete / copy / move
Svn switch –relocate svn://xxxx/one svn://xxxx/two
Svn list path
2. Svn中分支的使用
2.0 创建分支
Svn cp http://svn.shguo.com/repos/sns/trunk/ http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo -m “shguo_branch”
也可以通过 TortoiseSVN 中的Branch/tag来创建分支
2.1 取出分支来开发
Svn co http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo 101128_sns_imageUpload_shguo
2.2开发完成后向主干提交
检查需要合并的分支的历史:
svn log --stop-on-copy -q http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo
合并:
svn merge –r 16:HEAD http://svn.shguo.com/repos/sns/branches/101128_sns_imageUpload_shguo
2.3检查冲突:
svn status
如果有解决冲突,没有就svn commit命令就可以完成提交
2.4 批量增加svn文件
svn add `svn st |grep ? |awk '{print $2}'`
svn st |grep ? |awk '{print $2}' |xargs svn add
2.5 批量增加svn:ignore属性
svn propset svn:ignore -F ~/.svnignore -R /app/work/app1
------------------------------------------------------------------------------------------
整个具体流程总结如下 :
1.建立两套服务器.配置一致.程序发布的目录等设置也保持一致 如:(QA环境 生产环境)
2.其中一套作为开发测试环境使用.一套作为生产环境使用
3.SVN建立trunk目录作为主代码分支,,建立branch目录作为其他分支;如svn://project/trunk svn://project/branch
4.开发人员使用branch分支进行开发;(问题点:开发自测和QA测试环境)
5.当确认某个测试版本稳定后.将branch分支的内容合并(merge)到主干.
6.运维将测试环境主干代码update到生产环境;
3.分支使用命令示例:
3.0 创建分支
svn cp http://..../project/trunk http://..../project/branch/mall_bugid3012_order -m “order”
3.1 取出分支开发
3.2 开发完成后提交
3.3 检查需要合并的分支记录
svn log –stop-on-copy –q http://..../project/branch/mall_bugid3012_order
3.4 合并
svn merge –r 旧版本号:新版本号(head) http://..../project/branch/mall_bugid3012_order
3.5 检查冲突和提交
svn status
svn commit
SVN常用命令与分支操作的更多相关文章
- 转载-SVN常用命令
SVN(Subversion)是一个自由.开源的项目源代码版本控制工具.目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件. Subversion将文件存放在中心版本库里,这个版本 ...
- linux命令行下svn常用命令
linux命令行下svn常用命令 1. 将文件checkout到本地目录 1 #path是服务器上的目录 2 svn checkout path 3 4 #示例 5 svn checkout svn: ...
- SVN常用命令说明
本文转载至 http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html :1.5 及更新版本 名词说明: WC:W ...
- SVN常用命令说明(转载)
转自:http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html /** * 转载请注明作者longdick htt ...
- SVN常用命令--Mac端【转载】
* 版本库布局 1. trunk主干 trunk就是开发的主线,一般项目都是导入到主线来开发的. 2. branches分支 branches一般是trunk某个版本的拷贝,如果你想在某一段时间单独对 ...
- linux下svn常用命令
(如果是第一次提交文件,很可能会出现“svn:'.'不是工作副本”,即当前目录不是工作副本,这个时候需要用到import: eg:svn import . url) 1.将文件checkout到本地目 ...
- mac终端下svn常用命令
svn基本的操作流程就是: 你刚刚进入一个新的公司,让你接手一个正在进行的项目,你打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一 ...
- svn 常用命令行
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domai ...
- SVN常用命令备注
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...
随机推荐
- 引用第三方高德地图接口---使用js脚本进行开发地图定位的步骤
①在高德地图开发平台注册一个账号,获取key ②添加新的key ③引入map插件 ④复制过来map的脚本代码和编写搜索框 <script type="text/javascript&q ...
- vim添加复制(crtl+c),粘贴(ctrl+v)ctrl+A 等快捷键
1 在 /usr/share/vim/vimrc文件中添加 source $VIMRUNTIME/mswin.vim 2 mswin.vim位置在 /usr/share/vim/vim72/ ...
- dvwa 源码分析(二) --- dvwaPage.inc.php分析
在setup.php中,包含了这个文件,所以这里分析这个文件. <?php if( !defined( 'DVWA_WEB_PAGE_TO_ROOT' ) ) { define( 'DVWA S ...
- Python内置的数据类型--list,tuple
1. list Python内置的一种数据类型是列表:list. list是一种有序的集合,可以随时添加和删除其中的元素. 最后一个元素的索引是len(classmates) - 1,用-1做索引,直 ...
- C#怎么做系统托盘
建个WinForm项目,其它操作略过.拉个NotifyIcon控件,将属性Visable设置成False没有Icon图标 还要加 Icon图用Form的SizeChanged事件,代码如下:窗口最小 ...
- vm虚拟化问题积累
EXSi是什么?答:是一个独立的系统,承载了虚拟机管理台,虚拟机存储设备等核心要件的一个系统,需要靠客户机通过vsphere连接后进行管理. 问题集:一.建立桌面池找不到模板机问题: 目前因为此问题已 ...
- ubuntu 12.10 默认安装php5-fpm无监听9000端口,nginx无法链接php5-fpm修正
升级php5的时候,发现nginx无法链接到php5,怀疑是php5端口的问题. netstat -an未发现监听9000端口. 查看/var/log/php5-fpm.log一切正常. 随后查看/e ...
- DateTime获取一个月的第一天和最后一天
DateTime dtTarget = DateTime.Now; DateTime FirstDay = dtTarget.AddDays(-DateTime.Now.Day + ); DateTi ...
- Beego 框架学习(一)
1.特性 beego是一个http框架 高性能,是目前最快的的go框架 开发快捷,组件多,高度解耦 RESTful方式,可以自定义action 文档完整 智能路由.智能监控 2.安装 go get g ...
- 关于Cocos2d-x中使用完Blink动作后精灵突然消失的问题的解决
精灵使用Blink 执行完动作之后,消失不见了,原因是闪烁的过程中精灵刚好到空纹理(透明)的那部分,这时候用户通过某种操作中断闪烁动作,导致下个状态的时候,精灵依然停留在空纹理的状态.所以最好在精灵执 ...