`
fanjf
  • 浏览: 332922 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

关于SVN更新慢的解决方法

 
阅读更多

原因

SVN cache 监视消耗着时间

把所有状态信息缓存在一个独立进程中 (TSVNCache.exe) 。该进程监视所有驱动器的更改,并在工作副本中的文件被修改时重新获取其状态。该进程以最低优先级运行,所以其他程序不会被它挤兑。这同样意味着状态信息并不是 实时 的,因为它需要几秒钟时间处理图标覆盖的变化。

 

优点 : 图标覆盖递归地显示状态,就是说,如果一个处在工作副本深处的文件被修改了,所有途径的文件夹包括工作副本的根目录都会显示出修改的图标覆盖。也因为该进程可以向 Windows 外壳发送通知,资源管理器左面的树形图通常也会更改。

 

缺点 : 即使你已经不在项目下工作了,该进程仍然持续运行。取决于你工作副本的数量和大小,它将占用 10-50 MB RAM 内存空间。

 

解决方法

方法 1

关闭 SVN cache 监视。即关闭 tsvncache.exe 这个程序对目录的监视。

具体操作步骤如下:

a) 右击任意目录打开右键菜单 , 打开 "tortoisesvn" => "settings" 下的设置窗口

b) 找到 "icon overlays" 的设置项,将 "status cache" 设置成 "none"

方法 2

VN cache 监视设置为 shell default ,添加包含或者排除目录。

具体操作步骤如下:

a) 右击任意目录打开右键菜单 , 打开 "tortoisesvn" => "settings" 下的设置窗口

b) 找到 "exclude path" 的设置项,添加排除的目录或在 "include path" 的设置项添加包含目录

 

设置后将看不到更改显示图标,需要使用以下方法查看差异

 

使用 SVN 的“ check for modifications ”显示差异

具体操作步骤如下:

a) 右击需要比较差异的目录,打开右键菜单,打开 "tortoisesvn" => "check for modifications" ,打开比较差异窗口

注:这样显示文件差异是因为上面关闭监视后,再有修改程序文件,文件夹不再更新修改标识了,无法再通过查看文件平图标来知道是否有文件修改。

 

SVN  ICON OVERLAYS 设置页面详解

 

此页面允许你选择 TSVN 为哪些条目显示图标覆盖。选择网络磁盘可能会非常慢,所以默认情况下不为定位于网络共享中的工作副本显示图标覆盖。你甚至可以取消所有的图标覆盖,但那样做还剩下什么好玩儿的呢?

 

USB 闪存看上去是个特殊情况,因为驱动类型是设备自主标识的。于是有些显示为固定驱动器,而有些显示为可移动磁盘。

 

 

 

默认

把所有状态信息缓存在一个独立进程中 (TSVNCache.exe) 。该进程监视所有驱动器的更改,并在工作副本中的文件被修改时重新获取其状态。该进程以最低优先级运行,所以其他程序不会被它挤兑。这同样意味着状态信息并不是 实时 的,因为它需要几秒钟时间处理图标覆盖的变化。

 

优点 : 图标覆盖递归地显示状态,就是说,如果一个处在工作副本深处的文件被修改了,所有途径的文件夹包括工作副本的根目录都会显示出修改的图标覆盖。也因为该进程可以向 Windows 外壳发送通知,资源管理器左面的树形图通常也会更改。

 

缺点 : 即使你已经不在项目下工作了,该进程仍然持续运行。取决于你工作副本的数量和大小,它将占用 10-50 MB RAM 内存空间。

 

Windows 外壳

缓存在外壳扩展 dll 中直接完成,但仅仅是为那些当前可见的文件夹。每次你浏览到其他文件夹,状态信息就会被重新获取。

 

优点 : 仅仅需要很少的内存 ( 大约 1 MB) ,并且可以 实时 显示状态。

 

缺点 : 因为仅有一个文件夹被缓存,图标覆盖不会递归地显示状态。在大一些的工作副本下,它在浏览器中显示一个文件夹将比默认缓存模式花费更多时间。而且 mime-type 列将无效。

 

在这种设置下, TSVN 在浏览器里就完全不去获取状态了。因此,版本控制下的文件将不会获得任何图标覆盖。文件夹也仅仅有个“正常”状态的图标覆盖,其他的不会显示,也不会有其他额外的列可用。

 

优点 : 绝对不会占用任何额外的内存,也完全不会减慢浏览器的浏览速度。

 

缺点 : 文件、文件夹的状态信息不会显示在浏览器中。要获知你的工作副本是否被修改了,你需要使用“检查更新”对话框。

 

若你选择了默认选项,将同样决定如下选择 : 在文件夹包含非版本控制的项目时,把文件夹图标覆盖标记为已修改。这个有用的设置可以提醒你已经创建了非版本控制的新文件。

 

排除路径 是被用来告诉 TSVN 不用 在哪些路径下显示图标覆盖和状态列。如果你有些很大的工作副本,而这些工作副本仅仅包含你完全不想改变的库文件,从而你也不需要显示图标覆盖,这时该功能将会很有用。举个例子 :

 

填写 f:/development/SVN/Subversion 仅仅 在这个特殊文件夹上取消图标覆盖。你仍然可以在该路径下的所有文件、文件夹上看到图标覆盖。

 

填写 f:/development/SVN/Subversion* 将在路径以 f:/development/SVN/Subversion 开始的 所有 文件和文件夹上取消图标覆盖。这意味着你在该路径下的任何文件 / 文件夹上都将看不到图标覆盖了。

 

包含路径 也使用同样的语法。除了有些反例 : 即使该路径处在某个取消图标覆盖显示的特定驱动类型下,或是处在上面的排除路径之下,也依然会显示图标覆盖。

 

TSVNCache.exe 同样使用这些路径来限制它的扫描。如果你想让它仅仅在某些特定文件夹里监视,就取消所有的驱动器类型,并仅仅包含你允许被扫描的文件夹。

分享到:
评论

相关推荐

    SVN常见问题

    11. SVN速度慢问题 SVN操作缓慢的原因可能与TortoiseSVN的属性设置有关。可以检查右键菜单设置中的“Icon Overlays”和“Status cache”选项进行优化。 12. 认证失败或乱码问题 在使用“版本库浏览器”时遇到认证...

    svn客户端软件 svn客户端

    4. **更新(Update)**: 用户可以定期更新自己的工作副本,获取仓库中的最新版本,以便与团队的其他成员保持同步。 5. **差异(Diff)**: TortoiseSVN可以比较不同版本的文件,显示差异,帮助用户了解哪些部分被...

    SVN中文翻译教程

    本教程将详细介绍SVN的基本概念、安装与配置、基本操作以及常见问题解决。 一、SVN基础 1. 版本控制:SVN的核心功能是版本控制,它记录每次对文件和目录的更改,形成一个历史版本链,便于回溯和比较。 2. 仓库...

    svn_1.8插件完整离线安装包

    1.8版本是一个稳定版本,兼容Eclipse的多个版本,提供了丰富的SVN操作功能,包括检出、提交、更新、解决冲突等。 离线安装包的好处在于,用户无需上网即可完成安装,这对于网络环境不稳定或者速度较慢的用户来说...

    myeclipse svn插件

    MyEclipse的svn插件允许用户在IDE内部直接进行svn的操作,如添加、提交、更新、合并、查看历史记录等,极大地提升了开发效率。它集成于MyEclipse的工作空间,无需离开IDE就能管理代码版本。 2. **为什么需要...

    SVN解压缩版

    本资源是“SVN插件解压缩版”,专为解决通过网络安装SVN过程中可能遇到的速度慢或失败的问题。 当你下载的这个SVN解压缩版,你将得到一个包含了`features`和`plugins`目录的文件集合。这两个目录是Eclipse集成开发...

    MyEclipse SVN配置文件

    在MyEclipse中,SVN插件允许用户直接对项目进行添加、提交、更新、冲突解决等操作,极大地提高了开发效率。 MyEclipse中的SVN配置文件主要包括以下部分: 1. **全局配置文件**:这些文件通常位于用户的主目录下的`...

    mac os install eclipse and setting svn

    本文将详细介绍如何在Mac上安装Eclipse以及配置SVN,解决可能遇到的`javah`缺失问题。 首先,我们需要下载Eclipse。Eclipse Indigo (v3.7.1) 是一个适用于多种开发需求的版本,可以从官方网站...

    ankn svn client 2.6.12735

    2. **提交与更新**:用户可以直接在解决方案资源管理器中右键点击文件或项目,选择“提交”或“更新”操作,同时,AnkhSVN还支持提交对话框,用于添加注释和选择要提交的文件。 3. **冲突解决**:当多个用户修改了...

    SVN1.9.5 安装软件和中文安装包

    - **冲突(Conflict)**:当两个或多个用户同时修改同一文件的同一部分时发生,需要手动解决。 - **分支(Branch)**:创建一个独立的开发线,允许团队成员在不影响主分支的情况下进行实验性开发。 - **标签(Tag)**:...

    SVN服务器搭建和使用

    ### SVN服务器搭建与使用详解 #### 一、SVN简介 Subversion(简称SVN)是一种集中式的版本控制系统,主要用于代码版本...通过以上步骤和方法,您可以成功地搭建和使用SVN服务器,为团队提供高效稳定的版本控制服务。

    Myeclipse下安装和使用svn服务器端、客户端(图解)

    - 操作源码:现在可以在MyEclipse中对SVN仓库进行操作,如检出(Checkout)、提交(Commit)、更新(Update)、解决冲突(Resolve)等。 5. 使用MyEclipse进行SVN操作: - 检出项目:在MyEclipse中选择“File”->...

    vss2svn使用说明vss导入subversion教程

    解决乱码问题的方法包括检查系统环境变量的设置,确保它们支持UTF-8编码。你也可以尝试在vss2svn的配置中指定正确的字符集。对于TortoiseSVN,确保其设置正确地配置了字符编码,以便正确处理非ASCII字符。 在进行...

    svn1.8版本

    以下是关于"svn1.8版本"的一些关键知识点: 1. **速度提升**:SVN 1.8的一个显著特点是提高了整体性能,尤其是对于大型仓库和远程操作。它通过更有效的数据传输和缓存策略减少了网络延迟,使得更新、提交和检查差异...

    windows下基于apache的svn安装教程

    4. **SVN访问慢**:优化网络设置,或考虑使用SSL加密提高安全性。 以上就是Windows下基于Apache搭建SVN环境的完整配置指南,遵循这些步骤,你应该能够成功地建立一个功能完善的SVN服务器。在实际操作过程中,可能会...

    TortoiseSVN-1.11.1.28492-x64-svn-1.11.1

    这一版本的发布,无疑为用户提供了更加便捷的下载途径,避免了官方下载速度慢的问题。 首先,我们需要了解什么是SVN(Subversion)。SVN是Subversion的缩写,是一种开源的版本控制系统,它能够跟踪文件和目录的修改...

    centos svn 搭建全流程(超详细,原创!)

    3. **SVN仓库访问慢**:检查网络连接或优化libserf配置。 4. **SSL证书问题**:如果需要HTTPS访问,需要安装并配置SSL证书。 以上就是搭建CentOS SVN服务器的详细流程。在整个过程中,务必注意安全设置,避免公开...

    SVN 插件安装

    - **网络问题**:如果连接速度慢或连接失败,检查网络连接,或尝试更换不同的SVN客户端。 - **冲突处理**:遇到代码冲突时,通过比较差异并手动编辑冲突标记来解决。 7. **持续集成与SVN** - 在持续集成(CI)...

    SVN和Git简单使用文档

    根据提供的文件名,"svn笔记.docx"可能包含对SVN更深入的使用细节,比如解决冲突、标签(branching & tagging)、回滚等操作的步骤。而"svn和git的简单使用.pptx"很可能是对SVN和Git的对比,可能会涵盖两者的优缺点...

Global site tag (gtag.js) - Google Analytics