公司采用SVN作为版本控制工具,因此熟练应用SVN的一些操作也可以提高日常工作效率。想回自己用到的一些稍麻烦的操作如下:
-
从历史版本中创建代码分支:打开SVN客户端,单击URL右边的HEAD弹出选择版本窗口,输入要创建分支的历史版本号(SVN同一URL下的文件版本是依次递增的,每次提交文件或目录都会增加相应的版本号);
回溯到历史版本后右键单击要创建分支的文件夹选择copy to 弹出如下窗口
输入要创建分支的URL及对应的目录名称,单击OK再输入注释即可。以前总是先把历史版本导出到本地,然后再在分支目录中创建文件夹,然后提交到该分支文件夹中,这样操作太繁琐。
2.其它可能经常遇到的问题:
(1)更新时提示文件发生冲突:"One or more files are not a conflicted state。"
多人同时修改同一文件的同一部分,SVN无法自动进行合并,会导致该错误;解决方法:对工作复本中的文件和服务器的文件进行比较,手工合并即可。
(2)"Commit failed;File already exists"提交失败,文件**已存在。
版本管理系统在改变你的计算机上的工作副本时,是非常的小心的。在做任何事情之前,它都尽可能把您的意图写到你的计算机上的日志文件中去。但如果偶然地操作中断了(例如:突然停电了,您的计算机死机了),那么日志文件记录就可能同您最后的工作状态不一致。一种建议解决途径:先把要提交的东西拷出来放到其它目录,再更新本地文件,然后把拷出来的文件重新放回去提交。
(3)Working copy'**'locked. Please execute the 'Clean up'command.
Subversion客户端在提交内容之前会在本地的工作拷贝写日志,防止其他客户端再次作操作,如果这个提交过程中发生错误,就会存在未清理的日志,解决这个问题之需要执行"清理"操作,整理你的计算机上的工作副本,清理错误的日志记录,使您可以继续操作。
(4)执行clean up时,出现错误"Subversion reported an error while doing a cleanup!" \'**\' is not a working copy directory "
遇到这种情况,先删除隐藏文件夹.svn中的tmp下面的临时文件,再执行clean up。
(5)在SVN中选中一个目录show log时,出现了某些版本只显示版本号和(no date),没有其他信息,什么原因引起的?
出现了(no date)的revision,为其他人修改了你所没有权限访问的某个目录下的文件。