Wie man eine schnelle und sichere Synchronisierung auf perforce?
Wenn Sie eine sync
im perforce kann es passieren, sehr oft, um nichts zu tun, auch wenn es sollte. Wenn Sie eine erzwungene Synchronisierung (sync -f
) es wird definitiv die Option alle Dateien aus dem server -, blind-und das ist nicht hinnehmbar, wenn Sie haben ein großes Projekt.
Die Frage ist, wie können Sie tun, eine schnelle sync?
InformationsquelleAutor |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den wichtigsten Teil deiner Frage ist "sollte es". Ohne scheitern, in all meinen (zu) viele Jahre Erfahrung mit Perforce, Benutzer, die wieder erzwungene Synchronisierungen, gewohnheitsmäßig, weil ein normaler sync nicht tut, was Sie erwarten, sind nicht mit Perforce richtig.
Müssen Sie lassen Perforce verwalten Sie Ihre Festplatte für Sie - der server weiß, welche Versionen die Dateien, die Sie haben, und so der normale sync nur das bekommt, was er braucht. Wenn es fehlschlägt, dann ist fast ausnahmslos ein Zeichen dafür, dass die Benutzer ändern, löschen, hinzufügen, umbenennen von Dateien außerhalb von Perforce (z.B. im Explorer).
Manchmal erhalten Sie möglicherweise ein system komisch (also PC Schuld), die bewirkt, dass diese, so es ist nicht unbedingt die Benutzer Schuld. Aber diese sind sehr selten - daher meine "gewöhnlichen" qualifier oben.
Wenn Sie denken, hand auf Herz, dass Sie nicht etwas zu tun, aus der gewöhnlichen, dann beginnen zu schauen, was die anderen Prozesse optimieren diese Dateien. E. g. tut Sie build-system nicht etwas sonderbar, und versuchen Sie, ändern der Dateien erstellt werden? Haben Sie eine offene Netzwerkfreigabe, die vielleicht jemand anderes versehentlich Stossen? Haben Sie ein backup-system, das stören?
Hoffe, das hilft.
Lassen Sie uns sagen, Sie haben eine build-farm - wollen Sie einen Arbeitsbereich erstellen(clientspec) für jeden computer in der farm?
Ja, eine client-spec pro Maschine wäre ratsam, in den meisten Fällen. Automatisieren Sie die Erstellung, aber so ist es nicht so schmerzhaft, wie Sie vielleicht denken.
Greg, kannst du uns einige Hinweise auf diese? Ich würde gerne einen Weg finden, der nach Ihrem Vorschlag aber mit einer vorhandenen clientspec als Vorlage und wenn jemand die Aktualisierung der ursprünglichen clientspec es-Skript aktualisiert die clientspec generiert.
Die meisten Funktionen können einfach durchgeführt werden mit dem Befehl line-p4-client. Sie können pipe, text, oder, im Falle von p4-client, der -t-option ermöglicht es Ihnen, eine Vorlage. Versuchen p4-Hilfe-client für einen ersten Blick. Es gibt auch APIs, um Perforce (Python, .net, etc) - siehe Perforce-website. Für Ihre Letzte Anforderung, die Sie hinzufügen können, einen trigger, um Perforce, ruft ein script/Befehl, wenn ein client-Spezifikation geändert wird. Sie könnten diese nutzen, um zu regenerieren, die andere - aber darüber nachdenken, ob Sie müssen dies sofort geschehen, oder wenn Sie wären besser bedient mit einer expliziten "Veröffentlichen" - option.
InformationsquelleAutor
Wie erwähnt von den anderen Antworten, die Sie benötigen, erstellen Sie eine separate client (Arbeitsplatz) für jede "Instanz" einer Verzeichnisstruktur synchronisiert aus dem depot.
Wenn Sie erzwingen möchten, dass sync nur jene Dateien, die geändert wurden aus dem depot:
Achtung: das überschreibt alle lokal geänderten Dateien (im aktuellen Verzeichnis und in den Unterverzeichnissen).
Wenn Sie stattdessen einige Dateien bearbeitet habe und vergessen habe, Sie zu öffnen für die Bearbeitung der ersten, können Sie dies tun:
öffnen Sie zum Bearbeiten einer Datei, die anderen aus dem depot.
Und so:
öffnen für löschen eine Datei wurde lokal gelöscht.
InformationsquelleAutor
Wenn Sie erstellen eine Inkonsistenz, wo man sich zwangsläufig verliert Spur von dem, was Los ist in Ihrem Arbeitsbereich, die Sie verwenden sollten, die "Vereinbarkeit offline-Arbeit..." - Funktion (P4V).
Diese ausgeführt wird einen Ordner diff und sagen Ihnen, was Optionen, die Sie zum beheben der Inkonsistenzen.
Im Allgemeinen, stellen Sie sicher, dass Sie immer prüfen, Dateien explizit durch perforce (öffnen zum Bearbeiten). Dies fühlt sich seltsam, wenn Sie werden verwendet, um andere Systeme.
Haben Sie jemals finden eine akzeptable Lösung? Ich in etwas ähnliches, wenn Sie versuchen zu automatisieren baut. Ich will nicht zu haben, um Kraft synchron zu jeder Zeit da, dass dauert ~2h.
Sorry, aber ich spreche auch mehr. Meine Letzte Erfahrung mit Ihnen war vor fast 5 Jahren. Es gibt nur eine Zukunft für Sie, die eine ähnlich blackberry.
InformationsquelleAutor
Ich glaube, dass der Befehl, den du suchst, ist p4 sauber.
Aus: http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_clean.html
"- Dateien, die in den Arbeitsbereich, aber fehlt aus dem depot gelöscht werden, aus dem Arbeitsbereich.
Dateien, die in das depot, aber fehlt aus Ihrem Arbeitsbereich. Die version der Dateien, die synchronisiert wurden aus dem depot Hinzugefügt, um Ihren Arbeitsbereich.
Geänderte Dateien in Ihrem Arbeitsbereich, die nicht überprüft wurden, sind wiederhergestellt und auf die Letzte version synchronisiert aus dem depot."
InformationsquelleAutor