SVN: Wie pflege ich meine lokale config.blah Datei?

7

Auf dem SVN Server gibt es eine Datei namens config.conf . Ich habe eine lokale Version, die dasselbe (am selben Ort) heißt. Wie kann ich sicherstellen, dass meine lokale Konfiguration weder überschrieben noch eingecheckt wird?

Wenn ich hier bin, ist die Antwort für ein Verzeichnis anders?

Ich benutze Tortoise SVN, aber Kommandozeilenantworten sind cool.

Danke!

[Entschuldigung, wenn diese grundlegende Frage schon einmal gestellt wurde ... Ich habe gesucht, aber nicht gefunden.]

    
Dan Rosenstark 24.10.2008, 13:02
quelle

9 Antworten

3

SVN wird immer denken, dass diese Datei Teil des Repositorys ist, wenn Sie es gleich benennen und im selben Verzeichnis speichern. Ihre Optionen sind

  • Benenne es um (schreib vielleicht ein Shell-Skript in mv config.conf config.conf.theirs && mv config.conf.mine config.conf und führe dann deine App aus)
  • Verschiebe es. Fügen Sie Ihrer App möglicherweise Logik hinzu, die in einem lokalen, benutzerspezifischen Verzeichnis nach config.conf sucht und dann die Standarddatei config.conf verwendet, wenn keine gefunden wird
Ryan 24.10.2008, 13:07
quelle
10

TortoiseSVN hat eine nette Antwort für die Hälfte dieses Problems: ignore-on-commit

Dies verhindert, dass Sie versehentlich "nur lokale" Änderungen vornehmen, aber es löst das Problem nicht, wenn Sie versehentlich eine lokal geänderte Datei aktualisieren.

In diesem Blogbeitrag finden Sie ausführliche Informationen dazu:

Ссылка

    
Scrappydog 27.08.2009 20:48
quelle
5
  1. Schließen Sie es mit svn: ignore aus dem Repository aus (Sie müssen es zuerst aus dem Repository löschen)
  2. Behalte eine Kopie in config.conf.default mit Platzhalterwerten. Sie können die Standardkopie im Repository behalten.
  3. benutze config.conf als normal - subversion sieht es nicht mehr
Ken 24.10.2008 13:12
quelle
4

Danke an alle. Ich dachte, Eoin könnte verrückt sein, aber in der Tat ist es wahr. Sie können eine Datei, die sich in der Versionskontrolle befindet, nicht ignorieren.

Laut der Tortoise-Dokumentation

  

Ignorieren von versionierten Elementen

     

Versionierte Dateien und Ordner können niemals   ignoriert werden - das ist eine Eigenschaft von   Subversion. Wenn Sie eine Datei mit. Versioniert haben   Fehler, lesen Sie den Abschnitt namens   "Ignoriere Dateien, die bereits vorhanden sind   versioniert "für Anweisungen, wie man   "Unversion" es.

Und von den SVN-Dokumenten

  

Ich habe eine Datei in meinem Projekt, die alle   Entwickler muss sich ändern, aber ich nicht   Ich will, dass diese lokalen Mods jemals sein werden   engagiert sein. Wie kann ich 'svn commit' machen   Ignoriere die Datei?

     

Die Antwort lautet: Legen Sie diese Datei nicht ab   unter Versionskontrolle. Setzen Sie stattdessen a   Vorlage der Datei unter Version   Kontrolle, etwas wie "file.tmpl".

     

Dann, nach der anfänglichen 'svn   Checkout ', haben Ihre Benutzer (oder Ihre   System erstellen) eine normale Betriebssystemkopie von   die Vorlage zum richtigen Dateinamen,   und lassen Sie Benutzer die Kopie anpassen. Das   Datei ist nicht versioniert, also wird es nie   engagiert sein. Und wenn Sie es wünschen, können Sie   Fügen Sie die Datei dem übergeordneten Verzeichnis hinzu   svn: ignoriere Eigenschaft, also nicht   als '?' im 'svn-Status'   Befehl.

Das ist furchtbar nervig ... Ich denke, ich muss nur vorsichtig mit dieser Datei sein und eine Sicherungskopie meiner eigenen Konfiguration erstellen (die ich ignorieren kann).

Danke an alle für Ihre Antworten.

    
Dan Rosenstark 24.10.2008 13:11
quelle
3

Sie können ein svn-ignore: -Attribut zu Ihrem lokalen Ordner hinzufügen, der config.conf oder sogar * .conf ausschließt

Aber ich glaube, Sie müssten diese Datei vollständig von SVN ausschließen, d. h. wenn sie bereits in den Repo eingecheckt wurde, müssen Sie sie zuerst aus dem Repository löschen

    
Eoin Campbell 24.10.2008 13:04
quelle
1

Das Ignorieren der Datei sollte Ihnen helfen:

Ссылка

    
JtR 24.10.2008 13:05
quelle
1

Wenn es eine Unterversion mit Konfigurationsdateien gibt, habe ich festgestellt, dass es sehr nützlich ist, eine ganze Verbindungsleitung dafür zu haben. Warum? Die meisten, weil Sie einfach zwei lokale Repository-Kopie haben, eine für lokale Zwecke, eine für Remote-Sitzungen.

So:

/ workdir / configuration [ist ein Link zu / workdir / conf_local]
/ workdir / conf_local [lokales Conf aktualisieren, aber nicht die Einstellungen ändern]
/ workdir / conf_remote [immer mit entfernten Daten aktualisiert, damit ich Änderungen festschreiben kann]

    
Joshi Spawnbrood 24.10.2008 13:14
quelle
1

Ich weiß nicht, welche Art von Setup Sie haben, oder ob dies auf die Sprache anwendbar ist, die Sie gerade benutzen, aber das ist die Art, wie ich es mit Websites und PHP mache.

Zuerst erstellen Sie eine Standardkonfiguration, die wahrscheinlich naive Werte hat, die bei 90% der Setups nicht funktionieren, aber Ihnen eine Referenz dafür geben, welche Werte vorhanden sind und was tatsächlich konfiguriert werden kann. Dieses Skript wird normalerweise ' config.default.php ' oder etwas ähnliches genannt. Am Ende dieses Skripts steht etwas:

%Vor%

Einfache Logik. Wenn es eine Benutzerüberschreibung für die Konfigurationsdatei gibt, laden Sie sie ein und überschreiben Sie, was sie benötigt. Bewahren Sie diese Benutzerkonfigurationsdatei einfach über die bereits erläuterten Methoden auf allen Entwicklungsmaschinen und allen Produktionsmaschinen auf, die aus irgendeinem Grund einen Svn-Checkout ausführen. Dies ist ein sehr flexibles Setup und ähnliche Prozeduren können für die meisten Sprachen / Umgebungen eingerichtet werden.

    
Matthew Scharley 24.10.2008 13:41
quelle
0

wie Scrappydog darauf hingewiesen hat

Sie können im Commit-Dialogfeld verschiedene Listen verwenden / erstellen

Es unterstützt die Ignore-On-Commit-Liste, so dass die Dateien unter dieser Liste nicht sichtbar sind.

Sie können auf diesen Blog-Link für Details.

Ссылка

    
Baljeetsingh 07.01.2010 10:52
quelle

Tags und Links