mac svn 使用注意事项

1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车;
2.之后再输入如下命令:svn add libGoogleAnalytics.a,回车;
3.之后会出现:A  (bin)  libGoogleAnalytics.a
   表示添加成功,打开Versions就可以看到,刚才添加的.a文件,此时就可以手动上传了。
    注意路径的正确性。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1.更改配置(不懂的话就直接跳过吧)

bogon:~ chenshuangchou$ open ~/.subversion/config

启动配置文件,然后在配置文件中选择要忽略的文件类型

找到global-ignores 一行,去掉注释,编辑成

global-ignores = build *~.nib *.so *.pbxuser *.mode*.perspective*

# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a*.pyc *.pyo


找到enable-auto-props = yes 把注释去掉,在[auto-props]Section声明以下文本文件

*.mode* = svn:mime-type=text/X-xcode

*.pbxuser = svn:mime-type=text/X-xcode

*.perspective* = svn:mime-type=text/X-xcode

*.pbxproj = svn:mime-type=text/X-xcode


2.import命令

首先将本地代码import到版本库

bogon:~ chenshuangchou$ svn import/Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper  https://192.168.21.248:8443/svn/BuickIOS/ -m"initial import"


3.checkout命令

然后从版本库checkout出来,这个目录就相当于被激活,内部跟服务器地址关联。

bogon:~ chenshuangchou$svn checkouthttps://192.168.21.248:8443/svn/BuickIOS//Users/chenshuangchou/Desktop/BuickIOS



4.add命令

当有新增的文件时用add指令,增加到版本库,然后提交

svn add/Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png 

执行这条指令的前提是/Users/chenshuangchou/Desktop/BuickIOS/是从服务器checkout下来的目录,也就是isa working copy

新增成功的话会有

(bin) Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png



5.commit命令

提交内容到版本库

bogon:~ chenshuangchou$ svn commit -m "添加了一个油耗柱状图"/Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png

提交到版本库成功的话,

Adding  (bin) Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png

Transmitting file data .

Committed revision 3.




6.update命令

更新版本库到本地,更新指定目录,svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

bogon:~ chenshuangchou$ svnupdate /Users/chenshuangchou/Desktop/BuickIOS1

更新成功

Updating 'Desktop/BuickIOS1':

 Desktop/BuickIOS1/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png

Updated to revision 3.


回退到版本2:    

bogon:~ chenshuangchou$ svnupdate -r 2 Desktop/BuickIOS1/

回退成功的话

Updating 'Desktop/BuickIOS1':

 Desktop/BuickIOS1/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png

Updated to revision 2.


冲突

(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svnresolved ,最后再提交commit)

在提交时发生版本冲突会怎么样

bogon:~ chenshuangchou$ svncommit -m "delegate中加入了一句话"/Users/chenshuangchou/Desktop/BuickIOS/

Sending       Desktop/BuickIOS/.git/index

Sending      Desktop/BuickIOS/Buickhousekeeper/AppDelegate.h

Sending      Desktop/BuickIOS/Buickhousekeeper.xcodeproj/project.xcworkspace/xcuserdata/chenshuangchou.xcuserdatad/UserInterfaceState.xcuserstate

Transmitting file data ...

Committed revision 4.

bogon:~ chenshuangchou$ svncommit -m "delegate中加入了一句不同的话"/Users/chenshuangchou/Desktop/BuickIOS1/

Sending       Desktop/BuickIOS1/.git/index

svn: E160042: Commit failed (details follow):

svn: E160042: File or directory '.git/index' is out of date; tryupdating

svn: E160024: resource out ofdate; try updating

out   of date表示版本过期,可能是由于另外的开发者更新了服务器版本,而本地代码与服务器冲突


遇到这种情况,应该先从服务器update一下,然后再提交

bogon:~ chenshuangchou$ svnupdate  Desktop/BuickIOS1/

Updating 'Desktop/BuickIOS1':

Conflict discovered in'/Users/chenshuangchou/Desktop/BuickIOS1/.git/index'.

