[svn] linux命令——svn基础-版本管理

windows下的svn使用
习惯之后,再使用linux下的svn很不适应。但其实仅需要几十分钟即可掌握。

[size=large][b]linux下的svn基本设置[/b][/size]
[b]1,最简单的办法就是 svn help[/b]

[b]2,svn环境查看及切换[/b]
svn info (path)
svn switch https://svn.xx.baidu.com/xx/xx/project_BRANCH

[b]3,删除自己名下别人的svn账号[/b]
先用自己的账号登陆系统,再执行下面命令
rm -rf ~/.subversion/auth/svn.*
(也即清除某账号的svn信息)

[b]4,导出干净代码[/b]
svn export svn://192.168.1.211/ic3on ic3onex


[size=large][b]svn常用命令[/b][/size]
[b]一、新建工程阶段:从svn服务器检出代码[/b]
svn checkout/co SVNServerUrl . [color=red]//注,点(.)表示当前路径[/color]
svn co Url -r 5555 //检出指定历史版本

[b]二、项目协作:更新别人提交的代码[/b]
svn up


[b]三、向svn服务器提交自己的代码[/b]
修改之前,先查看
svn st/stat 其中:M被修改,C冲突,A预加到,K被锁定,G合并
svn log (path) 很有用,可以看到某一个文件的更新历史及更新原因。
svn revert 取消所有的本地编辑

[b]1,对于新增的文件[/b]
svn add file
svn add *.php(添加当前目录下所有的php文件)

svn commit -m "at least five characters" failname.php

[b]2,对于修改的文件[/b]
svn commit -m "add test file for my test" test.php
-m表示message

[b]3,对于想删除的文件[/b]
第一步:svn delete 【简写:svn (del, remove, rm)】
第二步:svn ci -m 'message'

[b]4,清除[/b]
svn clean

[b]四、关于冲突的解决[/b]
svn diff --help
具体比较一个文件不同版本间变化,可以用下面的命令:
svn diff -r newversion:oldversion path
例如,svn diff -r 1327:1326 mcsd_svc.php

[size=large][b]分支管理及与主干的关系[/b][/size]
从主干创建分支后,在分支开发代码一段时间后,打一个标签,然后结项,然后将该分支代码提交到主干。需要注意的是在分支代码打标签后,就不应该再提交新的代码到该分支,否则主干上是没有这些新代码的。

开发时应该向分支提交代码,而不是主干。
https://xx/trunk/oms 是主干
https://xx/tags/oms/oms_1-0-0-0_PD_BL 是开发时的基线分支1.0.0
https://xx/tags/oms/oms_1-0-2-0_PD_BL 是开发时的基线分支1.0.2
首先,比较分支1.0.0和主干,看到1.0.0基线上的修改是否已经全部同步到主干上。
其次,(如果确认主干和1.0.0完全一样,即主干可以被覆盖),则将1.0.2基线的代码合并到主干上。
再次,以主干为准,为1.0.2打标签(本质是自己为自己打标签),以此作为新基线,并不再更新1.0.2分支的代码。
最后,创建1.0.3分支,并将新修改代码提交到1.0.3上,而1.0.3分支是以1.0.2为基线的。

具体操作参考:http://zccst.iteye.com/blog/1430823

[size=large][b]其他[/b][/size]
1,加锁/解锁
svn lock -m "lock test file" test.php
unlock


常见错误说明及解决办法

错误提示 错误原因 解决方法
The change log need some words(not null) 提交时没有添加log message 提交时加上log message即可
The log message is a pathname (was -F intended?); use '--force-log' to override log message 与路径名称相同 修改log message
Error file xxx in not allowed in root directory! working copy的根目录下不允许有名为xxx的文件(只能是正整数版本目录) 删除该文件或者移到到版本目录下
directory xxx/ is not allowed in root directory! Only positive integer dirs are allowed!
working copy的根目录下不允许有名为xxx的目录(只能是正整数版本目录) 删除该目录或者移到版本目录下
Too many versions!(less than 10 is permited) 版本目录多于10个,最多不超过10个 删除刚刚创建的版本目录即可。
Too many files: XXX (less than 2000 is allowed). XXX目录下文件的数量超过2000 删除XXX目录下的文件,使其总数降至2000以下
dir APPNAME/dir(size:xxxx) is too large less than xxx 该应用下代码(不包括.svn目录)总大小超过100M,或某个版本总大小超过50M 删除不必要的代码再尝试提交
File XXX is too large!(less than 4M) 单个文件大小超过4M 删除重试
类似Repository UUID '305daf1b-94be-48ee-a4b9-f4bcd36320de' doesn't match expected UUID '44e2f7a2-1b69-4710-974a-b6edef0fdc12' 服务器端仓库被删除重建,客户端对原仓库进行操作导致。 重新checkout出一份代码即可
add vers xxx faild 文件部署失败 内部原因,请联系saesupport@sina.cn。



参考文章:
[url]http://hi.baidu.com/xworld_bd/blog/item/2e3140c1e65566060ff47776.html[/url]

如果您觉得本文的内容对您的学习有所帮助,您可以微信:
[img]http://dl2.iteye.com/upload/attachment/0109/0668/fb266dfa-95ca-3d09-b41e-5f04a19ba9a1.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值