2009-08-19 46 views
6

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

我特别感兴趣的属性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视为文本,因为用户可以手动解决任何最终的合并冲突。但是,工具生成的XML文件不易手工编辑,因此不应该由Subversion自动合并,以免用户处于必须解决(实质上)二进制文件中的冲突的情况。

保守,我把XML文件当作二进制文件。但是我总是不得不向开发人员解释这一点,他们宁愿能够直接编辑一些XML文件,而无需以前获取锁定。

我想知道别人怎么看待这个问题,以及是否真的存在工具生成的XML文件的危险。

POST澄清:

后看了前三的回答,我意识到上述问题还不够清楚。

我的疑问是Subversion配置文件(~/.subversion/config)的[auto-props]部分中的*.xml文件中应配置什么属性?

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

+0

由于您的答复似乎回答了您的问题,请考虑将其中一个标记为“已接受”,方法是点击其投票计数下方的标记(请参阅[您如何接受答案?](http:///meta.tex.stackexchange.com/q/1852))。这显示了哪个答案对你最有帮助,并且将信誉点分配给答案的作者(和你!)。这是[本网站的想法,通过upvotes和接受答案确定好的问题和答案](http://tex.stackexchange.com/about)的一部分。 – 2014-10-07 18:44:52

回答

3

如果生成XML,您首先必须问为什么它在Subversion中。我和这个开发人员在一起,但是如果你必须版本控制生成的文件,那么显而易见的解决方案就是给它们扩展,而不是.xml。

+0

好点。作为可生成版本的“生成的XML”的示例,我正在考虑诸如FODT,DIA和XMI文件之类的东西。但是,这些有不同的扩展名,不会造成任何问题。但是,我担心,可能会有一些工具生成扩展名为“.xml”的XML文件。 但我真的不知道任何... – Gnustavo 2009-08-21 10:55:26

0

如果XML是人类可读的并且很好理解,那么就像处理任何其他文本一样处理它。如果它只是机器可读的,或者不是你的开发人员很好理解的东西,则必须将其视为二进制数据;你的理解水平和手动操作的能力将是相同的。

7

我们在Subversion版本库中使用text/xml和application/xml。手工编辑的XML,人类可读,因此可以被有效地合并,我们将其视为文本。这包括诸如Maven的POM文件,文件的build.xml,代码文档文件,XHTML文档等

svn:eol-style=native 
svn:mime-type="text/xml; charset=utf-8" /* so apache sends the right encoding */ 

对于XML这对一些工具的复杂的文件格式,我们把它作为二进制。例子是*。fodt(平面ODT),OmniGraffle文件,XMI(UML模型)等。用户不能合理地合并这样的文件,事实上,即使是微不足道的变化也常常是巨大且杂乱的。

svn:mime-type="application/xml" 
svn:needs-lock="*" 

做出这种区分对我们来说很好。

+0

好点。在阅读您的答案后,我编辑了我的问题。 我也喜欢'charset = utf-8'提示。 – Gnustavo 2009-08-21 10:57:45

相关问题