svn 面板缺少可选项_TortoiseSVN常见的16个使用问题与解决方法

TortoiseSVN常见的16个使用问题与解决方法

更新时间:2018-09-08

作者:cc

TortoiseSVN是一款常用的开源客户端,不少从事编程开发工作的网友都在使用。今天,蜗窝居小编就为大家整理一下TortoiseSVN常见的16个使用问题,方便您在日常使用的过程中,遇到下列问题,可以及时的找到解决的方法,下面就一起来今天的TortoiseSVN使用教程吧!

TortoiseSVN 1.9.2.26806 64位英文安装版(点击即可进入下载页面)

TortoiseSVN 1.9.2.26806 32位英文安装版(点击即可进入下载页面)

TortoiseSVN

TortoiseSVN常见的16个使用问题:

1、鼠标右键点击文件时CPU占用100%

每次右键点击文件,CPU飙升到100%(同时右键菜单被显示。)如果从菜单中选择某项,则CPU又恢复正常;如果在空白处点击右键,CPU将不会有问题,到底是怎么回事?

XP包含了一个已知的bug,当你在特定的配置文件下访问上下文菜单会引起cpu占用上升到100%。这个bug会使文件复制暂停,使网络连接缓慢,流媒体(声音,视频)扭曲。 为了工作在包含这个 bug 的环境下,你需要通过以下操作禁止图形界面的传输效果:

控制面板-》显示

选择外表栏

点击效果,然后清空为菜单和工具提示使用以下过渡效果栏

点击确定关闭所有的对话框。

另一种解决方法是在点击右键显示上下文菜单前点击一次左键。

2、是否可以创建一个本地的版本库到网络文件夹?

不能创建 Berkeley DB 版本库到共享的网络地址!

BDB 版本库 不能 存在于远程文件系统,比如NFS,AFS,或者Windows SMB。 BDB要求文件系统运行在严格的POSIX语义环境,更重要的是,将文件直接映射到进程内存的能力。很多没有网络的文件系统都提供了这个功能。 如果你尝试在网络共享中使用BDB,结局是不可预知的。你可能会立刻看到诡异的错误,或者在几个月以后,你发现版本库隐约被毁坏。

你可以使用 FSFS 格式的版本库但只有一个用户可以访问本地硬盘,接下来的FAQ项目会讲到为什么共享版本库是一个坏想法。 除非你真的有迫切的原因让你的文件放到网络共享,通常来说,最好的办法就是避免这样做。

如果你真的需要通过网络共享访问FSFS版本库,你应该按照下面的其中一点来做:

用下面的语法规则来映射网络驱动器:

将//server/shared映射到S:

file:///S:/repos (盘符前有三个斜杠)

通过下面的格式指定一个UNC直接路径:

Subversion 》= 1.2

file://server/shared/repos (2个斜杠)

Subversion 《 1.2 (奇怪的语法,我们知道)

file:/server/shared/repos (5个斜杠)

file:///\server/shared/repos (3个斜杠+反斜杠)

但是不要说我们没有提醒过你

3、是否可以将版本库保存在网络共享驱动器来代替创建服务器?

如果你需要多个电脑访问版本库,在理论上你可以创建 FSFS 版本库(但不能是 BDB 版本库)在网络共享驱动器上,通过已下格式访问 file:// protocol。事实上这里有三个不推荐的原因:

你将给所有用户直接访问权限,所以他们会有可能偶然的删除或者破换版本库文件系统。

并不是所有的网络共享协议都支持Subversion要求的锁定。总有一天你会发现你的版本库被悄悄的破坏。

你不得不设置正确的访问权限,SAMBA 在这一点上特别难以满足。

更好的办法是创建一个真正的服务器进程(像Apache,svnserve),存储版本库到当地的文件系统上,使版本库服务器可以在网络上有效,可以被访问。这也许会比你想的要简单。Subversion书中 第6章 服务器配置 有详细的方法说明。

4、是否可以使用不同的Subversion客户端来操作同一个工作拷贝?

可以,客户端只是用来控制你的工作拷贝,以及工作拷贝与版本库之间的交互。工作拷贝里的元数据对于不同的客户端来说都是一样的。

但是,必须是使用同一版本Subversion库的客户端。TortoiseSVN 所使用的Subversion版本会在安装文件的文件名里标明,其它的客户端也会有类似说明。版本号的头两位数一致的客户端才能通用。例如,所有使用Subversion1.5.x 的客户端都可通用(x表示此位数字不影响兼容性)

你还必须确保这些客户端都是为同一个操作系统编译的。客户端兼容的前提是必须是同一种操作系统,并且元数据的表示方式可能发生变化。你不可以 对同一个工作拷贝同时使用Windows的原生客户端和Cygwin的客户端。如果是通过网络共享的工作拷贝,你不可以 同时使用Windows的客户端和Linux的客户端。

5、TortoiseSVN能实时自动转换文本文件中的换行符吗?

请到查看Subversion书中关于svn:eol-style属性的内容。 比如说,如果你将此属性设置为native,在 Linux 下它就会以LF作为换行符, Windows 下则是 CRLF。想了解如何通过TortoiseSVN设置这些属性,请到 这里 阅读我们的文档。

6、如果冲突是在一个文件夹的属性里,怎样找到它呢?

