Manchmal verwende ich die Funktion "Offline-Arbeit abgleichen ..." in Perforce's P4V-IDE, um alle Dateien zu synchronisieren, an denen ich gearbeitet habe, während ich vom P4-Depot getrennt war. Es wird ein weiteres Fenster geöffnet, in dem ein 'Folder Diff' ausgeführt wird.
Ich habe Dateien, die ich nie in die Quellcodeverwaltung einchecken möchte (z. B. solche, die sich im bin-Ordner befinden, z. B. DLLs, Code-generierte Ausgabe usw.). Gibt es eine Möglichkeit, diese Dateien / Ordner so herauszufiltern, dass sie möglicherweise nicht als "neu" angezeigt werden? hinzugefügt. Sie neigen dazu, die Liste der Dateien, an denen ich tatsächlich interessiert bin, zu überladen. Verfügt P4 über die Funktion "Datei ignorieren" von Subversion?
version-control
perforce
ignore
Strahl
quelle
quelle
Antworten:
Ab Version 2012.1 unterstützt Perforce die
P4IGNORE
Umgebungsvariable. Ich habe meine Antwort auf diese Frage zum Ignorieren von Verzeichnissen mit einer Erklärung der Funktionsweise aktualisiert . Dann habe ich diese Antwort bemerkt, die jetzt wohl überflüssig ist.Angenommen, Sie haben einen Client mit dem Namen "CLIENT", ein Verzeichnis mit dem Namen "foo" (im Projektstamm) und möchten alle DLL-Dateien in diesem Verzeichnisbaum ignorieren, können Sie der Arbeitsbereichsansicht die folgenden Zeilen hinzufügen, um dies zu erreichen Dies:
Die erste Zeile entfernt sie aus dem Verzeichnis "foo" und die zweite Zeile entfernt sie aus allen Unterverzeichnissen. Wenn Sie nun "Offline-Arbeit abgleichen ...", werden alle DLL-Dateien in die Ordner "Ausgeschlossene Dateien" am unteren Rand der Ordner-Diff-Anzeige verschoben. Sie stehen Ihnen nicht im Weg, können sie jedoch weiterhin anzeigen und bearbeiten, wenn Sie dies wirklich benötigen.
Sie können es auch auf eine andere Weise tun, wodurch Ihr Ordner "Ausgeschlossene Dateien" auf nur einen reduziert wird. Sie können jedoch keine der darin enthaltenen Dateien bearbeiten, da der Pfad beschädigt ist (aber wenn Sie sie nur löschen möchten) von deinem Weg ist es egal).
quelle
Reconcile Offline Work
Dialogfeld nicht. Es funktioniert, wenn Sie es im Inneren öffnen,Advanced Reconcile...
aber dies ist nutzlos, da Sie in 99,9% der Fälle den erweiterten Dialog nicht benötigen oder verwenden möchten.Ja aber.
Perforce Version 2012.1 hat eine Funktion namens p4ignore hinzugefügt von Git inspirierte . Die Perforce-Entwickler haben jedoch ohne Begründung eine Änderung am Verhalten vorgenommen, die die Funktion weniger nützlich macht.
Während Git Regeln aus allen
.gitignore
Dateien übernimmt, weiß Perforce erst, wo er suchen muss, wenn Sie einen Dateinamen in einer Umgebungsvariablen angebenP4IGNORE
. Diese Freiheit ist ein Fluch. Sie können nicht zwei Repositorys hacken, die unterschiedliche Namen für ihre Ignorierdateien verwenden.Auch die Ignorierfunktion von Perforce funktioniert nicht. Sie können es einfach genug für sich selbst einrichten, aber andere profitieren nur, wenn sie sich ausdrücklich dafür entscheiden. Ein Mitwirkender, der dies nicht getan hat, kann versehentlich unerwünschte Dateien festschreiben (z. B. a
bin
Ordner, der von einem Build-Skript erstellt wurde).Die Ignorierfunktion von Git ist großartig, da sie sofort funktioniert. Wenn die
.gitignore
Dateien zum Repository hinzugefügt werden ( jeder tut dies ), werden sie die Box für alle ausarbeiten. Niemand wird versehentlich seinen privaten Schlüssel veröffentlichen.Amüsanterweise wird in den Perforce-Dokumenten '.p4ignore' als Beispiel für eine Ignorierregel angezeigt, die rückwärts ist! Wenn die Regeln nützlich sind, sollten sie als Teil des Repositorys freigegeben werden.
Perforce konnte die Funktion noch verbessern. Wählen Sie beispielsweise eine Konvention für die Dateinamen
p4ignore.txt
, damit die Funktion sofort funktioniert. Löschen Sie dieP4IGNORE
Umgebungsvariable, es ist kontraproduktiv. Bearbeiten Sie die Dokumente, um Entwickler zu ermutigen, nützliche Regeln zu teilen. Lassen Sie Benutzer wie Git persönliche Regeln in eine Datei in ihrem Home-Ordner schreiben .Wenn Sie jemanden bei Perforce kennen, senden Sie ihm bitte diesen Beitrag per E-Mail.
quelle
Dies funktioniert ab Perforce 2013.1. Der neue P4IGNORE-Mechanismus wurde erstmals in Version 2012.1 hinzugefügt, die hier im Perforce-Blog beschrieben wird:
Wie derzeit beschrieben, setzen Sie eine Umgebungsvariable "P4IGNORE" auf einen Dateinamen, der eine Liste der zu ignorierenden Dateien enthält.
Sie können es also überprüfen, um zu sehen, wie es Ihnen gefällt.
quelle
Wenn Sie eine Lösung wünschen, die für alle Arbeitsbereiche gilt, ohne kopiert werden zu müssen, können Sie (oder Ihr Systemadministrator) die Übermittlung dieser Dateitypen mithilfe von Zeilen wie den folgenden in der p4-Schutztabelle ablehnen:
Ich erinnere mich, dass ich das schon einmal gemacht habe, aber ich habe nicht die notwendigen Berechtigungen, um dies hier zu testen. Lesen Sie den Sysadmin-Leitfaden von Perforce und probieren Sie ihn aus
quelle
Perforce Streams erleichtert das Ignorieren von Dateien ab Version 2011.1 erheblich. Gemäß der Dokumentation können Sie bestimmte Erweiterungen oder bestimmte Pfade in Ihrem Verzeichnis ignorieren.
Von
p4 help stream
Dies entspricht im Wesentlichen der Antwort von @ raven, ist jedoch mit Streams einfacher, da es sich mit diesem Stream automatisch auf jeden Arbeitsbereich ausbreitet. Dies gilt auch für alle Streams, die von dem Stream erben, in dem Sie die Ignoriertypen angeben.
Sie können den Stream bearbeiten
p4 stream //stream_depot/stream_name
oder mit der rechten Maustaste auf den Stream in der Stream-Ansicht von p4v klicken.Und wie @svec feststellte, ist die Möglichkeit, Ignorierdateien pro Arbeitsbereich anzugeben, bald verfügbar und befindet sich tatsächlich in der Beta- Version von P4 2012.1.
quelle
Wills Vorschlag,
.p4ignore
nur zu verwenden, scheint mit dem WebSphere Studio (P4WSAD) -Plugin zu funktionieren. Ich habe es gerade auf meiner lokalen Windows-Box versucht und alle Dateien und Verzeichnisse, die ich aufgelistet habe, wurden nicht ignoriert.Ravens Vorschlag, Ihre Client-Spezifikation zu ändern, ist unter Perforce der richtige Weg. Durch die ordnungsgemäße Organisation Ihres Codes / Ihrer Daten / ausführbaren Dateien und der generierten Ausgabedateien wird das Ausschließen von Dateien vom Einchecken erheblich vereinfacht.
Als drakonischerer Ansatz können Sie jederzeit einen Submit-Trigger schreiben, der die Übermittlung von Änderungslisten ablehnt, wenn diese eine bestimmte Datei oder Dateien mit einer bestimmten Erweiterung usw. enthalten.
quelle
HISTORISCHE ANTWORT - nicht mehr korrekt. Zu der Zeit, als dies ursprünglich geschrieben wurde, war es wahr;
Sie können keine Datei schreiben und einchecken, mit der der Server Ignorierregeln erstellt. Allgemeines Glob- oder Regexp-Dateimuster werden zwangsläufig ignoriert.
Andere Antworten haben globale Serverkonfigurationen, die global sind (und nicht pro Ordner). Die anderen Antworten zeigen Dinge, die für Sie möglicherweise funktionieren, wenn Sie eine Zeile in Ihrer Ansicht pro Ordner mal Anzahl der Erweiterungen möchten, die Sie in diesem einzelnen Ordner ignorieren möchten, oder wenn Sie diese Funktion nur in WebSphere Studio-Plugins oder für Server bereitstellen Administratoren, aber nicht für Benutzer verfügbar.
Kurz gesagt, ich finde Perforce in diesem Bereich sehr schwach. Ich weiß zwar zu schätzen, dass diejenigen, die das Eclipse-Plugin verwenden, es verwenden können
.p4ignore
, und ich finde das großartig, aber diejenigen von uns, die dies nicht tun, bleiben im Dunkeln.UPDATE: Siehe akzeptierte Antwort für die neue P4IGNORE-Funktion, die Mitte 2012 hinzugefügt wurde.
quelle
Ich habe festgestellt, dass es am einfachsten ist, Offline-Arbeit mit einem BASH-Skript wie diesem abzustimmen:
Ich habe dies aus diesem Perforce Knowledge Base-Artikel angepasst .
quelle
Ich suche auch nach einer .p4ignore-ähnlichen Lösung (und nicht nach einer, die an eine bestimmte IDE gebunden ist). Bisher habe ich am ehesten p4delta gefunden. Es hört sich so an, als würde es genau das tun, was das Originalplakat verlangte, wenn auch durch eine andere Ebene der Indirektion.
http://p4delta.sourceforge.net
Obwohl dies die richtige Liste von Dateien zu erzeugen scheint, kann ich "p4delta --execute" leider nicht zum Laufen bringen ("Ein eingefrorener String kann nicht geändert werden") und das Projekt wurde im Jahr nicht aktualisiert. Vielleicht haben andere mehr Glück.
quelle
Wenn Sie das Eclipse Perforce-Plugin verwenden, werden in der Plugin-Dokumentation verschiedene Möglichkeiten zum Ignorieren von Dateien aufgeführt.
quelle