tortoiseSVN的使用,如何删除服务器上某些版本?

tortoiseSVN的使用,如何删除服务器上某些版本?,第1张

仅用tsvn的话是不能删除的,只能回滚(复原)到50版本,然后在此版本基础上继续后面的工作

具体操作:

1、在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN-显示日志”

2、在弹出的日志窗口中,右键点击要复原的版本,选择“复原到此版本”

3、复原结束后,执行“提交”操作,将此版本作为版本库的最新版本

比如你从50版复原,复原后产生的101版实际和50版是一样的,再往后的工作就和正常一样进行了

如果要彻底从库中删除51-100版,那就很麻烦了,得把服务停掉,然后用svn的过滤工具来处理,非常的麻烦

如果未提交的,使用revert

如果已经提交:

1 回滚到上一个,使用rollback

2 回滚到上一个或以前的版本,可以使用merge的方式:

svn log -v 查看版本

svn merge -r <latest revision>:<last revision> <file>

commit

也可以使用 svn up命令

可以参考下这里:

1、Xcode4中苹果有自带的SVN软件------>Organizer------>Repositories

2、SVN checkout到本地后,删除本地file,对服务器有影响吗

不会影响服务器,当你执行“svn update”时会zai再次被自动下载;当删除后再执行“svn commit”就会在服务器上也对应删除。

3、连接服务器

点击file-》repositories-》点击坐下边的“+”-》然后名字及svn服务器的地址,还有type选中subversion然后next等等了。

4、Xcode4下,SVN中常用命令

Commit 提交

checkout 将服务器上下载到本地(我个正在使用的电脑)

update 更新文件

File------->SourceController------->update

5、SVN中用法详解和注意事项

①提交自己的代码

SVN更新的原则是要及时更新,及时提交。当完成了一个小功能,能够通过编译并且并且自己测试之后,尽量早的提交,这样也保存了历史版本,必要时候可以回滚;在开始一天的工作之前,最后update一下项目。

②保持原子提交(不要不经意间修改并提交了别人的文件)

仅提交你修改的部分,最好不要一下子将整个项目提交;

当完成一个功能或文件后,最好提交。我就遇到完成某个功能后,没有提交,后来又做了更改,结果代码出现bug,无法恢复到正常时的代码。

③不要提交自动生成的文件

VisualStudio等开发工具在生成过程中会产生很多自动文件,如suo等配置文件,Debug,Release,Obj等编译文件,以及其他的一些自动生成,同编译代码无关的文件,这些文件在提交的时候不应该签入,如果不小心签入了,需要从仓库中删除。

④不要提交不能通过编译的代码

代码在提交之前,首先要确认自己能够在本地编译。进行SVN提交更新时最好是代码在提交前已经通过自己的测试。

SVN中常用命令详解

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://19216811/pro/domain

2、往版本库中添加新的文件

svn add file

例如:svn add testphp(添加testphp)

3、删除文件

svn delete path -m “delete test fle“

例如:svn delete svn://19216811/pro/domain/testphp -m “delete testfile”

4、查看日志

svn log path

5、比较差异

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

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

svn merge -r m:n path

SVN使用方法

更新(update),经常地update没有坏处,特别是多人项目中。如果每次提交(commit)前不进行更新(update)的到最新的版本的话,svn会提示当前的拷贝过期,需要更新。

提交(commit),一定要写上这次提交的内容的摘要,便于以后查阅。

将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

svn update命令自动用服务器上的版本替换本地版本控制的文件

6、Xcode中使用SVN问题以及提交解决冲突问题

Xcode的SVN功能,和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差很多。

我是索性不用的,直接用命令行。我看有的朋友是用subclipse,其实也挺好,不过,为了使用SVN功能要单独开一个耗费资源的Eclipse。

但是,不论使用什么SVN工具,都会遇到Xcode固有的问题,即projectpbxproj文件的提交冲突问题。

projectpbxproj文件里面包含了构建过程所需的所有文件,如果你在项目目录下增加了新文件,比如没有通过Xcode,该文件就不在projectpbxproj文件中,就不会生成到app中。同理,如果你从SVN中更新到其他项目成员增加的文件,而没有更新projectpbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。

如果项目成员提交了新的projectpbxproj文件,你这边没有在项目中增加新的文件,直接svn update就可以了。

7、Xcode中更新代码后项目文件打不开

若选择更新整个项目经常会出现冲突问题,尤其是projectpbxproj文件。此文件包含了构建过程所需的所有文件,如果在项目目录下增加了新文件,但没有通过Xcode,

该文件就不在projectpbxproj文件中,就不会生成到app中。同理,如果从SVN中更新到其他项目成员增加的文件,

而没有更新projectpbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。这一文件冲突将直接导致项目文件打不开。

