SVN:Wie Pflege ich meine lokale config.bla-Datei?
Frage
Auf dem SVN-server, dort ist eine Datei namens config.conf
.Ich habe eine lokale version namens die gleiche Sache (im gleichen Ort). Wie kann ich sicherstellen, dass meine lokale config nicht überschrieben werden noch geprüft?
Während ich hier bin, ist die Antwort für ein Verzeichnis?
Ich bin mit Tortoise SVN, aber Befehlszeile Antworten sind cool.
Vielen Dank!
[Sorry, wenn diese Frage gestellt wurde, bevor...Ich suchte aber nicht finden.]
Lösung
SVN wird immer denken, dass die Datei Teil des Repository ist, wenn Sie es das gleiche und kleben Sie es in demselben Verzeichnis nennen. Folgende Optionen sind verfügbar
- Umbenennen es (vielleicht ein Shell-Skript schreiben, um
mv config.conf config.conf.theirs && mv config.conf.mine config.conf
und führen Sie Ihre app) - Move it. Vielleicht ein gewisse Logik zu Ihren App hinzufügen, die für config.conf in einem lokalen, benutzerspezifischen Verzeichnis überprüft und verwendet dann den Standard config.conf wenn keine gefunden werden
Andere Tipps
TortoiseSVN hat eine schöne Antwort auf die Hälfte dieses Problem: ignorieren-on-commit
Dies verhindert, dass Sie versehentlich „nur lokal“ Änderungen kommen, aber es löst nicht das Problem versehentlich eine lokal geänderte Datei zu aktualisieren.
Schauen Sie sich diese Blog-Post für die detaillierten, wie:
http: //blog.baljeetsingh. net / 2009/02 / Tipps-Tricks-svn-ignore-on-commit.html
- es aus dem Repository mit SVN ausschließen: ignorieren (Sie werden es aus dem Repository zuerst löschen müssen)
- eine Kopie in config.conf.default mit Platzhalter-Werte halten. Sie können im Repository der Standardkopie halten.
- Verwendung config.conf als normal - Subversion werden sehen, es nicht mehr
Danke an alle. Ich dachte, Eoin verrückt sein, aber in der Tat, es ist wahr. Sie können eine Datei nicht ignorieren, die in der Versionskontrolle ist.
Nach dem Schildkröten-docs
Versionierte Objekte ignorieren
Versionierte Dateien und Ordner können nie werden ignoriert - das ist ein Merkmal Subversion. Wenn Sie eine Datei versioniert durch Fehler, lesen Sie den Abschnitt genannt „Dateien ignorieren, die bereits sind versioniert“Instruktionen, wie man „Versionskontrolle“ es.
Und aus der SVN-Dokumentation
Ich habe eine Datei in meinem Projekt, dass jeder Entwickler muss sich ändern, aber ich weiß nicht diese lokalen Mods wollen immer sein engagiert sein. Wie kann ich ‚SVN‘ ignoriert die Datei?
Die Antwort lautet: nicht, dass die Datei setzen unter Versionskontrolle. Stattdessen setzen ein Vorlage der Datei unter Versions Kontrolle, so etwas wie "file.tmpl".
Dann, nach dem anfänglichen ‚svn Kasse‘, haben die Benutzer (oder Ihre Build-System) macht eine normale O Kopie die Vorlage auf den richtigen Dateinamen, und haben die Benutzer die Kopie anpassen. Das Datei ist unversionierte, so wird es nie engagiert sein. Und wenn Sie möchten, können Sie die Datei in das übergeordnete Verzeichnis des hinzufügen svn: ignore Eigenschaft, so dass es nicht der Fall ist zeigen, wie ‚?‘ in dem 'svn status' Befehl.
Das ist furchtbar ärgerlich ... Ich denke, ich werde nur mit dieser Datei und eine Sicherungskopie meiner eigenen Config vorsichtig sein müssen (was ich ignorieren).
Danke an alle für Ihre Antworten.
Sie können ein SVN-ignorieren hinzufügen: Attribut zu Ihrem lokalen Ordner, die config.conf oder sogar * Conf
schließtAber ich glaube, dann würden Sie vollständig diese Datei aus dem SVN ausschließen müssen, das heißt, wenn seine bereits bei der Repo geprüft, müssen Sie löschen das Repository rfrom ersten
, um die Datei zu ignorieren sollten Ihnen helfen:
http://tortoisesvn.net/docs/release/TortoiseSVN_en /tsvn-dug-ignore.html
Wenn es eine subversioning mit Konfigurationsdateien ist, ich habe sehr nützlich fand einen ganzen Stamm gewidmet zu haben. Warum? Die meisten, weil Sie einfach zwei Kopie lokale Repository kann, ein für lokale Anwendungen, ein für Fern chanings.
Wie folgt aus:
/ workdir / Konfiguration [ist ein Link auf / workdir / conf_local]
/ Workdir / conf_local [halten aktualisiert lokale conf aber meine Einstellungen nicht ovverride]
/ Workdir / conf_remote [immer mit Remote-Daten aktualisiert, kann ich Änderungen so begehen]
Ich weiß nicht, welche Art von setup Sie haben, oder wenn diese ist anwendbar, um welche Sprache Sie gerade verwenden, aber dies ist die Art, wie ich es mit Webseiten und PHP.
Zuerst erstellen Sie Standard-Konfiguration, die vermutlich naiv Werten, die nicht für die Arbeit mit 90% des setups, sondern bietet Ihnen eine Referenz für welche Werte gibt es und was kann eigentlich konfiguriert werden.Dieses Skript ist in der Regel genannt 'config.default.php
"oder etwas in eine ähnliche Richtung.Am Ende dieses Skript ist etwas, das nach der Melodie von:
if (file_exists("config.php")) require "config.php";
Einfache Logik.Wenn ein Benutzer überschreiben der config-Datei, dann laden Sie es, und lassen Sie es überschreiben, was auch immer es braucht, um.Dann halten Sie einfach das user config-Datei ignoriert, über die Methoden bereits erklärt, auf alle die Entwicklung der Maschinen und der Produktion von Maschinen, die halten ein svn checkout für was auch immer Grund.Dies ist ein sehr flexibles setup, und ähnlich Verfahren werden könnte setup für die meisten Sprachen/Umgebungen.
als Scrappydog wies darauf hin,
Sie können verschiedene Listen verwenden / erstellen im Dialogfeld commit
unterstützt ignorieren-on-commit Liste, auf diese Weise werden die Dateien unter dieser Liste nicht sichtbar sein wird ..
Sie finden Sie unter Blog Link für Details.
http: //blog.baljeetsingh .net / 2009/02 / Tipps-Tricks-svn-ignore-on-commit.html