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.]
SVN wird immer denken, dass diese Datei Teil des Repositorys ist, wenn Sie es gleich benennen und im selben Verzeichnis speichern. Ihre Optionen sind
mv config.conf config.conf.theirs && mv config.conf.mine config.conf
und führe dann deine App aus) 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:
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.
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
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]
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:
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.
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.