Wo ich bin: Linux Kommandozeile
Das Problem habe ich jetzt:
Manchmal konnte ich keine atomaren Commits machen (bestehend aus allen Modifikationen, die für ein bestimmtes Ticket / Aufgabe erforderlich sind), da wir einige Dateien im Repository haben, deren Inhalt in lokalen Entwicklungsumgebungen variiert.
Zum Beispiel: database.xml
(Datenbankname, Benutzername, Passwort, usw.). Ich ändere diese Datei in meiner lokalen Umgebung, und jedes Mal, wenn ich einen Commit / Check-In machen muss, lade ich manuell alle erforderlichen Dateien / Ordner für das Commit auf (ausgenommen diese lokal modifizierten Dateien).
Vielleicht ist es eine falsche Design-Entscheidung und database.xml
muss aus dem Repository gelöscht und für database.xml.template
(in SVN gespeichert) geändert werden, damit diese Datei nicht übernommen wird, bis Sie svn add
manuell ausführen dafür? Vielleicht ist es ein falscher Ansatz - all diese umweltabhängigen Informationen im Repository zu speichern - in diesem Fall können wir alles durch eine geänderte Konfiguration zerlegen, zum Beispiel ..
Wie ich es verstehe, kann die Eigenschaft svn:ignore
in dieser Situation nicht helfen, da sie nur für Dateien verwendet werden kann, die nicht im Repository gespeichert sind.
Wie kann dieses Problem gelöst werden?
PS .: Ich benutze Ubuntu und meistens reine Befehlszeile für SVN.
Das "Standard" -Verfahren dafür ist etwas wie dieses (Vergeben der SVN-Syntax, ich habe Bazaar benutzt in letzter Zeit):
%Vor%Dann auf der Entwicklungsmaschine jeder Person:
%Vor%Und wenn sie begehen,
%Vor% Die Datei database.xml
wird nicht zu Subversion hinzugefügt.
Sie sollten eine Vorlage im Repository speichern, aber nicht die tatsächliche Datei, die Sie lokal ändern müssen.
Auf diese Weise können Sie bei Bedarf eine unveränderte Datei wiederherstellen, ohne zu riskieren, eine Datei im Repository zu speichern, die nicht dort sein sollte.
Und nein, svn: ignore wird dir hier nicht helfen.
Meine 2 Cent: Zuerst müssen Sie sicherstellen, ob es (leicht) möglich ist, Ihre Pfade für alle involvierten Entwickler in Ihrem Projekt zu harmonisieren. Dies kann die gleiche relative Verzeichnisstruktur oder eine dünne Schicht in Ihrer Anwendung sein, die einige Shell-Vars oder ähnliches wie $ home,% USERPROFILE% usw. unterstützt. Dies wäre im Laufe der Zeit viel bequemer als jeder Entwickler mit seiner eigenen nicht versionierten Konfiguration zu arbeiten das versuchen auch IDEs.
Im Allgemeinen ist die Versionierung von Konfigurationsdateien für mich vollkommen in Ordnung, es ist einfach Zeit, die ein Entwickler aufwendet, um Dinge einzurichten und nicht versehentlich verloren gehen sollte.
Tags und Links svn version-control svnignore