2012-11-12 14 views
6

Nach dem Löschen meiner Svn Repo vor kurzem wollte ich etwas anderes versuchen und ich habe Perforce als meine aktuelle Versionierung Tool Test Boden gewählt. Es läuft super und ich mag was in Perforce zu sehen ist.Wie verschiebe ich Ordner zwischen Perforce "depots"

Hier ist mein Problem. Ich habe meine Dateien an meinen Perforce-Server gesendet und dann mit meinen Client-PCs diese Projekte vom Master-Perforce-Server abgerufen. Jetzt funktioniert alles super, außer dass ich erkannt habe, dass es möglich ist, mehr als ein einziges "Depot" in Perforce zu verwenden, und es macht für mich Sinn, dass ich einige dieser Projekte aus Gründen der Organisation und vielleicht auch in ein anderes Depot verlagern sollte aus Sicherheitsgründen.

Ich habe nach einigen Antworten gesucht, und ich habe einige von ihnen gefunden, aber ich bin nicht in der Lage, irgendwelche beabsichtigten Ergebnisse zu produzieren, also suche ich nach einem Expertenrat hier.

Eine der Seiten, die ich versucht habe, ist dies ein

http://kb.perforce.com/article/24/renaming-depot-directories

scheint eine Lösung anbieten zu können, aber ich habe nicht in der Lage, Dateien von einem Depot auf ein anderes Depot zu bewegen, die auf demselben Server ist verarbeiten. Die Beispiele auf der Seite funktionieren problemlos, wenn Sie einen Ordner in einen Ordner im selben Depot verschieben. Das Beispiel scheint den Umzug in einen anderen Ordner unter demselben Depot zu demonstrieren.

Ich bin also auf der Suche nach einer vernünftigen und sicheren Möglichkeit, meine Master Perforce-Depot-Ordner in ein anderes Depot zu verschieben, das sich auf demselben Server befindet, und natürlich ohne irgendwelche Arbeit zu verlieren. Hier

ist, was ich will

- Aktuelle

//Depot-A 
-->folder1 
-->folder2 

- Ich möchte

//Depot-A 
-->folder1 

//Depot-B 
-->folder2 

dank

Antwort

5

Das Verschieben von Dateien zwischen verschiedenen Depots unterscheidet sich nicht von dem Verschieben von Dateien zwischen Ordnern innerhalb desselben Depots, mit der Ausnahme, dass das Zieldepot bereits vorhanden sein muss. Mit Ihrem Beispiel und unter der Annahme „Depot-B“ existiert noch nicht, sich zu bewegen „folder2“ von „Depot-A“ auf „Depot-B“, würden Sie dies einfach tun:

p4 depot Depot-B 
p4 edit //Depot-A/folder2/... 
p4 move //Depot-A/folder2/... //Depot-B/folder2/... 
p4 submit 
+1

Sie müssen zuerst Depot-B definieren. Sie können dies mit dem Befehl 'p4 depot' tun. Depots können separaten physischen Speicher auf dem Server haben, so dass sie eine kurze Definition benötigen. –

+0

@ p4-randall: Danke, ich habe meine Antwort geändert. Ich denke, Depots sind ein bisschen speziell. – raven

-1

Ich glaube nicht, zusätzliche Depots hinzufügen viel in der Weg der Sicherheit. Mehrere Depotszenarien treten hauptsächlich bei sehr großen Installationen auf. Der primäre Vorteil von zusätzlichen Depots besteht darin, dass Sie mehr Kontrolle über das Plattenplatzlayout Ihres Servers erhalten, beispielsweise wenn Ihr Repository zu groß ist, um auf ein einzelnes Dateisystem zu passen, und Sie es zur Verwendung mehrerer Dateisysteme erweitern müssen . Ein zweiter Grund, um zusätzliche Depots zu erstellen, ist, wenn Sie Depots spezialisierter Typen haben müssen; Wenn Sie beispielsweise ein Stream-Depot erstellen möchten, um die Perforce Streams-Funktion zu verwenden.

Für ein Szenario wie das, das Sie beschreiben, ist es wahrscheinlich in Ordnung für die absehbare Zukunft, alle Ihre Dateien unter Depot A zu haben.

+0

Bryan Pendleton, danke für die Einsicht. Ich würde jedoch gerne wissen, wie das wirklich für die Zukunft getan wird. –

0

Hier ist, was Ich würde (in Kürze) Folgendes tun: Wenn Sie eine P4V-Sitzung öffnen und die Liste der eingereichten Änderungslisten auswählen, können Sie diese Gruppe so filtern, dass nur die Änderungen angezeigt werden, die sich auf die zu verschiebende Gruppe beziehen. Dies ist die Änderungsmenge, die Sie auf dem neuen Depot (oder sogar auf dem Server) duplizieren möchten, das Sie auffüllen möchten.Die Idee ist, dass Sie die Archivdateien auf der einen Seite entwirren und am Zielort auf identische Weise aufwickeln. Der Prozess ist also einfach (1) mit der ersten Änderungsliste zu synchronisieren, (2) diesen Satz an den neuen Ort zu integrieren, (3) zu prüfen, ob er gesetzt ist, und (4) mit der nächsten Änderungsliste fortzufahren. Offensichtlich kann dies gescriptet werden. Ich bin gerade dabei, ein Skript in Python zu erstellen, aber jede anständige Skriptsprache mit Perforce-Funktionsbibliotheken funktioniert. Ein paar Komplikationen: Die Änderungslisten werden der Reihe nach die gleichen sein wie die Originale, aber die ursprünglichen Zeiten werden nicht - sie werden "aktuell" sein. Und natürlich, wenn es Etiketten gibt, müssen Sie das an dem neuen Ort abbilden, wenn Sie sie erhalten möchten.

Verwandte Themen