Select: (p) postpone,

       (mf) mine-full, (tf) theirs-full,

       (s) show all options: 

在这里会有一个选择,选择(s)会显示所有选项的所有注释,如下

(s)  show all   - show this list

(e)  edit           - change merged file in an editor

(df) diff-full       - show all changes made tomerged file

(r)  resolved        - acceptmerged version of file

(dc) display-conflict - show all conflicts (ignoring mergedversion)

(mc) mine-conflict    - accept myversion for all conflicts(same)

(tc) theirs-conflict  - accept their versionfor all conflicts (same)

(p) postpone  - mark the conflict to be resolvedlater

(mf) mine-full  - accept my version of entire file(even non-conflicts)

(tf) theirs-full     - accept their version of entire file (same)

选择一个之后会继续显示冲突点,直到完。而每一个点都会询问怎么处理。

 Desktop/BuickIOS1/Buickhousekeeper.xcodeproj/project.xcworkspace/xcuserdata/chenshuangchou.xcuserdatad/UserInterfaceState.xcuserstate

Conflict discovered in'/Users/chenshuangchou/Desktop/BuickIOS1/Buickhousekeeper/AppDelegate.h'.

Select: (p) postpone, (df) diff-full, (e) edit,

       (mc) mine-conflict, (tc) theirs-conflict,

       (s) show all options: tf

 Desktop/BuickIOS1/Buickhousekeeper/AppDelegate.h

Updated to revision 4.

选择tf之后,冲突点会被服务器上的代码覆盖,自己本地代码会永久不见。最好先选择postpone,确定之后再修改。

关于冲突,可以参考:http://www.logicaltrinkets.com/wordpress/?p=178





7.status命令

查看文件或者目录状态

svn statuspath (目录下的文件和子目录的状态,正常状态不显示)

?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定

svn status-v path显示所有文件的修改信息,在查看状态的同时,显示本地当前版本号,最后一次修改的版本号和修改人,分别在前

bogon:~ chenshuangchou$ svnstatus  Desktop/BuickIOS1/

M      Desktop/BuickIOS1/.git/index

?      Desktop/BuickIOS1/.git/objects/1c/7d8324a67dcd866bd0b4122b01b924a0e77128

?      Desktop/BuickIOS1/.git/objects/75/1826a72a4afd4b15faf73a0b6e4166d3bbec01

?      Desktop/BuickIOS1/.git/objects/a4/1c23190a65cda6a64a95bef22a9264ad64d90e

?      Desktop/BuickIOS1/.git/objects/b3/df5dbb592745d9744adf7a32ed2bb39370c78e

M      Desktop/BuickIOS1/Buickhousekeeper/AppDelegate.h

?      Desktop/BuickIOS1/Buickhousekeeper/lastmouth_color1.png

?      Desktop/BuickIOS1/Buickhousekeeper/lastmouth_color2.png

?      Desktop/BuickIOS1/Buickhousekeeper/lastmouth_color3.png

?      Desktop/BuickIOS1/Buickhousekeeper/lastmouth_color4.png

M      Desktop/BuickIOS1/Buickhousekeeper.xcodeproj/project.pbxproj

M      Desktop/BuickIOS1/Buickhousekeeper.xcodeproj/project.xcworkspace/xcuserdata/chenshuangchou.xcuserdatad/UserInterfaceState.xcuserstate



8.delete命令

svn delete path -m " deletetest fle " 

删除一个空白的文件夹:

bogon:~ chenshuangchou$ svndelete /Users/chenshuangchou/Desktop/BuickIOS/branches 

D        Desktop/BuickIOS/branches

显示删除成功




9.log命令

查看版本记录,也叫日志

bogon:~ chenshuangchou$ svn log/Users/chenshuangchou/Desktop/BuickIOS

------------------------------------------------------------------------

r3 | chensc | 2013-10-31 11:34:03 +0800 (, 3110 2013) | 1 line


添加了一个油耗柱状图

------------------------------------------------------------------------

r2 | chensc | 2013-10-28 12:00:36 +0800 (, 2810 2013) | 1 line


initial import

