2009-07-20 8 views
3

Ich habe ein Django-Projekt, an dem ich als Solo-Entwickler gearbeitet habe, und habe TortoiseSVN verwendet, um den in einem Repository verwalteten Code auf einem Arbeitsserver zu halten. Ich arbeite daran auf einer lokalen Installation von Django usw.Eine einzige Projektdatei aus einem SVN-Repository ausschließen

Es gibt jetzt eine zweite Person, die an diesem Projekt arbeiten wird, und die Möglichkeit, an einigen anderen PCs zu arbeiten.

Jetzt sollte es vorläufig nur eine Entwicklungsversion (Zweig?) Dieses Projekts geben, aber die Konfigurationsdatei (settings.py) muss auf jedem Computer, der verwendet wird, anders sein. Ich möchte eine lokale Version dieser Datei auf jedem PC erstellen, die nicht noch einmal geändert werden muss.

Wie kann ich das Repository (vorzugsweise in TortoiseSVN) festlegen, um diese eine Datei auszuschließen? Z.B. Das Repository sollte settings.py nicht enthalten. Wenn eine Überprüfung durchgeführt wird, sollte sie alle Dateien im lokalen Ordner aktualisieren, aber nicht die lokale Kopie von settings.py ändern/entfernen. Wenn eine Festschreibung erfolgt, sollte settings.py ignoriert und nicht hochgeladen werden.

Momentan wird settings.py wie jede andere Datei im Projektordner/Repository überschrieben/aktualisiert.

Jeder Stupser in die richtige Richtung wäre nützlich - ich bin neu in SVN im Allgemeinen und würde gerne wissen, ob dies ein detailliertes Verständnis der Verzweigung benötigt oder ob es einen einfacheren Weg gibt.

Dank

Antwort

4

In TortoiseSVN, wenn Sie versuchen, Ihre Dateien in der Dateiliste Dialog zu begehen, rechts auf die Datei klicken und die Option Ignorieren aussehen. Sie können den vollständigen Dateinamen oder die Erweiterung ignorieren.

Wenn sich die Datei bereits im Repository befindet und Sie sie von dort entfernen und ignorieren möchten, können Sie einfach mit der rechten Maustaste auf die Datei klicken und im TortoiseSVN-Menü nach der Option 'Liste löschen und hinzufügen' auswählen .

+0

Beachten Sie, dass dieser Vorgang beim nächsten Update auch von allen anderen gelöscht wird. Svn hat einen --keep-local Schalter in den neueren Versionen, aber das hat das gleiche Problem: Sie behalten Ihre lokale Kopie, aber alle anderen verlieren ihre. – Rytmis

+0

Zur Klarstellung, ich möchte jede lokale Kopie sichern, die Datei aus dem Repository löschen/ignorieren, das Repository auf jedem Rechner auschecken (wodurch die Datei gelöscht wird), dann die lokale Sicherungskopie in den lokalen Ordner zurücklegen und ab dann funktioniert Commit/Checkout wie vorgesehen? Oder wird die Datei bei jedem lokalen Update gelöscht? – meepmeep

+0

Wenn die anderen Maschinen noch keine Arbeitskopie haben, ist alles in Ordnung. Wenn sie einen haben und die Einstellungsdatei haben, wird das Kopieren/Aktualisieren/Kopieren von Backdance den Trick machen. Das Update löscht die Datei nur einmal (es handelt sich nur um eine ausstehende Änderung an der lokalen Kopie). – Rytmis

2

Die typische Lösung ist zu tun, was bgever sagte und ignorieren Sie die Einstellungsdatei selbst, und übergeben Sie dann eine Datei mit Prüfung ple Werte, etwas wie settings.py.example. Diese Datei sollte nur aktualisiert werden, wenn Sie Einstellungen hinzufügen oder entfernen. Bei der Bereitstellung würden Sie das in kopieren und die Werte bearbeiten.

Verwandte Themen