SVN atomare commit how-to

8

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.

    
ep3static 03.05.2009, 10:15
quelle

3 Antworten

8

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.

    
FryGuy 03.05.2009, 10:26
quelle
6

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.

    
quelle
0

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.

    
Thorsten Schöning 11.08.2014 08:03
quelle

Tags und Links