------------------------------------------------------------------------

r1 | VisualSVN Server | 2013-06-28 17:40:29 +0800 (,28  6 2013) | 1 line


Initial structure.


只有两个版本记录,说明第二个版本和第三个版本未添加版本说明,也就是在执行指令时未添加-,这个指令是添加注释



10.diff命令

svn diff path(将修改的文件与基础版本比较)

在上传版本时,可能有自己版本与服务器版本不一致,需要查看具体代码,这个命令就可以做到

svn diff -r m:n path

对版本m和版本n比较差异

在追溯版本问题时,这个命令也十分有用

bogon:~ chenshuangchou$ svndiff /Users/chenshuangchou/Desktop/BuickIOS1

---/Users/chenshuangchou/Desktop/BuickIOS1/Buickhousekeeper/AppDelegate.h(revision 4)

+++/Users/chenshuangchou/Desktop/BuickIOS1/Buickhousekeeper/AppDelegate.h(working copy)

@@ -6,6 +6,7 @@

 //  Copyright (c)2013calinks. All rights reserved.

 //测试的很好

 

+

 #import

 #import "BMapKit.h"

 

@@ -15,7 +16,7 @@

 - (void)refreshIdeaMessage;

 

 - (void)refreshMaintainMessage;

-@end

+@end 





11.merge命令

将两个版本之间的差异合并到当前文件

bogon:BuickIOS chenshuangchou$svn merge -r 4:5/Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/AppDelegate.h

一般会发生冲突,处理冲突

—/Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/svn-1FUb4k 1031 15:36:15 2013

+++/Users/chenshuangchou/Desktop/BuickIOS/.svn/tmp/AppDelegate.h.tmp 1031 15:36:16 2013

@@ -4,8 +4,13 @@

 //  Copyright (c)2013calinks. All rights reserved.

-//测试的很好

+<<<<<<<.working

+//测试一下

+=======

+//验证版本差异合并

+>>>>>>> .merge-right.r5





12.ls命令

版本库下的文件和目录列表

svn listpath显示path目录下的所有属于版本库的文件和目录

bogon:BuickIOS chenshuangchou$svn ls https://192.168.21.248:8443/svn/BuickIOS/

.git/

Buickhousekeeper/

Buickhousekeeper.xcodeproj/

DevOneSDK.framework/

branches/

tags/

trunk/






13.log命令

查看文件详细信息

bogon:~ chenshuangchou$ svninfo/Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/AppDelegate.h 

Path: Desktop/BuickIOS/Buickhousekeeper/AppDelegate.h

Name: AppDelegate.h

Working Copy Root Path: /Users/chenshuangchou/Desktop/BuickIOS

URL:https://chensc@192.168.21.248:8443/svn/BuickIOS/Buickhousekeeper/AppDelegate.h

Repository Root:https://chensc@192.168.21.248:8443/svn/BuickIOS

Repository UUID: 9a03820f-37b7-b94a-a594-74c58a350bc6

Revision: 4

Node Kind: file

Schedule: normal

Last Changed Author: chensc

Last Changed Rev: 4

Last Changed Date: 2013-10-31 14:04:51 +0800 (, 3110 2013)

Text Last Updated: 2013-10-31 14:02:51 +0800 (, 3110 2013)

Checksum: 83d8a08d317af33501b650517aa4033d5fe9f0d4


14.其它命令

svn mkdir :创建纳入版本控制下的新目录。

用法:1mkdirPATH...

2mkdirURL...

svn revert : 恢复原始未改变的工作副本文件(恢复大部份的本地修改)revert:

用法:revert PATH...

注意:本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复

被删除的目录

svn switch (sw):更新工作副本至不同的URL

用法:1switchURL [PATH]

    2switch--relocate FROM TO [PATH...]

svn resolved:移除工作副本的目录或文件的冲突状态。

用法:resolved PATH...

注意:本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的

相关文件,然后让 PATH 可以再次提交。

svn cat 输出指定文件或URL的内容。

svncat 目标[@版本]...如果指定了版本,将从指定的版本开始查找。

svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值