*.xml文件的Subversion属性应该是什么?

Gnu*_*avo 7 xml svn mime-types

在Subversion中分配给*.xml文件的正确/最佳属性是什么?

我在性质特别感兴趣svn:mime-typesvn:needs-lock.

我认为有两个答案,但我不确定选择哪一个.第一个是将XML文件视为文本文件,让Subversion管理文本合并.为此,我会使用svn:mime-type=text/xml,不会使用svn:needs-lock.

第二种方法是将XML文件视为二进制文件,防止Subversion执行自动合并并坚持锁定编辑前的行为.为此,我会使用svn:mime-type=application/xml并将设置svn:needs-lock.

我认为将XML视为文本是可以的,如果它是直接在文本编辑器中编辑的XML文件,那么用户就可以手动解决任何最终的合并冲突.但是,工具生成的XML文件不能轻易手动编辑,因此Subversion不应自动合并,以免用户处于必须解决(本质上)二进制文件冲突的情况.

保守,我将XML文件视为二进制文件.但我总是要向开发人员解释这一点,他们更愿意直接编辑一些XML文件,而不需要先获取锁.

我想知道其他人对此的看法以及是否存在与工具生成的XML文件有关的危险.

邮政澄清:

在阅读了前三个回复后,我意识到上述问题不够明确.

我怀疑应该在Subversion配置文件()部分中为*.xml文件配置哪些属性?[auto-props]~/.subversion/config

问题是只能有一个配置.那么,我应该保守并将所有XML文件视为二进制文件,还是应该让那些手动编辑XML文件并将所有XML文件默认为文本的用户取悦?

ben*_*din 8

我们在Subversion存储库中使用text/xml和application/xml.手工编辑的XML,人类可读,因此可以合并我们视为文本.这包括maven pom文件,build.xml文件,docbook文件,xhtml文档等.

svn:eol-style=native
svn:mime-type="text/xml; charset=utf-8"  /* so apache sends the right encoding */
Run Code Online (Sandbox Code Playgroud)

对于某些工具的复杂文件格式的XML,我们将其视为二进制.其示例是*.fodt(平坦ODT),OmniGraffle文件,XMI(UML模型)等.用户无法合理地合并这样的文件,实际上,即使是微不足道的变化也经常会出现大而混乱的差异.

svn:mime-type="application/xml"
svn:needs-lock="*"
Run Code Online (Sandbox Code Playgroud)

做出这种区分对我们很有帮助.


小智 3

如果生成了 XML,您必须首先询问为什么它在 Subversion 中。我同意开发人员的意见,但如果您必须对生成的文件进行版本控制,一个明显的解决方案是为它们提供除 .xml 之外的扩展名。