Frage

Ich bin mit SVN für Entwicklungsaufgaben, habe aber noch viele Dateien mit RCS verwaltet werden, weil es nicht sinnvoll scheint sie in meiner privaten SVN-Repository Arbeitskopie zu bearbeiten (da sie oft nur Konfigurationsdateien sind, die auch am besten getestet sind an Ort und Stelle). Es ist auch nicht sinnvoll erscheint eine Arbeitskopie des Repositorys zu haben, wo immer es Dateien unter SVN Kontrolle zu bringen, so dass ich nur RCS statt.

Was ist Ihr Ansatz ist, um Dateien für die Verwaltung, die idealerweise um nicht verschoben werden / sind, bearbeitet und an Ort und Stelle getestet?

Um genauer zu sein: Ich möchte das Äquivalent haben

  • mit einem schreibgeschützten file.txt
  • einen Befehl wie "co -l file.txt" (RCS) machen es editierbar
  • die Fähigkeit, um ihn zu bearbeiten und testen Sie es sofort
  • einen Befehl wie „ci -u file.txt“ (RCS), um die Änderung zu erfassen, fügen Sie einen Kommentar und machen es wieder nur schreib
  • andere Benutzer sollten auch in der Lage sein, dies an der gleichen Stelle zu tun
  • aber die Versionsinformationen an einem sicheren Ort (die SVN-rep vermutlich), auf einem anderen Server
  • gehen
War es hilfreich?

Lösung

Ich verwende Copy on Write-Dateisysteme (Kuh) wie Ext3cow (Disclaimer, ich bin einer der Mitwirkenden ) eine Menge Sachen zu verwalten. Zum Beispiel:

  • Snapshots gesamte Repositories rollen zurück, egal, welche Art. Zum Beispiel, wenn ich vermassele vollständig einen Git-Baum, ich kann cp -dpfR ./@123456789 ./, die mit Dateien meiner Arbeits Repo ersetzt, so wie sie bei Epoche 123456789 waren.
  • Mit Versionierung / Snapshots als eigene unveränderliche VCS, ideal für / etc und andere Dinge. Wie Dateien in der Vergangenheit kann nicht gelöscht oder geändert werden, ist jeder Snapshot eine unveränderliche Revision einer einzelnen Datei oder den ganzen Baum in der Zeit.

Normalerweise benutze ich Git oder Mercurial über Subversion, weil ich eine verteilte VCS bevorzugen, aber ich bestehe darauf, jetzt meine Repositories auf einer Versionierung auf halten lokal FS.

Für Windows-Anwender, glaube ich, dass es einige portable Implementierungen dieselbe vollständig in Python getan ... aber nicht wirklich sicher.

Andere Tipps

Wie gesagt, bevor Sie versuchen, SVN zu verwenden, für etwas, das eine DVCS wie git oder Mercurial verwenden sollte.

Jeder kann seine eigene Repository, und synchronisieren sie dann mit dem mais zentralen Repo (wie die SVN-Repo).

Das ist eigentlich das, was ich in meinen eigenen Projekten verwenden.

Das einzige, was ich nicht bekommen ist, warum Sie Schlösser benötigen. Eine Datei nicht schreibgeschützt werden. Sie denken wahrscheinlich, dass die Art und Weise, weil der Weg SVN tut verschmilzt (fast immer tun es von Hand müssen). Git ist wirklich Magie [1] und die Mehrheit der Verschmelzungen geht ohne menschliches Zutun.

[1] Ok, es ist keine Zauberei. Während SVN über Dateien kümmert, kümmert sich Git über Stücke von Code. Auf diese Weise wird eine Datei geändert zweimal zur gleichen Zeit zusammenführen kann, solange Sie das gleiche Stück Code nicht genau ändern.

Moderne verteilte Versionskontrollsysteme wie Git, Mercurial oder Bazaar sind das beste Werkzeug in einer Situation wie dieser. Nicht wegen des verteilten Aspekts (die eindeutig nicht von entscheidenden Bedeutung ist hier), sondern weil es ist extrem einfach ein Repository an Ort und Stelle zu schaffen.

In Mercurial Sie gerade tun müssen:

cd ~/directory
hg init

Mit Git ist ähnlich:

cd ~/directory
git init
git add .

Jede Arbeitskopie ist ein komplettes Repository, und Sie können es auf Remote-Server als Backup drücken, wenn Sie möchten. Auch all Repository-Daten in einem einzigen versteckten Verzeichnis gespeichert, so dass Sie das Problem vermeiden Tonnen .svn Verzeichnisse auf dem ganzen Platz hat.

Ich benutze Mercurial /etc auf meinem Server zu verwalten und ich finde es extrem komfortabel. Eine Sache zu beachten, wird es nicht markieren Sie Ihre Datei schreibgeschützt (wie RCS), aber ich halte dies ein Vorteil.

Sie müssen erkennen, dass SVN-Repositories sind frei. Sie können so viele erstellen, wie Sie wollen.

Sie müssen auch erkennen, dass Sie müssen eine ganze Repository nicht überprüfen. Du hast gesagt:

  

Es scheint auch nicht sinn   haben eine Arbeitskopie des Repositorys   überall dort, wo Dateien sind unter setzen   SVN Kontrolle

Ich bin nicht sicher, was Sie wirklich zu tun versuchen, aber ich habe den Eindruck, dass Sie SVN in eigentümlicher Weise.

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