mac svn终端命令 创建分支

来源:互联网 发布:剑三喜子捏脸数据 编辑:程序博客网 时间:2024/06/12 22:47

今天又要用svn创建分支了,,  上次成功创建,今天居然给忘记了,所以特此记录,以备后续。


环境:mac 终端。


svn创建分支代码:


svn copy -m"" [Local File Name] [svnUrl]

 svn copy -m"2.0" 1.2.0/ https://192.168.21.182/svn/gold_midai_ios/branches/1.2.0/



之前在网上找到的其他的一直不行,真是头疼。

-------------->

不过却报错了:1.2.0/ is not working copy

----------------->

这是因为所提交的文件夹内未包含.svn隐藏文件夹


============================屌丝的解决方法

先从svn上checkout 一个文件夹进来。

然后替换掉1.2.0/ 文件夹里面具体需要提交的内容。


然后直接svn创建分支代码。

done!




-------------------------------------------------------------------------------不过在此还是复制留存一下其他的命令操作,不一定对。-----------------------------------------------------------------------


mac本机svn命令使用

  公司项目用到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、导入你的文件 

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

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

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

 

  3、提交

1 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-1.0即trunk处于1.0版本时的快照。使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。#这里的localhost是svn服务器地址svn copy -m "1.7.2 - theme" svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-themesvn co svn://localhost/www/branches/branch1.7.2-theme 2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。#branch1.7.2-theme是分支目录,注意不可以进到分支子目录cd branch1.7.2-theme#前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号svn merge -r 12972:12991 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' 3. 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。#先从trunk checkout一份新鲜的代码,然后cd到该版本目录下svn co svn://localhost/www/trunk cd trunk#12973是分支开始的版本号,13006是分支结束的版本号svn merge -r 12973:13006 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。



0 0
原创粉丝点击