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.]

War es hilfreich?

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

  1. es aus dem Repository mit SVN ausschließen: ignorieren (Sie werden es aus dem Repository zuerst löschen müssen)
  2. eine Kopie in config.conf.default mit Platzhalter-Werte halten. Sie können im Repository der Standardkopie halten.
  3. 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ßt

Aber 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top