2016-08-21 2 views
2

Ich möchte mein Mercurial-Repository für Commits mit einer bestimmten Protokollmeldung (z. B. "merge") mit TortoiseHg suchen. Das ist mein Repository ohne jede Suche:TortoiseHg: Keine Vorfahren in Stichwortsuchergebnissen anzeigen

enter image description here

Und wenn ich für „merge“ Suche ich dieses:

enter image description here

wie die Suche So scheint es, das erste Spiel findet und zeigt alle seine Vorfahren an. Filterung von nicht-angepassten Wechsel Sets es eingeschaltet:

enter image description here

Ich möchte nur die passenden Vorfahren sehen. Es funktioniert für einen Kollegen von mir, aber wir konnten nicht finden, was in unseren Umgebungen anders ist. Wir verwenden beide die Version 3.9 unter Windows 10 x64 mit den gleichen Erweiterungen.

Hier ist ein weiteres Beispiel für die Suche "funktioniert!":

enter image description here

Und mit Keyword-spezifisch:

enter image description here

und Filterung nach Autor:

enter image description here

Es ist einfach immer findet das erste Spiel und zeigt alle Vorfahren ...

Antwort

0

ich deinstalliert TortoiseHg, del Alle Dateien von der Maschine (AppData, Konfigurationen, etc.) wurden von Grund auf neu installiert und nun scheint es zu funktionieren. Da ich bereits vor einem Monat versucht habe, neu zu installieren, schätze ich, dass die Reinigung aller Dateien geholfen hat.

0

So scheint es, wie die Suche alle seine Vorfahren das erste Spiel und Anzeigen findet

Nein, Sie hier vermissen . Klartextmuster TEXT in der Suche bedeutet (intern) das Prädikat keyword() in Revset, hg log -T {rev}^M -r keyword('merge') in Ihrem Fall. Aber:

"keyword(string)" 
    Search commit message, user name, and names of changed files for 
    string. The match is case-insensitive. 

Die Suche ist breiter, als Sie erwarten. Nur mit meinem Repo vergleichen, da „merge“ ist nur ein Teil der Log-Nachricht: Nur zwei Verwandten in revset erschienen, weil sie beide Zustand

enter image description here traf

Für „merge“ nur in log matching() können besser, aber wenn Sie wirklich wollen mergesetsmerge() ist auf natürliche Weise (tm) und letzte revset für mergests und Eltern sein kann

merge() or parents(merge()) 
+0

Ich gab nur "merge" als Beispiel für eine Suchzeichenfolge. Ich suche eigentlich nach etwas anderem. Aber ich verstehe immer noch nicht, was du sagst.Warum sollte ich eine Revision mit der Commit-Nachricht "Works!" oder "Drucke zum Debuggen hinzufügen". Ihr Beispiel macht Sinn, weil Sie in beiden Revisionen, die Sie eingekreist haben, das Wort "Zusammenführen" haben. Die meisten meiner Revisionen haben keine "Zusammenführung" in ihnen. – Dina

+0

@Dina - weil "Search Commit Nachricht, Benutzername und Namen der geänderten Dateien ..." - überprüfen Sie diese Revisionen für Kreuzungen. Oder zeigen Sie 'log -v' für diesen Teil von Repo hier. Ich habe Datei "Seeker.txt" in Repo, Stichwort "siehe" kann zu einem unerwarteten Ergebnis führen, wenn ich nur denke, Protokollmeldung –

+0

Es gibt keine "merge" irgendwo anders. Außerdem, wie gesagt, ich suche eigentlich nach einer anderen längeren Phrase, * und * es funktioniert für einen Kollegen im selben Repository! – Dina