2008-09-25 7 views
60

Gelegentlich möchte ich den Text der Änderungslistenbeschreibungen in Perforce durchsuchen. Es scheint keine Möglichkeit zu geben, dies in P4V zu tun. Ich kann es tun, indem Sie die Ausgabe des Befehls Änderungen in eine Datei umleiten ...Wie suchen Sie den Text der Änderungslistenbeschreibungen in Perforce?

p4 changes -l > p4changes.txt 

... (der Schalter -l sagt er den vollständigen Text der Änderungsliste Beschreibungen Dump) und dann die Datei suchen , aber das ist ziemlich umständlich. Hat jemand einen besseren Weg gefunden?

+0

Die wirkliche Lösung wäre für p4d, einen vollständigen Textindex für die Beschreibungen der Änderungslisten (und die Quelldateien selbst ...) zu haben. Irgendwie komisch, das es noch nicht ins Produkt geschafft hat. – Jonesome

Antwort

55

Wenn der übermittelte Änderungslistenbereich den Fokus hat, können Sie mit STRG + F eine willkürliche Textsuche durchführen, die Beschreibungen der Änderungslisten enthält.

Die einzige Einschränkung besteht darin, dass nur die vom Server abgerufenen Änderungslisten durchsucht werden. Daher müssen Sie möglicherweise die abgerufene Nummer aktualisieren. Dies geschieht über die Einstellung "Anzahl der Änderungslisten, Jobs, Verzweigungszuordnungen oder Labels, die abgerufen werden sollen", die Sie über Bearbeiten-> Einstellungen-> Serverdaten finden.

+0

Schön. Versucht dies, und es springt, um jede passende Änderungsliste auszuwählen. Wirklich praktisch. – Epu

+0

Das hat mir wirklich geholfen. Danke vielmals! –

+1

Ich wünschte, ich könnte noch einmal upvote. Ich habe diese Antwort heute wieder vergessen und gefunden, aber ich habe gesehen, dass ich sie bereits aufgewertet habe. – CoderDennis

17

Ich verwende p4sql und führen Sie eine Abfrage auf der Datenbank "Änderungen". Hier ist die perforce database schema

Die Abfrage so etwas wie diese (nicht getestet) sieht

select change from changes where description like '%text%' and p4options = 'longdesc' 

edit: hinzugefügt, um die p4options zurückzukehren mehr als 31 Zeichen in der Beschreibung.

+0

Das hat nicht funktioniert. Aus irgendeinem Grund verhält sich "like" wie "=". Angenommen, die Beschreibung lautet "foo bar". wie 'foo' scheitert, aber wie 'foo bar' gelingt. Noch wichtiger ist, dass sie nicht den gesamten Beschreibungstext verfügbar machen, sondern nur die ersten 30 Zeichen. – raven

+0

@raven - Die% Zeichen sind wichtig für die SQL und sollten die Abfrage funktionieren lassen. Ich denke auch nicht, dass du in der Beschreibung richtig bist - du solltest in der Lage sein, alles zu erreichen. Können Sie Ihre Anfrage posten? –

+0

@Greg Whitfield: Du hast recht, ich habe die% -Zeichen nicht benutzt. Die Abfragen funktionieren, aber nicht sehr nützlich. Ich habe überprüft, dass nur die ersten 31 Zeichen der Beschreibung abgefragt und angezeigt werden. – raven

1

Mit p4sql ist wirklich die einzige Möglichkeit, effektiv zu tun, was Sie wollen. Mir ist kein anderer Weg bekannt. Der Vorteil besteht natürlich darin, dass Sie die Auswahlanweisungen verwenden können, um den Bereich der Änderungslistenwerte zu begrenzen (über Datum, Benutzer usw.). Ihre Methode funktioniert, wird aber sehr schnell umständlich, wenn Sie weitere Änderungslisten generieren. Sie können den Geltungsbereich des Befehls changes einschränken, aber Sie erhalten nicht die Flexibilität von p4sql.

0

Wenn Sie noch Ihre Befehlszeilen lieben, können Sie einen kleinen Perl-Skript schreiben, die:

  • den Rekord Separator $/zu Doppeln Newline ändert „\ n \ n“ so filtert die Eingabe in vollständige Aufzeichnungen der ztagged p4-Ausgabe.
  • Scans der '/^... desc/..//' Teil mit regulären Ausdrücken aus den Argumenten.

Verwendung wäre so etwas wie 'p4 -ztag ändert -l | yourperlfilter.pl searchterm1 searchterm2 '

wenn das ok funktioniert, könnten Sie integrate it into the p4win tools menu.

1

Eddie auf Spiele veröffentlicht seine Perforce Changelist Search 0.1 an http://www.eddiescholtz.com/blog/archives/130

Aber ich mag mein Lieblingstexteditor mit der einfachen Verwendung: p4 Änderungen -s eingereichten // Prog/stuff/main/... > temp.txt

+0

Version 0.2 ist auch. Der Code ist auf Google-Code gehostet: http://code.google.com/p/p4search/ – idbrii

17

p4 changes -L | grep -B 3 searchstring

-B 3 Mittel zeigen 3 Zeilen vor dem String angepasst, sollte ausreichen, um die Änderung id mit 2 line Kommentare zu zeigen, aber man kann es bei Bedarf ändern.

6

Hier ist eine Powershell-Version von Pauls "Grep" -Antwort. Wieder sucht er nach der angegebenen Zeichenfolge innerhalb der Änderungsbeschreibung und gibt die 3 Zeilen, bevor es, die Änderung ID beinhalten:

p4 changes -L | select-string "search string" -Context (3,0) 
3

Warum in eine Datei umleiten, wenn Sie die Ausgabe durch less und less verwenden Rohr kann ' s suchen?

p4 changes -l | less 

Und dann drücken / für einen Suchbegriff zu veranlassen. Danach springt n zum nächsten Spiel, und Shift + n springt zum vorherigen.

Eine Implementierung von less für Windows ist als Teil von UnxUtils verfügbar.

+0

Dies ist wahrscheinlich die benutzerfreundlichste Option, vorausgesetzt, Sie haben bereits weniger. Ich hatte es bereits mit msys2 installiert, so dass es einfach war, hochzuziehen. – leetNightshade

Verwandte Themen