5.15. 项目设置

图 5.27. 资源管理器属性页,Subversion 页面

资源管理器属性页,Subversion 页面

有时你可能想得到关于一个文件/目录的更多的细节信息而不仅是一个覆盖的标志。 你能得到Subversion的属性对话框中浏览到的所有信息。只需选择指定文件或目录,然后在文件菜单中选择Windows Menuproperties(注意: 这是浏览器提供的标准属性菜单,而不是TortoiseSVN 子菜单的其中之一)。在TortoiseSVN 属性对话框中已经为在Subversion控制下的文件/目录增加新的属性页。在这里你能看到所有的关于选择文件/目录的相关信息。

5.15.1. Subversion 属性

图 5.28. Subversion 属性页

Subversion 属性页

你可以在 Windows 属性对话框读写 Subversion 属性。也可以从TortoiseSVN属性,或者 上下文菜单属性,来读写 Subversion 属性。

从版本库里删除数据的唯一方法就是使用svnadmin这个Subversion命令行工具。具体如何实现请参考《使用 Subversion 进行版本管理》

图 5.29. 增加属性

增加属性

为了增加新属性,先单击增加...,从组合框中选择需要的属性名称,或者输入你自定义的名称,然后在下面的编辑框内输入取值。有多个取值的属性,例如忽略列表,肯呢个输入多行。单极确认将属性增加到属性列表。

如果你想一次性设置许多文件的属性,在资源管理器中选择文件/文件夹,然后选择上下文菜单属性

如果你想设置当前文件夹内的全部文件和文件夹,选中递归检查框。

一些属性,例如svn:needs-lock只能用于文件,所以它们在文件夹的属性下拉列表内不会出现。你仍旧可以递归的设置目录树中所有文件的属性,但是需要你自己输入属性名称。

如果你想编辑一个已有属性,在已有属性列表中选择它,然后单击编辑...即可。

如果你想删除已有属性,在已有属性列表中选择它,然后单击删除即可。

属性svn:externals可以用来下载位于同一版本库或不同版本库的其它工程。阅读第 5.2.5 节 “引用的工程”以获得更多信息。

TortoiseSVN可以处理文件的二进制属性。使用保存...到文件读取二进制属性值。使用十六进制编辑器或其它适当的工具创建文件,然后用从文件加载...设置二进制值为此文件的内容。

尽管二进制文件不经常使用,它们在一些程序中是有用的。举例来说,如果你存储了巨大的图形文件,或者用程序加载的文件巨大,你可能想将缩略图作为属性存储,于是你可以快速的预览。

[重要]提交属性

Subversion 属性是受版本控制的。在你改变或增加属性后必须提交。

[提示]属性冲突

如果因为其他用户已经提交了同样的属性,提交时出现冲突,Subversion 会产生一个 .prej 文件。在你解决冲突后,请删除此文件。

[提示]自动属性设置

你可以设置当文件和文件夹加入版本库时,自动设置属性。阅读第 5.27 节 “TortoiseSVN的设置”以获得更多信息。

5.15.2. TortoiseSVN 属性

TortoiseSVN 有自己专用的几个属性,它们都有tsvn:前缀。

  • tsvn:logminsize设置提交日志的最小长度。如果你输入的日志短于预设值,提交会被禁止。这个属性对于提醒你为每次提交提供一个适当的描述信息非常有用。如果不设置这个属性,或者设置为0,那么就允许空提交信息。

    tsvn:lockmsgminsize设置锁定日志的最小长度。如果你输入的日志短于预设值,加锁会被禁止。这个属性对于提醒你为每次加锁提供一个适当的描述信息非常有用。如果不设置这个属性,或者设置为0,那么就允许空加锁信息。

  • tsvn:logwidthmarker用在要求日志信息被格式化为在最大宽度(典型是80字符)处换行非常有用。设置此属性为大于0的值会在日志消息对话框中做两件事: 放置一个标记指示最大宽度,和禁止自动换行,于是你可以看到输入的信息是否太长。注意: 这个特性仅在你选择的消息使用固定宽度字体时才能正确工作。

  • tsvn:logtemplate在需要定义日志消息格式化规则的工程中使用。在你开始提交时,这个属性的多行消息会被插入日志消息编辑框。你可以编辑它以便包含需要的信息。注意: 如果你使用了tsvn:logminsize属性,请确认这个长度大于模版的长度,不然就会失去其保护作用。

  • 在提交对话框,你可以复制修改的文件列表,包含每个文件的状态(增加,修改等)。tsvn:logfilelistenglish定义了文件状态用英文插入,还是用本地消息插入。此属性的默认值是

  • TortoiseSVN可以使用OpenOffice和Mozilla使用的拼写检查模块。如果你安装了这些模块,那么这个属性将检测使用哪个拼写检查模块。也就是,你的工程的日志信息用的语言。tsvn:projectlanguage设置拼写检查引擎应该使用什么语言模块来检查日志信息。你可以在这个叶面找到你的语言的取值: MSDN: 语言标示符

    你可以用十进制输入取值,如果用0x前缀的话,也可以用十六进制。例如英语(美国英语)可以输入0x0409或者1033

  • 当你想增加新属性时,你可以从组合框的下拉列表选取,也可以输入你喜欢的任何属性名称。如果你的项目使用了自定义属性,并且想让这些属性出现在组合框的下拉列表中(避免输入时拼写错误),你可以使用tsvn:userfilepropertiestsvn:userdirproperties创建自定义属性列表。对目录应用这些属性,当你编辑其任何子项属性时,你自定义的属性将会在预定义属性名称列表中出现。

一些 tsvn: 属性需要 true/false 值。它也理解 yestrue 的同义词,nofalse的同义词。

[重要]设置文件夹的 tsvn: 属性

属性tsvn:只能在文件夹设置。当你提交文件或文件夹时,这些属性从文件夹读取。如果没有发现这些属性,TortoiseSVN会向上级目录搜索,直到未版本控制的文件夹,或到达根目录(例如 C:\) 。如果你确认每个用户都是从同一个目录检出,例如trunk/,而不是其它子目录,那么只在trunk/设置属性就足够了。如果你不能确定,那么应当递归的设置每个子目录。深层的设置覆盖高层的设置 (靠近 trunk/)。

对于tsvn:属性,你只能对于所有子目录使用递归检查框设置属性,不能设置文件的属性。

TortoiseSVN可以与一些问题跟踪工具集成。它使用bugtraq:开始的属性。阅读第 5.25 节 “与 BUG 跟踪系统/问题跟踪集成”以便获得更多信息。

它也与一些基于WEB的版本库浏览器集成。阅读第 5.26 节 “与基于 WEB 的版本库浏览器集成”以获得更多信息。