Ricerca in un repository

0

Sono molto nuovo nella gestione dei controlli di origine e una cosa mi lascia perplesso: è possibile cercare nell'intero repository una stringa? Per esempio sto monitorando un file, che ha 100 commit e mi piacerebbe vedere tutte le versioni del file che contengono "xyz" all'interno.

È possibile? Sto usando vari client GUI e nessuno di loro ha questo ..? Sì, possono cercare tra i messaggi di commit ma voglio trovare una versione anche quando il messaggio di commit non contiene la stringa.

Per dirla in modo diverso, quale client della GUI ha questa caratteristica? Non mi interessa quale SCM usa - git, hg, bazaar, tutto va bene.

    
posta Another Programmer 24.07.2012 - 20:15
fonte

4 risposte

1

In git, questa è una delle funzionalità principali, chiamata pickaxe:

git log -Stext
git log -Gregexp

Questo cercherà revisioni che aggiungono o rimuovono il testo corrispondente ovunque. Ovviamente puoi combinarlo con filtri di percorso e intervalli di revisione e con qualsiasi altra opzione.

    
risposta data 25.07.2012 - 10:43
fonte
1

Molto rozzamente, potresti

git log -p -- path/to/file

Quindi cerca lì (usando '/ xyz') e trova i commit che stai cercando. Probabilmente c'è un modo migliore, ma è una soluzione rapida e sporca che non ci vuole molto a pensare.

Aggiornamento: SourceTree di Atlassian ti consente di cercare tra repository mercuriali e git in base al messaggio di commit o ai cambiamenti di file . Penso che questo probabilmente faccia esattamente quello che vuoi. L'interfaccia utente per SourceTree è piuttosto complessa e io non ne sono un grande fan, ma quando apri il tuo repository, puoi fare clic sulla linguetta della lente di ingrandimento nella parte in alto a sinistra della finestra, quindi selezionare Cerca "Cambia file" nel menu a discesa a destra della casella di ricerca. Spero che questo aiuti.

    
risposta data 24.07.2012 - 20:24
fonte
1

Il mio controllo di versione preferito è Mercurial. Ci sono molte opzioni disponibili per la ricerca tramite un'interfaccia grafica, tuttavia questi sono i metodi che ho utilizzato maggiormente.

In un terminale, puoi hg serve . Quindi, passa a un browser per più di un'interfaccia GUI. L'indirizzo localhost: 8000 è l'URL di default per vedere un repository che stai servendo.

In alternativa, puoi utilizzare un servizio di terze parti come kilnhg.com . Hanno un'ottima interfaccia che si integra perfettamente con il loro software di tracciamento bug / funzionalità, fogbugz.com .

Infine, ti potrebbe piacere TortoiseHg . È un'applicazione locale che fornisce una GUI per i repository.

    
risposta data 24.07.2012 - 20:49
fonte
0

C'è hg grep che lo fa (vedi hg help grep ), anche se non so se è esposto in nessuna GUI.

    
risposta data 02.08.2012 - 09:43
fonte

Leggi altre domande sui tag