CornerStone 常见的图标含义

  • A:add,新增
  • C:conflict,冲突
  • D:delete,删除
  • M:modify,本地已经修改
  • G:modify and merGed,本地文件修改并且和服务器的进行合并
  • U:update,从服务器更新
  • R:replace,从服务器替换
  • I:ignored,忽略

常见提示图标:

黄色感叹号(有冲突):

--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的修改。要解决冲突,如果你确认你的修改是无效的,则用TSVN还原你的修改就行了;如果认为你的修改是正确的,别人的提交是无效的,那么用TSVN先标记为“解决冲突”,然后就可以提交了;如果你认为你的修改和别人的修改都有一部分是有效的,那么你就把别人的修改手动合并到你的修改中,然后使用TSVN标注为“解决冲突”,然后就可以提交了。进入文件夹,寻找有黄色感叹号的文件,这些文件就是发生冲突的地方,根据实际情况处理冲突

米字号(有本地修改代码):

--这是说明你有未提交的本地代码。

黄色问号(新加入的资源,未加入版本控制):

--这说明该文件是项目中新增文件资源,新增资源可以是文件、图片、代码等。

红色感叹号(本地代码与库没有保持一致):

--这说明本地代码跟库上没有保持一致,如果用户想修复,可以将带红色感叹号图标文件删除,直接update即可。

灰色向右箭头(本地修改过)

--本地代码没有及时上库。

蓝色向左箭头(SVN上修改过)

--记得更新代码后修改,提交前跟svn对比习惯。

灰色向右且中间有个加号的箭头(本地比SVN上多出的文件)

--修改完记得跟svn保持一致

蓝色向左且中间有个加号的箭头(SVN上比本地多出的文件)

--删除该文件后,再次更新,将svn上文件全部更新下来。

灰色向右且中间有个减号的箭头(本地删除了,而SVN上未删除的文件)

--也就是说你删除确认后,一定要记得上库,跟svn保持一致

蓝色向左且中间有个减号的箭头(SVN上删除了,而本地未删除的文件)

--比对svn库上代码,确定需要删除后,更新svn(删除无用代码)。

红色双向箭头(SVN上修改过,本地也修改过的文件 )

--这个表示本地和svn上都修改过,最好就是把本地修改合并到svn,修改代码前最后先更新。

版本回退

  • 本地版本回退:

  • 右键选中对应的项目或者文件,弹出菜单中选中Revert

  • 提示你当前工程有一些修改,但是还没提交,"Discard XXX"-点击后当前修改的内容会被取消,“Copy XXX”-点击会会先复制一份代码到废纸篓

  • 点击 “Discard XXX”后,本地工程已更新至选择的版本,如果想将服务器上的也更新到选择的版本,可以再commit。

  • 服务器版本回退:误将错误的文件上传到了svn服务器,回滚的办法是:

  • 1:svn merge -r100:99 . (注意有个点,表示当前路径)

  • 2:svn ci -m “revert version” . (代码提交,实际上删除之前误传的文件)

.a(库文件)

  • 首先打开软件左上角 CornerStone-Preferences-SubVersion
  • 第一个地方把对号去掉,第二个地方把.a那个删除,然后save。
  • 然后把你的.a文件放到本地的相应文件夹下,
  • 但是 CornerStone(我的是v2.7.10 版本的) 里相应文件夹下看不到带问号的.a文件的话,点击上边 View-Show Ignored Items
  • 到这里就ok了,选中你的静态库 点击底部Add 问号会变成A,然后就可以提交了。

1.冲突原因

假如小张和小王同时从SVN服务器上更新了版本号为100的文件SVNTest.txt文件

这时,小张和小王都在本地拥有一个版本号为100的SVNTest.txt文件。

然后,小张对他的版本号为100的SVNTest.txt进行修改,修改后提交到SVN服务器上,此时SVN服务器上的SVNTest.txt版本号变为101

同时,小王对他的版本号为100的SVNTest.txt进行修改,假定其未提交的版本号为100+(这里,“100+"表示是在版本号为”100”的基础上做的修改,也就是在本地将文件SVNTest.txt的版本从服务器上更新到版本100后所做的修改),小王在小张提交之后再提交,如果提交成功,就会用版本号为“100+”的文件去覆盖服务器上版本号为101的文件,这显然是不可行的,因为会把小张所做的修改全都覆盖掉。所以此时提交不会成功,于是就产生了所谓的“冲突”

只有提交101+,去覆盖服务器上的101时,才不会产生冲突。也就是说,只有当我们在当前服务器上的最新版本的基础上做修改时,提交才不会产生冲突。所以产生冲突时,通常会提示文件过时,是因为本地的文件不是最新版本的

在Cornerstone中,点击Update后,

标记为M(Modified)的文件版本为100+,服务器上最新版本为100

标记为C(Conflicted)的文件版本为100+,服务器上最新版本为101甚至更高。

//Compare with BASE是用100+与100比较

//Compare with HEAD是用100+与服务器上最新版本比较,如果是M的话,服务器上最新版本就是100与BASE相同。如果是C的话,服务器上最新版本就是101甚至更高

//这里的最新版本与其说是最新版本,不如说是上一次更新时服务器上的的版本。因为我们并不是每时每刻都在更新的。

2.冲突解决

不能用100+的版本去覆盖101的版本,因为不能随意地覆盖别人的修改。这就需要小张和小王进行协商:小张和小王两个人都做了修改,这些修改哪些要保留,哪些要删除?

等协商完毕后,

你可能感兴趣的:(CornerStone 常见的图标含义)