公司项目用到svn,之前做版本管理用的是git。 现在对svn回顾学习了一下。 这里有一篇很好的入门教程 http://www.rubyrobot.org/tutorial/subversion-with-mac-os-x

  对svn的几个简单理解和总结

  1、 svn 创建一个代码库

svnadmin creat svnrep

  上面代码会在用户目录下创建一个名叫 svnrep 的文件夹,这个文件夹就是代码库了。之后可以向这个代码库填加你的工程和文件。svn建的是多人使用的一个代码库,和git不同,git pulldown下来之后,本地就有一个代码库,commit是提交到本地的代码库。push的时候才提交到服务器。 而svn check out下来,commit则提交到大家共用的代码库。

  2、导入你的文件

  svn import ~/svnrep/svn_test/ file:///Users/wangrui/svnrep/svn_test -m "init import"

  导入一个新建的工程进入代码库。这时其他人,包括你自己就可以check out代码库的代码了。 先前已导入的本地工程可以删了。 因为发生变化不会提示有更改(原因时它只是原始工程,不是svn check out下来的,不包含.svn文件)。  此时,重新checkout 工程,变可以更改工程了。

  上面的命令,第一个时你要导入工程的路径,第二个时代码库的路径。 file:// 表示代码库时本地的;

  3、提交

 svn commit ~/desktop/svn_test -m "command line test"

  提交更改的文件即可。

2014-4-29 新增编辑

svn 分支开发:

转载一片比较好的文章,如下:

SVN分支和合并的简单例子
尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。 在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-.0即trunk处于1.0版本时的快照。 使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。 . 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。 #这里的localhost是svn服务器地址
svn copy -m "1.7.2 - theme" svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-theme
svn co svn://localhost/www/branches/branch1.7.2-theme . 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。 #branch1.7.2-theme是分支目录,注意不可以进到分支子目录
cd branch1.7.2-theme
#前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号
svn merge -r : svn://localhost/www/trunk 如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。
svn ci -m 'svn merge -r 12972:12991 svn://localhost/www/trunk' . 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。 #先从trunk checkout一份新鲜的代码,然后cd到该版本目录下
svn co svn://localhost/www/trunk cd trunk
#12973是分支开始的版本号,13006是分支结束的版本号
svn merge -r : svn://localhost/www/branches/branch1.7.2-theme 如步骤2一样解决冲突,解决冲突后再check in,信息写上执行的merge操作。
svn ci -m "svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme" 相关的手册可以参阅svn文档

我自己在这个合并过程中老是出现

svn: E170000: 'file://localhost/Users/wangrui/Desktop/svntemprepo/branches/branchone' isn't in the same repository as 'file:///Users/wangrui/Desktop/svntemprepo'

这种错误,原因是svn merge时,使用的url地址不对。 用 svn info 查出repo的url,再用这个url作为merge时要用的url。

mac本机svn命令使用的更多相关文章

  1. [MAC] Mac下的SVN命令行

    转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.1 ...

  2. mac上的svn命令

    Mac 终端添加代码到SVN从SVN拉取代码步骤:1.cd /Users/指定路径(本地路径)2.svn checkout https://xxx.xxx.xx/svn/project(服务器路径) ...

  3. Mac下使用svn命令

    Mac系统自带svn命令,能够很方便的同步更新代码,使用方法: 1.导入项目svn import /Users/username/Desktop/Project1 svn://192.168.1.12 ...

  4. Mac环境下svn命令行的使用

    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...

  5. 配置mac机svn服务器

    这几天一直纠结如何配置mac机svn服务器,在网上查了很多资料,无奈本人底子太差,菜鸟级别,理解能力有限,照网上的总是配置不好,最后无奈问了刘超老师,终于配置成功.现在写一下具体配置过程,菜鸟级别可以 ...

  6. Mac SVN 命令行

    Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...

  7. mac 终端 svn 命令(转)

    mac 终端 svn 命令 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录)   例如:svn checkout svn://192.168.1.1 ...

  8. 【Mac】之svn上传/删除文件命令

    创建文件后,进入文件夹下: ①先checkoutsvn地址: svn checkout https://xxxx:0000/svn/CM_B2B_Document/06_Testing/B2B_Ste ...

  9. mac svn命令行使用入门

    本文转载至 http://blog.sina.com.cn/s/blog_6bfa2fc10101euf6.html   mac svn命令行使用入门 1. 初始化项目 svn import /Use ...

随机推荐

  1. HTML5 的拖放(实例:两个div之间拖放图片)

    重点解释: 首先,为了使元素(如本图片)可拖动,把 draggable 属性设置为 true : dataTransfer.setData() 方法设置被拖数据的数据类型和值: ondragover ...

  2. Linux 服务器 MySql的安装和网站的发布

    Linux安装MySql,并配置能通过自己的电脑连接服务器的数据库 昨天安装的MySql,今天上午配置MySql能使用本机连接服务器数据库,服务器时DigitalOcean的,提供了很全面很专业的文档 ...

  3. 微信授权错误:"errcode":40163,"errmsg":"codebeenused

    微信网页授权获取code值回调两次的问题 1.说是域名原因,目前未测试,没有正确的域名 问题描述:在调用微信网页授权获取openid值时,先获取的code值,但是code值的接口 会走两次回调.而co ...

  4. groovy和java的主要区别

    1.Default imports,默认情况下,导入下面的包: java.io. * java.lang.* java.math.BigDecimal中 java.math.BigInteger中 j ...

  5. 鸟哥linux私房菜学习笔记 第二章知识点

    2.1 linux一切皆文件 2.2 磁盘分区 磁盘即文件 2.2.1 磁盘连接的方式与设备文件名的关系 模糊 1.正常的实体机器大概使用的都是 /dev/sd[a-] 的磁盘文件名,至于虚拟机环境下 ...

  6. django框架中form表单Post方法无法提交 Forbidden (403) CSRF verification failed. Request aborted.

    问题如图: 解决方法: 在视图函数中引入并使用装饰器 from django.views.decorators.csrf import csrf_exempt @csrf_exempt

  7. [POI2007]EGZ-Driving Exam

    能到达所有路的充要条件是能到达左右两端的路 用vector反向建边对每条路左右分别求个最长不上升子序列 预处理出每条路向左向右分别需要多建多少路才能到达最左端和最右端 然后跑个\(\Theta(n)\ ...

  8. 【js编程艺术】 之有用的函数

    学习js的过程中有几个有用的函数. //添加事件函数 function addLoadEvent(func) { var oldonload = window.onload; if(typeof wi ...

  9. MySQL数据库(6)----配置文件 my.cnf 的使用

    1. 使用源码安装好MySQL后,其配置文件一般位于 /usr/local/my.cnf,可以使用如下命令查看查看配置文件的搜索顺序: root@javis:~$ mysqld --help --ve ...

  10. SSM 框架集-01-详细介绍-入门问题篇

    SSM 框架集-01-详细介绍-入门问题篇 刚开始了解 SSM,首先先解决几个基础问题 1.什么是 SSM 框架集? SSM(Spring+SpringMVC+MyBatis)框架集由 Spring. ...