5.7. 获得状态信息

当你在你的工作复本上工作时,你时常需要知道哪些文件你已经修改/增加/删除或改名了,或者甚至是哪个文件已经被其他人修改并提交了。

5.7.1. 图标重载

图 5.13. 显示重载图标的资源管理器

显示重载图标的资源管理器

现在你已经从Subversion版本库中检出了一份工作复本,你可以在资源管理器中看一下这些文件的图标有什么变化。这也正是TortoiseSVN这么流行的原因之一。TortoiseSVN加入了被称为重载图标的功能重载了原始的文件图标。根据文件的Subversion状态的不同,重载的图标也不同。

一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常.

在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。

如果在提交的过程中出现了冲突图标变成黄色感叹号。

如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。

如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。

这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。

加号告诉你有一个文件或是目录已经被计划加入版本控制。

与TortoiseCVS (一个集成的CVS shell)不同,对于未受控的文件没有图标重载。这么做是因为图标重载的数量受到系统的限制,应该要节约使用。

事实上,你会发现并不是所有的图标被使用在你的系统上。这是由于Windows限制图标重载不能超过15个。Windows自己用了4个,剩下11个可被别的应用程序使用。如果你同时使用了TortoiseCVS,就不有足够的空位了,所以TortoiseSVN希望成为一个“良好市民(TM)”,限制自身的使用,为别的应用留下机会。

  • 正常, 已修改冲突总是被载入,并可见。

  • 已删除只要有可能的就载入,但如果没有足够的空位,就使用已修改来代替。

  • 只读只要有可能就载入,但如果没有足够的空位就使用正常来代替。

  • 已锁定只在少于13个重载已经载入的情况下才加载,如果不满足这个条件就使用正常来代替。

  • 已增加只在少于14个重载已经载入的情况下才加载,如果不满足这个条件就使用已修改来代替

5.7.2. 在 Windows 资源管理器中的 TortoiseSVN 列

在Windows资源管理器的详细信息视图中,附加列中可以显示与图标重载所表达相同的信息(还可以显示更多其他信息)。

右键点击列头,从出现的右键菜单中选择其他...。出现一个对话框,你可以指定在“详细信息视图”中要显示的列及其顺序。滚动对话框中的条目直到SVN开头的条目出现。在你要显示的条目上打勾,然后点击OK按扭关闭对话框。你选择的列就会出现在当前显示的列的右边。你可以通过拖放它们来达到重新排序或是修改列宽度的目的。

[提示]提示

如果你想要当前的布局对你所有的工作复本都有效,你可以考虑把它设成默认视图。

5.7.3. 本地与远程状态

图 5.14. 检查所作的修改

检查所作的修改

通常知道你修改了哪些文件以及哪些文件已经由另人修改并提交了是很有用的。这就是命令TortoiseSVNCheck For Modifications... 的用武之地了。这个对话框显示了所有你的工作复本中进行了任何形式的修改的的文件,也包括了当前存在的未受控的文件。

如果你点击检查版本库,那你还可以看到版本库里的改动。这样,你就可以在提交之前检查是否有存在冲突的可能。你也可以从版本库中更新选中的文件而用不着更新整个文件夹。

对话框使用颜色代码来高亮显示状态。

这是默认的配色方案,但你可以通过设置对话框来定制这些颜色。参考第 5.27.2.5 节 “TortoiseSVN 颜色设置”获得详情。

那些被切换(switched)到不同版本库路径的项也用(s)标记来表示。当工作在分支上的时候你可能切换到某处,然后忘记切换回主干。这是你的警告信号!

在对话框的上下文菜单中你可以显示改变的差异。使用 上下文菜单与基础版本比较检查所作的本地修改。使用上下文菜单使用标准差异格式显示差异检查版本库中别人作的修改。

你还可以对单个文件进行还原(revert)。如果你不小心删除了一个文件,在对话框中会显示为丢失你可以使用还原来恢复它。

可以使用邮件菜单删除将未版本控制的或忽略的文件丢到垃圾箱。如果你向彻底删除(不使用垃圾箱),在点击删除时,请按着Shift键。

如果你要查询一个文件的详细情况,你可以把它从这里拖到另一个应用程序,比如一个文本编辑器或是IDE中。

这些列是可定制的。如果你右击任何一列的头部,你就会看到一个上下文菜单,允许你选择哪一列要显示。还可以在鼠标移动到列边界时通过拖动把手来改变列的宽度。这些定制的内容都会被保留下来,下一次你会见到相同的头部。

如果你同时做几个不相关的任务,也可以在修改列表中分组文件。阅读第 5.4.2 节 “修改列表”以获得更多信息。

[提示]提示

如果你需要工作目录的全面视图,也就是所有文件和文件夹都同时显示,以便方便的使用检查修改对话框。只要选择现实未修改文件检查栏,显示工作目录中的所有文件即可。

[提示]修复外部改名

有时候文件不是用Subversion改名,于是它们在文件列表中作为丢失和未版本控制的文件出现。为了避免丢失历史,你需要通知Subversion。简单的选择老名称(丢失)和新名称(未版本控制),然后使用右键菜单修复移动来指明这两个文件是改名关系。

5.7.4. 查看差别

通常你想要深入文件中了解你修改了什么。要达到这个目的,你可以选中这个文件,然后在TortoiseSVN的右键菜单中选择比较。这个操作会启动一个外部的差别检查程序,由它来比较当前文件与上一次检出或更新后的原始的复本(基础版本)。

[提示]提示

即使你不是在一个工作复本中工作或者你有多个版本的文件,你都可以按以下方法来进行比较:

选择你要比较的两个文件(比如,你可以使用Ctrl 键加鼠标),然后从TortoiseSVN的右键菜单中选择比较。最后一个被鼠标点中的文件(具有焦点的文件,比如有虚线框的文件具有焦点),将作为被比较文件的后一个。