发生冲突的文件,同时将被合并后的文件替换
合并文件的窗口标题
发生冲突的文件,同时将被合并后的文件替换
合并文件的窗口标题
例如,使用 Perforce Merge:
C:\Path-To\P4Merge.exe %base %theirs %mine %merged
或者使用 KDiff3:
C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged --L1 %bname --L2 %yname --L3 %tname
或者使用 Araxis:
C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname /title3:%yname %theirs %base %mine %merged /a2
5.27.4.3. 差异查看/合并工具的高级设置
图 5.48. 高级差异比较设置/高级合并设置的对话框

在高级设置中,你可以为每种文件类型都定义一个不同的差异比较/合并程序。例如,你可以指定Photoshop作为.jpg文件的 “比较” 程序 :-) 也可以按照 svn:mime-type 属性指定差异/合并程序。
无需任何通配符,你仅需指定文件的扩展名,包含开始的点,但是没有任何通配符。使用 .BMP 来描述Windows位图文件,而 不是*.BMP。如果使用svn:mime-type属性,要指定多媒体文件类型,包含斜线,例如text/xml。
5.27.4.4. 统一的差异查看器
一个统一差异文件(补丁文件)的查看程序。不需要任何参数。默认 选项遵循先检查 .diff 文件,再检查 .txt 文件的顺序。如果你没有 .diff 文件的查看器,就需要用记事本来查看了。
原始Windows记事本程序对未使用标准“回车-换行”结束符的文件支持的并不好。而很多统一差异文件都仅仅使用“换行”结束符,因此他们的格式在记事本中显示的并不好。无论如何,你可以下载一个免费的记事本2 Notepad2,它不但可以正确地显示结束符,更可以为差异文件中添加和删除的那些行做颜色标记。
5.27.5. 已保存数据的设置
图 5.49. 设置对话框,已保存数据设置页面

为您方便着想,TortoiseSVN保存了很多你用过的设置,并记录你最近浏览过的地址。如果你想清空这些数据缓存,就在这里操作。
每次你检出一个工作拷贝,合并那些更改的文件,或仅仅是在使用版本库浏览器时,TortoiseSVN都将保存一个记录,记录那些最近使用过的URL,并在一个下拉列表框中显示出来。有时列表会被逐渐增多的过期URL弄得乱糟糟的,所以有定期清理一下的必要。
如果你希望从列表中删除单独的条目,可以点击下拉列表,移动鼠标到你要删除的项上,然后按组合键SHIFT+DELETE。
TortoiseSVN同时也储存你最近提交时填写的日志信息。对应每个版本库都要储存这些信息,所以如果你访问过很多版本库,这个列表将变得非常大。
许多对话框都可以记录你最后一次使用时的窗口大小和位置。
当你在登陆某个Subversion服务器,填写认证信息时,用户名和密码也可以被保存在本地,你也就不用每次都输入了。但考虑到一些安全因素,你可能会有清除这些认证信息的愿望,或者你仅仅是想换个不同的用户名登陆...John知道你正在用他的机器么?(规范点儿,用你自己的用户名登陆版本库吧,伙计 *by Jax)
如果你仅想清除某个特定版本库的认证数据,读一下 第 5.1.5 节 “认证” 有关怎样寻找缓存数据的说明。
5.27.6. 注册表设置
一些极不常用的设置只有通过直接修改注册表的方式才能生效。
通过编辑注册表 HKCU\Software\TortoiseSVN\ConfigDir,你可以为Subversion的配置文件指定一个不同位置。这将影响到TSVN的所有操作。
要为TSVNCache程序添加一个缓存托盘图标,先在 HKCU\Software\TortoiseSVN\CacheTrayIcon 的位置,创建一个 DWORD 值,取值为1。这确实只对开发者才有点用处,因为它允许你来优雅地关闭TSVNCache,而不是在进程列表里kill掉它。(托盘图标可以显示当前已缓存了的文件夹数目 *by Jax)
5.27.7. Subversion的工作文件夹
在使用VS.NET环境做web工程时,遇到.svn文件夹会出问题,但Subversion是要用这些文件夹来储存自己的内部信息的。这可不是Subversion的bug,这bug是VS.NET和它使用的frontpage扩展带来的。
在Subversion 1.3.0和TSVN 1.3.0里,你可以设置环境变量 SVN_ASP_DOT_NET_HACK,来通知Subversion用 _svn 文件夹替代 .svn 文件夹。你必须重启你系统的外壳程序来使环境变量生效,一般意味着你要重启PC。在1.4.0里这项替代工作就变得非常简单,你只需从常规设置页面选择一个单选框:使用“_svn”目录替代“.svn”目录。——参考 第 5.27.1 节 “常规设置”
若想获得更多信息,了解避免该问题的其他方法,请读读我们 FAQ 里的文章。
5.27.8. 钩子脚本
图 5.50. 设置对话框,钩子脚本页

这个对话框允许你指定当特定 Subversion 动作执行时,自动执行的钩子脚本。
应用程序,例如钩子,可能调用如SubWCRev.exe这样的程序,来更新提交后的版本号,可能还会出发重新构建。
由于各种安全理由和实现问题,钩子脚本在本地机器定义,而不是象工程属性那样。不管是谁提交,都可以定义它做什么事情。当然,你也可以选择调用一个受版本控制的脚本。
图 5.51. 设置对话框,配置钩子脚本页面

要增加钩子脚本,直接点击 ,然后输入脚本即可。
现在有六种钩子脚本类型可用
在提交对话框之前调用。当钩子修改受版本控制的文件,影响了提交的文件列表的时候适用。
在提交对话框点击之后,实际提交之前调用。
在提交结束后调用(无论成功或失败)
在更新到版本对话框显示之前调用
在 Subversion 更新实际开始之前调用
在更新之后调用(无论成功或失败)