SVN 简单使用学习记录

SVN subversion 集中式控制
常规使用

svn cheakout : 将服务器下载到本地
svn commit: 将本地修改内容提交到服务器
svn update : 将最新的代码更新到本地
svn revert person.h : 将person.h 没有提交到服务器的所有代码删除

SVN目录结构简介

trunk:主干开发主目录,cheakout这个目录
branches:分支目录。添加非主线功能时使用,测试后,可合并到主干
tag:标记目录。版本更新迭代时的备份

环境的搭建

服务端:visual svn Server
客户端:控制台,conerstone,Xcode,Versions
资源 链接:https://pan.baidu.com/s/1i5L9gED 密码:1ycq
下载安装服务端的时候exe,直接一直下一步,安装标准版就 ,就可以了。标准版免费 , 然后选择Locations:文件存放地址,仓库地址 ,选择http协议就可以了。
sever port端口: 默认80 就可以了。一直下一步安装成功。
然后服务端创建仓库名称。创建用户账户和密码等。

30A80823978DD4B78D326C4CE523150F.jpg

  • 在这里设置用户角色,组,和仓库,权限等。设置权限有 NO accss 任何人都不可访问 , read Only 只读 read/write 可读可写 。权限等 ,创建仓库,创建空的项目,设置项目为任何人不可访问,创建仓库好了之后,在分配权限
如何链接SVN,我用的conerstone,服务端创建角色。提供url链接,我们这边链接服务端。查看服务端url地址。可以直接在服务端copyurl 。也可以在控制台输入 ipconfig 查看。下面是我链接服务端的图片
屏幕快照 2018-01-07 下午4.19.01.png
然后连接svn成功。cheakout 项目到本地,这里我记录一下我犯的一个错误。我cheakout 项目到本地的时候,会让你选择一个 ‘format’一定要选择你当前的最高版本。我不小心选择了一个第一点的版本,导致本地xcode 修改了文件后。本地xcode 旁边没有显示 M 的标识。最后发现原来是这里引起的原因
屏幕快照 2018-01-07 下午5.04.19.png
如何控制台初始化项目

首先我们先了解svn的常见几种状态
20DA834D8D8D198BFB022A7982D250A3.jpg
//到指定的目录
zwcmacbook-pro:~ chenguimin$ cd /Users/chenguimin/Desktop/SVN\ Demo/cgm 
//checkout 项目到目录下自己的username 账号  password 密码
zwcmacbook-pro:cgm chenguimin$ svn checkout http://5HWJMQD3UEOM463/svn/QQ/branches/QQ --username=cgm --password=123456
//checkout 好文件下来之后,我们。可以在控制台,创建一个test.m 文件,
然后查看svn的管理状态,我们可以看到当前的样子。
? 不在svn的管理之下。所以我们需要 add test.m 
zwcmacbook-pro:QQ chenguimin$ touch test.m
zwcmacbook-pro:QQ chenguimin$ svn status
?       test.m
//添加到svn 管理
zwcmacbook-pro:QQ chenguimin$ svn add test.m 
A         test.m
zwcmacbook-pro:QQ chenguimin$ svn commit -m 'test.m 初始化项目,将test.m 上传到服务器'
Adding         test.m
Transmitting file data .done
Committing transaction...
//版本号+1
Committed revision 25.
zwcmacbook-pro:QQ chenguimin$
//查看版本号
zwcmacbook-pro:QQ chenguimin$ svn log
//如何回退
zwcmacbook-pro:QQ chenguimin$ svn update -r20  //回到版本20,查看是否是自己需要的版,因为回滚版本了。不是最新的版本号。所以我们需要
zwcmacbook-pro:QQ chenguimin$ svn update
//然后合并代码。最新的是25 合并 20 版本号的某个文件 合并25person.m
zwcmacbook-pro:QQ chenguimin$ svn merge -r25:24 Person.m
--- Recording mergeinfo for reverse merge of r25 into 'Person.m':
 U   Person.m
--- Eliding mergeinfo from 'Person.m':
 U   Person.m
zwcmacbook-pro:QQ chenguimin$ 



重点来了。这些一般都是xcode集成好了。或者使用conerstone 。但是我们的.a 静态库,提交不了。就需要用上面的命令行。进行单独的上传, 进入指定目录,添加add 静态库。commit 提交。

经典提交错误 out of date 过期了。当前的版本不是最新的版本。需要先updata一下。

简单的演示一下冲突。

