1、⾸先打开Cornerstone
![](https://i-blog.csdnimg.cn/blog_migrate/4c5709aca759b7f440c9760491c26fce.webp?x-image-process=image/format,png)
2、然后如下图所示:(这里使用的是SVN Server)
![](https://i-blog.csdnimg.cn/blog_migrate/cf335a5c78c4da9704a20374341d740d.webp?x-image-process=image/format,png)
1:填写主机地址
2:假设你公司svn地址为:svn://192.168.1.111/svn/ios,用户名:svnserver,密码:123456
需要注意的是Repository path输入框下面有提示,可以对照下面的提示验证你输入的地址是否是有效的。
--------->
1:填写主机地址
2:如果你的主机地址中有端口号,如为192.168.1.111:8080,则2中填写8080
3:填写主机后面的路径
4:自动生成,如果你填写完之后不是这种svn://用户名@主机地址:端口号/路径的格式,则说明填写有误
5:也会自动生成,将会在侧边栏显示为5中的名称,可以自定义名称
6:用户名
7:密码
以上信息填写无误之后选择添加即可,如遇添加失败,信息填写无误,则联系管理员,查看地址,用户名,密码是否正确
![](https://i-blog.csdnimg.cn/blog_migrate/1b982b4ad3104849239a5605ef2476e7.webp?x-image-process=image/format,png)
2.1 下面使用的是HTTP Server,输入地址,账户信息即可;
![](https://i-blog.csdnimg.cn/blog_migrate/1dc3fce7654212a7f48dbeb77e672008.webp?x-image-process=image/format,png)
将指定文件夹添加到working copy
![](https://i-blog.csdnimg.cn/blog_migrate/b8a8f04029d61b5356894b2600e67edb.webp?x-image-process=image/format,png)
3、选择对应的仓库,如下图所示:(在仓库里上传自己的代码)
![](https://i-blog.csdnimg.cn/blog_migrate/d9ca38a62e15524cbdbaefffbcaeb6e2.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/3460fdf52aad9f06f9b4b15ce56b3024.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/a4aaa35353748d8ed5ed1ef02cf1e766.webp?x-image-process=image/format,png)
4、然后Import完成之后,就把本地的文件提交到SVN服务器上了,如下图所⽰,另外如果你想要使用SVN进行版本控制的话,那么需要把服务器上的文件Check Out到本地,这样的话本地Check Out下来的文件就和服务器上对应的文件建立了关联,这样本地文件再更改的时候就能作用于SVN服务器上了,达到了版本控制的一个目的,如下图:
--->PS:如果你在打开工程的时候让你升级SVN版本的话,不要升级,如果升级的话你的Working Copy可能就会打不开了。
![](https://i-blog.csdnimg.cn/blog_migrate/76c4bfa59d39521f171fce42004ffc96.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/01db515174956c7f4890abfbd8639e01.webp?x-image-process=image/format,png)
5、找到Check Out到本地的工作副本文件夹,这个时候该文件夹下面会多一个.svn的隐藏文件,这个文件记录了当前目录下的增、删、改操作,如下图所示:
--->PS:在终端输入: defaults write com.apple.finderAppleShowAllFiles -bool true 然后重启Finder
![](https://i-blog.csdnimg.cn/blog_migrate/bf3ad2abab93d6cd57a1334809a39c4c.webp?x-image-process=image/format,png)
6、如果在Working Copy的⼯程中做了更改的话,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/20c87d37821ef2d11b3c85268bf57d7a.webp?x-image-process=image/format,png)
----->!!!!非常重要:
如果你想把这个更改作用到服务器上,那么你需要选中整个Working Copy(当你不能确定更改的是哪个文件的时候)进行提交,刚开始使用SVN的时候,每次提交代码到服务器之前必须先再本地备份(当你熟练的时候可以不用备份)!!!!为了防止SVN出错,导致代码丢失。在每次提交之前必须先Update服务器的代码到本地,然后在Commit⾃己的更改!!!
![](https://i-blog.csdnimg.cn/blog_migrate/ae8ebbcc8e3e06c2a775e2ec8c0e5db6.webp?x-image-process=image/format,png)
然后出现如下界面:
--->这个时候组内的其他成员选中整个Working Copy进⾏Update,那么他的⼯程中也会出现你刚添加的那一行代码。
![](https://i-blog.csdnimg.cn/blog_migrate/9f2e71c141f13a7cb11d8f7a2a38e059.webp?x-image-process=image/format,png)
7、如果新添加了一个文件,那么会出现如图所⽰:
![](https://i-blog.csdnimg.cn/blog_migrate/d1e5bdd0cb244d378e17ab706c9a5e66.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/2cda14e647d6718f9308f618f8f0416c.webp?x-image-process=image/format,png)
8、⽂件的删除
![](https://i-blog.csdnimg.cn/blog_migrate/863c1aa897095c004ff5105adffd882b.webp?x-image-process=image/format,png)
9、添加一个文件,但是没选择working copy 直选中了工程文件,那么这个时候其他组员在Update之后发现了有红⾊的文件,原因:
1、是只提交了配置文件,没提交实际的文件,
2、只更新了配置⽂件
![](https://i-blog.csdnimg.cn/blog_migrate/61f3784e494b3373a4b161ee64f09e67.webp?x-image-process=image/format,png)
10、冲突的产生:
冲突产生的原因⼀定是更改了同⼀行或者是同⼀段代码
如下图:同时更改了AppDelegate⾥面的22⾏代码
![](https://i-blog.csdnimg.cn/blog_migrate/219c597acd57307a9689258148a431cc.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/dfe2402b6e61382ae36b0d06d8b715d9.webp?x-image-process=image/format,png)
此时需要进行沟通,谁的代码是正确的,保留谁的代码,还是两个代码都保留。把需要留的代码留下,然后删掉冲突的三条标志线,最后在Cornerstone中选中冲突的文件(这里是AppDelegate),然后点击Resolve解决冲突
![](https://i-blog.csdnimg.cn/blog_migrate/d70dc6cdc6b60fe128b7a5f016f024c2.webp?x-image-process=image/format,png)
11、如果SVN使⽤的时候文件/⽂件夹后⾯出现“?”的情况,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/d026a412a2f0ed816535d8c8b60ae4d7.webp?x-image-process=image/format,png)
12、文件冲突:A同学新建一个AViewController,然后Update、Commit提交,然后B同学新建一个BViewController,然后Update,此时会发现工程不能打开,出现如下提⽰:
![](https://i-blog.csdnimg.cn/blog_migrate/903b90caf2c09c4a35876ddd61ffbfaf.webp?x-image-process=image/format,png)
此时说明配置文件冲突了,需要选中⼯程文件右键,选择显
⽰包内容,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/4c71e460197ab416bef82003cc605f21.webp?x-image-process=image/format,png)
然后看到如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/ae43ebfe4ca391a28655a49f911414df.webp?x-image-process=image/format,png)
双击打开配置⽂件(project.pbxproj),然后如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/85b1c2ffa24fbb93c602010e390646c7.webp?x-image-process=image/format,png)
然后在Cornerstone中做如下操作:
![](https://i-blog.csdnimg.cn/blog_migrate/c52c4e0585f975c310137e5e5508a4b4.webp?x-image-process=image/format,png)
13、删除⽂件的时候只是删除了⽂件的引用,然后从Finder中删除对应的文件如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/f3aa3af54979b9c5a700197079e26bdc.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/79c87a4aeb4255c91e2831cba91fb391.webp?x-image-process=image/format,png)
这个时候可以采⽤下⾯的⽅式撤销之前的删除操作:
![](https://i-blog.csdnimg.cn/blog_migrate/bf761e5339ad4383aeaf9e199cf13b92.webp?x-image-process=image/format,png)
如果想真正的删除相关文件,那么在Cornerstone⾥面:
![](https://i-blog.csdnimg.cn/blog_migrate/9d41e1e85a08551c6c172bf669bf9d39.webp?x-image-process=image/format,png)
14、不能上传.a文件的解决方法
![](https://i-blog.csdnimg.cn/blog_migrate/3cd915931fd1d34124788dfa1a1f131c.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/6e274677a78ba8452148a7995b1eb0fe.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/f4aae657584302e28db81756efef6840.webp?x-image-process=image/format,png)
Cornerstone常见图标含义:
A:add,新增
C:conflict,冲突
D:delete,删除
M:modify,本地已经修改
G:modify and merGed,本地文件修改并且和服务器的进行合并
U:update,从服务器更新
R:replace,从服务器替换
I:ignored,忽略
1、黄色感叹号!(有冲突):
这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的修改。要解决冲突,如果你确认你的修改是无效的,则用TSVN还原你的修改就行了;如果认为你的修改是正确的,别人的提交是无效的,那么用TSVN先标记为“解决冲突”,然后就可以提交了;如果你认为你的修改和别人的修改都有一部分是有效的,那么你就把别人的修改手动合并到你的修改中,然后使用TSVN标注为“解决冲突”,然后就可以提交了。进入文件夹,寻找有黄色感叹号的文件,这些文件就是发生冲突的地方,根据实际情况处理冲突
2、米字号(有本地修改代码):
这是说明你有未提交的本地代码。
3、问号?(新加入的资源):
这说明该文件是项目中新增文件资源,新增资源可以是文件、图片、代码等。
4、红色感叹号(本地代码与库没有保持一致):
这说明本地代码跟库上没有保持一致,如果用户想修复,可以将带红色感叹号图标文件删除,直接update即可。
5、灰色向右箭头(本地修改过):
本地代码没有及时上库。
6、蓝色向左箭头(SVN上修改过)
记得更新代码后修改,提交前跟svn对比习惯。
7、灰色向右且中间有个加号的箭头(本地比SVN上多出的文件)
修改完记得跟svn保持一致
8、蓝色向左且中间有个加号的箭头(SVN上比本地多出的文件)
删除该文件后,再次更新,将svn上文件全部更新下来。
9、灰色向右且中间有个减号的箭头(本地删除了,而SVN上未删除的文件)
也就是说你删除确认后,一定要记得上库,跟svn保持一致
10、蓝色向左且中间有个减号的箭头(SVN上删除了,而本地未删除的文件)
比对svn库上代码,确定需要删除后,更新svn(删除无用代码)
11、红色双向箭头(SVN上修改过,本地也修改过的文件 )
这个表示本地和svn上都修改过,最好就是把本地修改合并到svn,修改代码前最后先更新。