2009-08-19 4 views
6

Welche sind die korrekten/besten Eigenschaften, die den * .xml-Dateien in Subversion zugewiesen werden?Was sollten die Subversion-Eigenschaften für eine * .xml-Datei sein?

Ich bin besonders interessiert an den Eigenschaften svn:mime-type und svn:needs-lock.

Ich denke, es gibt zwei Antworten, aber ich bin mir nicht sicher, welche zu wählen. Die erste besteht darin, XML-Dateien als Textdateien zu betrachten, damit Subversion Textmischungen in ihnen verwalten kann. Dafür würde ich svn:mime-type=text/xml verwenden und würde nicht verwenden svn:needs-lock.

Die zweite wäre, XML-Dateien als Binärdateien zu betrachten, was verhindert, dass Subversion automatische Zusammenführungen durchführt und auf Sperr-vor-Bearbeitung-Verhalten besteht. Dafür würde ich svn:mime-type=application/xml verwenden und svn:needs-lock setzen.

Ich denke, es ist in Ordnung, XML als Text zu behandeln, wenn es sich um die Art von XML-Datei handelt, die direkt in einem Texteditor bearbeitet wird, da der Benutzer dann eventuelle Konflikte manuell lösen kann. Werkzeuggenerierte XML-Dateien können jedoch nicht einfach von Hand bearbeitet werden und sollten daher nicht automatisch von Subversion zusammengeführt werden, damit der Benutzer nicht in eine Situation versetzt wird, in der er einen Konflikt in einer (im Wesentlichen) binären Datei lösen muss.

Als konservativ behandle ich XML-Dateien als Binärdateien. Aber ich muss das immer Entwicklern erklären, die es vorziehen würden, einige XML-Dateien direkt bearbeiten zu können, ohne vorher Schlösser zu bekommen.

Ich würde gerne wissen, was andere darüber denken und ob es wirklich eine Gefahr gibt, was Tools betrifft, erzeugte XML-Dateien oder nicht.

POST KLARSTELLUNG:

Nach den ersten drei Antworten gelesen habe ich erkannt, dass die obige Frage nicht klar genug war.

Mein Zweifel ist, welche Eigenschaften für *.xml Dateien im [auto-props] Abschnitt der Subversion-Konfigurationsdatei (~/.subversion/config) konfiguriert werden sollten?

Das Problem ist, dass es nur eine Konfiguration geben kann. Also, sollte ich vorsichtig sein und alle XML-Dateien als Binärdateien behandeln oder sollte ich den Benutzern, die ihre XML-Dateien manuell bearbeiten und alle XML-Dateien standardmäßig als Text behandeln, gefallen?

+0

Da Sie unten einige Antworten haben, die Ihre Frage zu beantworten scheinen, markieren Sie bitte einen von ihnen als 'Akzeptiert', indem Sie auf das Häkchen unter der Anzahl ihrer Stimmen klicken (siehe [Wie akzeptieren Sie eine Antwort?] /meta.tex.stackexchange.com/q/1852)). Dies zeigt, welche Antwort Ihnen am meisten geholfen hat, und es weist dem Autor der Antwort (und Ihnen!) Reputationspunkte zu. Es ist ein Teil von [der Idee dieser Seite, gute Fragen und Antworten durch Upvotes und die Annahme von Antworten zu identifizieren] (http://tex.stackexchange.com/about). –

Antwort

3

Wenn das XML generiert wird, müssen Sie zuerst fragen, warum es in Subversion ist. Ich bin mit den Entwicklern auf diesem, aber eine offensichtliche Lösung, wenn Sie Versionskontrolle die generierten Dateien müssen ihnen andere Erweiterungen als .xml geben.

+0

Guter Punkt. Als Beispiele für "generierte XMLs", die für die Versionierung sinnvoll sind, habe ich an Dinge wie FODT-, DIA- und XMI-Dateien gedacht. Diese haben jedoch unterschiedliche Erweiterungen und sind unproblematisch. Ich befürchte allerdings, dass es einige Tools geben könnte, die XML-Dateien mit der Erweiterung '.xml' erzeugen. Aber ich weiß wirklich keine ... – Gnustavo

0

Wenn die XML-Datei lesbar und gut verständlich ist, kann sie nicht wie jeder andere Text behandelt werden. Wenn es nur maschinenlesbar ist oder nicht, was Ihre Entwickler gut verstehen, müssen Sie es als Binärdaten behandeln. Ihr Verständnis und Ihre Fähigkeit, sie manuell zu manipulieren, werden gleich bleiben.

7

Wir verwenden sowohl text/xml als auch application/xml in unserem Subversion-Repository. XML, das von Hand bearbeitet wird, lesbar ist und somit sinnvoll zusammengeführt werden kann, behandeln wir als Text. Dazu gehören Dinge wie Maven pom-Dateien und build.xml Dateien, docbook Dateien, XHTML-Dokumente usw.

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

für XML, die die komplexe Dateiformat für einige Werkzeug ist, wir behandeln es als binär. Beispiele hierfür sind *.fodt (flache ODT), OmniGraffle-Dateien, XMI (UML-Modelle) und dergleichen. Ein Benutzer kann vernünftigerweise nicht dazu gebracht werden, eine solche Datei zusammenzuführen, und tatsächlich sind die Diffs für sogar triviale Änderungen oft groß und unordentlich.

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

Diese Unterscheidung hat uns sehr geholfen.

+0

Guter Punkt. Ich habe meine Frage bearbeitet, nachdem ich Ihre Antwort gelesen habe. Ich mochte auch den 'charset = utf-8'-Tipp. – Gnustavo

Verwandte Themen