现象。现在我们做了2个角色甲乙。都同时修改了person 类。甲增加了name属性。提交了、乙后面增加 height属性。现在乙提交会出现常见错误
图片.png

out of date 过期版本,所有我们需要更新 updata 一下。就会出现冲突文件了。如果用的conerstong 会提示 C 如果用的控制台会出现这样的情况

zwcmacbook-pro:TESTQQ chenguimin$ svn updata
Unknown subcommand: 'updata'
Type 'svn help' for usage.
zwcmacbook-pro:TESTQQ chenguimin$ svn update
Updating '.':
C    Person.h
Updated to revision 28.
Summary of conflicts:
  Text conflicts: 1
Conflict discovered in file 'Person.h'.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
        (mc) my side of conflict, (tc) their side of conflict,
        (s) show all options: 
上面就是简单的代码冲突产生的过程与现象。现在我们看出现的提示的意思

Resolved:解决冲突
Conflict:冲突
out of data :本地版本号低于服务器版本
df:在控制台中展示冲突的所有的不同
e: 在命令行中编辑冲突

mc:用我的代码覆盖服务器的代码
tc:用服务器的代码覆盖我的代码

p:延迟冲突。展示所有的冲突文件,手动修改

推荐使用 (p) postpone 手动解决。他会把所有的冲突在编译器里面展示出来。会把冲入不同的代码都展示在编译器。在编译里面选择删掉不需要的代码。 解决完成后。在控制台 输入解决冲突下面就是选择了p。自己手动解决冲突文件的样子

#import <Foundation/Foundation.h>

@interface Person : NSObject

<<<<<<< .mine
/**    ***/
@property (nonatomic,copy)NSString *name;

/**    ***/
@property (nonatomic,copy)NSString *height;
@property (nonatomic,copy)NSString *height1;
@property (nonatomic,copy)NSString *height2;

||||||| .r27
=======
/**    ***/
@property (nonatomic,copy)NSString *name;
@property (nonatomic,copy)NSString *name1;
@property (nonatomic,copy)NSString *nam2;
@property (nonatomic,copy)NSString *nam3;
@property (nonatomic,copy)NSString *name4;
@property (nonatomic,copy)NSString *name5;

>>>>>>> .r29
@end
//person.h 就是解决冲突的文件。解决完成输入此命令svn resolved person.h
zwcmacbook-pro:TESTQQ chenguimin$ svn resolved person.h
svn: warning: W155010: The node '/Users/chenguimin/Desktop/TESTQQ/person.h' was not found.
zwcmacbook-pro:TESTQQ chenguimin$ svn resolved Person.h
Resolved conflicted state of 'Person.h'
zwcmacbook-pro:TESTQQ chenguimin$ svn commit -m '提交test Person.h 的最新代码'
Sending        Person.h
Transmitting file data .done
Committing transaction...
Committed revision 30.
zwcmacbook-pro:TESTQQ chenguimin$ 

如果是 cornerstone 解决完冲突,选择冲突文件,用
屏幕快照 2018-01-07 下午5.50.00.png

上面注意是命令行。cornerstone 的简单使用。界面都很简单,主要是如何忽略等操作
屏幕快照 2018-01-07 下午6.22.25.png

需要忽略的文件

比如以上。xcuserdata 个人信息相关,比如最近打开的目录结构。断点点等。

  • xcode 会默认记录之前停留的文件。下次打开依然在这个文件。这个不需要进行共享
  • 断点信息不需要共享
  • xcode 会默认记录之前目录的打开情况。不需要共享
上面三点都是存放在xcuserdata 里面的。下面介绍忽略操作的几个步骤。拿xcuserdata举例 ,这里因为我以前做过一次,没有重新测试。不知道,直接忽略 1 ,2 ,3 ,4直接第五步不会不成功

1: 删除需要的忽略的文件,比如xcuserdata。svn 会有D 标识
2: 提交有D标识,需要被忽略的文件
3: commit 提交需要忽略的文件,
4: 再在本地再把xcuserdata 生成出,打断点。打开目录结构都可以重新生成xcuserdata 文件
5: 在svn 选择xcuserdata文件夹。鼠标右键或者svn界面 ignore选择需要忽略的xcuserdata ,标记一下、。ignore之后一定要 update 。因为我们进行了忽略操作。原来的project.xcworkspace 改变了。所有我们需要update一下,然后进行commit 。这样我们忽略操作就完成了。

当然我们也可以在设置里面进行忽略


屏幕快照 2018-01-07 下午6.58.40.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容