在属性有冲突的文件夹里,有一个dir_conflicts.prej文件,用文本编辑器打开它,你会看到有冲突的属性,用你想保留的属性覆盖有冲突的。

7、我误删了一个文件,怎么找回来?

如果你还没提交,你可以在被删除的文件/文件夹的父文件夹作 还原 操作。

如果你已经提交了删除文件,你可以使用版本库浏览器,回到那文件还存在时的版本,然后在上下文菜单中使用 拷贝到 命令,输入你工作拷贝的路径作为目标路径,被删除的文件就会从版本库复制到你的的工作拷贝。

用这个方法也可以恢复被删除的目录。

如果用这个方法恢复文件/目录后,日志对话框无法显示它的修改历史,别担心,历史信息还在的。在 SVN 中复制一个文件时,它的历史信息会同时被复制。但TortoiseSVN的查看日志功能默认是Stop on copy,即当你查看的日志是由分支点开始的。之所以这么做是因为当查看一个真正的分支时,你多数只是想知道那个分支的历史信息。如果要看完整的历史信息,你可以不选 Stop on copy,而把Get All选上。

8、为什么我右击一个链接的时候有几个TortoiseSVN菜单?

这是正常的,其中一个是针对链接本身(.lnk-file 文件),另外一个针对它指向的文件。这样既可以对一个链接文件进行版本控制,又可以对它指向的目标进行控制。事实上在文件菜单里你会有多达三个菜单(上下文菜单只显示二个)。

9、能不能像 Visual Source Safe 一样使用共享文件?

Subversion中不能共享一个文件,但可以共享一个文件夹。请查看 Subversion Book中外部定义一章。

10、没有服务器,可以单独使用 TortoiseSVN 吗?

可以,你可以用file://协议来访问你的本地版本库。

11、使用TortoiseProc时可以发送用户名和密码吗?

TortoiseSVN 是一个 图形化客户端,它会在需要的时候提示你输入用户名和密码。如果你想以非交互方式访问版本库,可以使用命令行客户端。

12、版本分支图是怎么一回事?

版本分支图跟TortoiseSVN的其它功能不一样。它可以显示一个文件或文件夹的所有历史修订,包括拷贝、移动、分支和加标记操作。

我们经常会被问到为什么要把版本库根目录的日志也拿下来,或者是为什么会需要取由第一次修订到最新一次修订的全部日志呢

我得澄清一点:这可不是因为我们太懒,或是笨到不会优化尽管你们有些人似乎就是这么暗示的。我们这么做其实是有必要的。

版本分支图是通过查找针对某个对象的所有修订,来呈现它的历史的,这需要用到所有的可用信息。

如果查看选定文件/文件夹的日志,在日志对话框的下半部分你可以看到选中的修订影响到的所有路径,这就是在版本分支图用到的信息。如果查看/trunk的日志,你会发现里面没有记录加标记或分支的日志,就算是对/trunk本身加标记、作分支也不会有。 --》 这就是取版本库根目录日志的用意:只有版本库根目录日志才包含这些所需信息,包括一个目录何时曾被复制、分支、打标记或移动到何处。

沿用前面的例子,如果我们不取所有修订的日志,而只取一部分的,那就有可能丢失/trunk作分支、打标记的日志。而且即使那些分支、标记本身做过修改,或者那些日志也在取下的部分里,版本分支图也无法知道那些分支、标记操作是在/trunk还是别的路径发生的。这意味着,版本分支图不单是不完整的,还有可能是错的。

因此我们不会去做所谓的优化,如果这个图一时正确一时错误,而且你还无从判断它是否正确、什么时候正确,这比完全没用的东西更糟糕。

13、通过 svn+ssh 提交时,为什么日志里没有作者信息?

因为是 SSH 全权处理验证过程,所以Subversion根本不会知道是谁提交的。如果要告诉Subversion作者是谁,你可以在 URL 中指定,像这样 svn+ssh://username@server.com 。你应该在签出工作拷贝时这么做。

14、为什么TortoiseSVN识别不了一个文件被修改过?

如果你改了一个文件,但是TortoiseSVN没识别到,请检查该文件是不是确实跟你工作拷贝中的不一样。

如果你确定该文件已经修改过,但在提交对话框中却没有显示为已修改,请确保:

文件的最后修改日期发生了改变(有些工具比如十六进制编辑器会重设这个值)

如果设置了 svn:eol-style 属性,而所作的改动又只是添加删除一些空行的话,Subversion 会认为该文件没有被修改过

Subversion 是这样判断一个文件是否被修改过的:

15、最后修改日期和/或文件大小是否已改变?

如果否,则视为未修改

如果是,将文件内容与 BASE 文件进行比较

找到第一个有差异的字节时停止,将文件标为已修改

如果找不到有差异的字节,将文件标为未修改

16、删除一个文件后,它就不存在了,那我怎么提交呢?

很简单,提交整个目录。资源管理器窗口中, 去到文件所在文件夹, 右键 然后 提交。提交对话框会显示你的所有修改,包括添加或删除文件。

日期变成乱码了,甚至在签出/更新时会崩溃!

这通常在安装 XP SP3 后发生,按下面的步骤修正:

从 http://support.microsoft.com/kb/914387下载tzedit.exe

运行 tzedit.exe

从列表中选择你的时区(我收到的所有崩溃报告都是来自耶路撒冷时区的,大概你会选这个吧)

点击编辑

点击确定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值