解决更新代码后打不开项目文件方法:

当项目文件如tobaccoxcodeproj打不开时可以右键选择'显示包内容',会看到有三个文件,projectpbxproj/usermodelv3/userpbxuser。

其中projectpbxproj有三个版本,和解决普通svn文件冲突一样解决冲突即可。

8、SVN 更新 提交 合并 区别

当本地文件没有改动,服务器文件改动的时候,更新会从服务器取文件覆盖当前文件

当本地文件有改动,服务器文件没改动的话,不会更新此文件

当本地文件有改动,服务器文件有改动的话,如果改动的部分不冲突,就会合并文件到本地,如果有冲突的话,会提示文件冲突,需要自己手动修改以后上传到服务器。

最后一个讲解合并:

服务器和本地的同一个文件(所谓同一个文件应该就是SVN相对路径相同,文件名相同的文件,这个由SVN留在本地的信息决定)已经修改,且修改的部分不重合,不重叠

当满足上面的条件的时候再更新,SVN就会自动合并

SVN的奥妙之处就在于别人提交了修改后的文件,你再提交你的话,他是不允许你提交滴。。。

>>>>

<<<

里面标记的是冲突的区域,把冲突区域删除掉为什么还不能提交

解决办法1:

删掉的话还是没有解决冲突,文件后面还会有几个文件名相同,但是后缀不同的文件

如果你不知道用SVN解决冲突的话,最简单的办法是这样的

把这个文件改名字,然后在文件所在目录更新,这样就会把服务器文件下下来,然后把自己修改的部分添加到更新的文件里面,这样就可以提交了

解决办法2:

在文件上面点击右键,到SVN的菜单,应该有编辑冲突的按钮,选择就会出现一个窗口,一边是服务器版本,一边是自己修改的版本 。

9、xcode自带svn的使用

1、代码中 某文件后面有 “M” 标记,表示该文件已被修改,需要 commit

(右键该文件 -> source control -> commit selected file)

2、代码中 某文件后面有 “A” 标记,表示该文件是新添加的,已受SVN管理,需要 commit

(右键该文件 -> source control -> commit selected file)

3、代码中 某文件后面有 “” 标记,表示该文件是新添加的,并且脱离了SVN的管理,首先需要add,然后 commit

(右键该文件 -> source control -> Add,这样该文件的标记就变为 “A”,然后在 commit)

用dos命令进入项目文件夹,运行svn cleanup;不要直接右键点击找cleanup选项。

SVN更新(SVN Update)及如何解决冲突文件

SVN update:

更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。

冲突文件的解决

1、对于每个冲突的文件Subversion在你的目录下放置了三个文件:如下:

2、 为什么会产生冲突呢?

原因很简单就是因为不同的人,同时修改了同一个文件的同一个地方,这时候,他提交了,我没有提交,我就提交不了,这个时候我们要进行先更新,然后在进行提交即可,那如果产生冲突,会生成如上3个文件。 

3、解决方案如下:

1) 首先我们可以看下1txt代码如下:

2) 然后我去掉多余的代码,1txt变成这样:

3)进行提交,还是提交不了,如下所示:

4)为什么?因为冲突会产生上面的三个文件,有上面3个文件存在肯定提交不了,这三个文件代码及解释如下:

4、新的解决方案:

前面说过  <<<<<<< mine …… =======

……之间的代码是我未产生冲突之前修改的代码,

======= ………>>>>>>> r16 这中间……的代码是别人与我冲突代码的部分,从上面的代码可以看到 aaaaaaaaa是我同事新增的 ,00000是我后增加的。    

1)使用revert(回滚)操作,该操作表示用户放弃自己的更新代码,然后直接提交,这个时候你的代码就会使服务器上最新的代码,即A用户提交的新代码,你的代码不会被提交,如下所示:

2)点击ok按钮后 可以看到其他三个文件都自动删掉了,1txt代码变成如下代码:

也就是a用户提交的代码,我自己更新的代码需要自己动手复制进去即可提交commit。

不用那么麻烦,直接还原就行了,客户端是TortoiseSVN的话,在该文件或文件夹上点右键,选择TortoiseSVN——revert

有时还原之后系统反应没那么快,还是显示红色感叹号,刷新几下就正常了。有时客户端会出点小毛病,怎么刷新都不变成绿色对勾,那么就执行一下清理(clean up)也就正常了。

最后建议装一下TortoiseSVN的中文语言包,免得看英文菜单眼晕。

这是通常所称的回滚操作,以TortoiseSVN为例,对该文件点右键,TortoiseSVN--显示日志,在日志窗口上方选中你要恢复的那个版本,在下方右键点击该文件,选择"复原此版本做出的修改",然后再次commit。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » tortoiseSVN的使用,如何删除服务器上某些版本?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情