【问题标题】:TortoiseXXX: knowing which SCM software is used in a specific development projectTortoiseXXX:了解特定开发项目中使用了哪些 SCM 软件
【发布时间】:2011-10-05 10:05:22
【问题描述】:

我的系统上安装了 TortoiseSVN、TortoiseGit 和 TortoiseHg。正如预期的那样,但不幸的是,这些工具使用相同的图标来指示特定文件夹的版本控制状态。因此,当我在 Windows 资源管理器中打开我的软件项目文件夹时,我无法立即看到与特定解决方案/项目一起使用的 SCM 软件:

我当然可以检查是否存在 .svn、.git 和 .hg 子文件夹,但如果 SCM 将显示在主文件夹图标上或鼠标悬停时作为工具提示显示会更有效文件夹上方。

有谁知道是否存在提供此类功能的 shell 扩展?

【问题讨论】:

  • TortoiseSVN 允许您更改图标集。如果都这样做,您可以为所有系统使用不同的图标...
  • 您是否考虑过将您的项目移动到以您使用的 VCS 命名的单独文件夹中? (即 Git\Project1、SVN\Project2、HG\Project3)
  • @StefanEgli,感谢您的提示。区分哪个图标集属于哪个 SCM 仍然有点棘手,但基本上是一个不错的想法。
  • @tomlog,这很聪明 :-) 但是立即知道 SCM 并不重要;无论 SCM 如何,我都希望将我的解决方案保存在一个主文件夹中。还是谢谢。
  • @AndersGustafsson 但这不是为不同的 SCM 设置不同图标的全部意义吗?

标签: tortoisesvn tortoisehg tortoisegit


【解决方案1】:

原因很简单(查看 TortoiseSVN 和 TortoiseGit 的帮助文件,搜索 Icon Overlays):

事实上,您可能会发现并非所有这些图标都在您的系统上使用。这是因为 Windows 允许的覆盖数量非常有限,如果您还使用旧版本的 TortoiseCVS,则没有足够的覆盖插槽可用。 TortoiseSVN 试图成为“Good Citizen (TM)”,并限制其对覆盖的使用,以给其他应用程序提供机会。

现在有更多的 Tortoise 客户端(TortoiseCVS、TortoiseHG,...),图标限制成为一个真正的问题。为了解决这个问题,TortoiseSVN 项目引入了一个通用的共享图标集,作为 DLL 加载,可供所有 Tortoise 客户端使用。请咨询您的客户提供商,看看这是否已集成 :-)

因此,即使您更改其中一种工具的叠加样式,也可能是所有其他工具都遵循。如果您在 XP 下工作(我已经在 Windows 7 上检查过,但它不再工作了),您可能有TortoiseSVN Help > 4.7.2 中详述的选项:Windows 资源管理器中的 TortoiseSVN 列

您可以在 Windows 资源管理器中显示其他列,也许这是您的一个选项。

【讨论】:

  • 感谢您非常明确的回复,mliebelt。我也运行 Windows 7,所以额外的资源管理器列也不适合我。但基本上,这将是一个可以接受的解决方案。让我们希望额外的 SVN 和 Git 列最终也会以某种方式在 W7 上启用。
【解决方案2】:

问题是所有 Tortoise 客户端都使用相同的共享组件来显示覆盖图标 - TortoiseOverlays。 Windows 只有有限数量的空闲插槽用于图标覆盖处理程序(大约 12 个 - 其余的由系统本身使用)。这对 Tortoise 客户端来说是个问题,因为他们通常需要很多这样的处理程序来显示文件和文件夹的不同状态。如果用户安装了多个 Tortoise 客户端,这已经足以达到系统限制,并且某些叠加层将不再显示。

TortoiseOverlays 项目的目的是为所有 Tortoise 客户端提供一个通用的图标覆盖处理程序。这降低了达到系统限制的风险。唯一的缺点是所有 Tortoise 客户端都将具有相同的覆盖图标,这意味着用户不会立即从覆盖中看到哪个版本控制系统正在处理某个文件夹的文件。但这仍然比由于系统限制而根本无法显示叠加层要好得多。

【讨论】:

    【解决方案3】:

    正如其他人已经指出的那样,所有 Tortoise 客户端都有充分的理由使用相同的图标。所以我不再赘述。

    但是你为什么不自己customize 顶部文件夹图标呢?您可以为每个工作副本文件夹使用一个独特的图标(不仅仅是一个覆盖,而是一个完整的图标!)。

    这样,您可以立即识别每个工作副本使用的版本控制系统(假设您使用一个图标来指定 git 工作副本,一个用于 svn 工作副本,另一个用于 hg 工作副本)。

    【讨论】:

    • 哇!!!极好的!非常感谢 Stefan,这是一个很好的解决方案。我会马上采纳的。
    • 作为后续,@Stefan:我已经开发了一个小型开源应用程序,可以根据您上面链接的文章自动“装饰”版本控制文件夹。这篇博文提供了背景和结果:cureos.blogspot.com/2011/10/…。再次,非常感谢您的回答。当然,感谢您在 TortoiseSVN 上所做的所有出色工作!
    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多