Domanda

Ho una riga di codice che sembra commentata. Fondamentalmente la cosa che voglio trovare è la revisione che ha cambiato questa riga nel codice.

Quindi, è possibile vedere le modifiche nel codice relative a una parola chiave specifica nel registro di TortoiseSvn?

È stato utile?

Soluzione

Quello che vuoi fare è fare un Blame su quel file sorgente e ti mostrerà le revisioni che hanno cambiato ciascuna delle righe di codice.

Non sono a conoscenza di alcun comando che sarebbe in grado di darti tutte le revisioni per una determinata riga di codice ... quello che puoi fare è fare uno show log su un singolo file e quindi guardare ciascuna delle revisioni che ha avuto luogo nel tempo.

Altri suggerimenti

Mezoid's Blame sembra corretto. Per inciso, vorrei condividere una tecnica che gli utenti svn della riga di comando potrebbero trovare utile. (Si tratta di svn biasimo, ma io uso il "sinonimo di" annotazione "o" svn ann ", perché" biasimo "suona un po 'duro!)

OK, quindi hai una linea che ti interessa e ha una stringa distintiva su di essa " distintivoString " ;. Si desidera leggere il messaggio di commit quando la riga è stata introdotta per la prima volta, ma potrebbe essere stato modificato alcune volte. Quindi, vai avanti e fai questo:

# svn ann that.file | grep distinctiveString
2345     yada yada distinctiveString blah blah

Uno sguardo all'interfaccia web di TRAC per svn mostra che r2345 ha semplicemente cambiato il rientro della linea, non è stata la revisione in cui è stata introdotta la linea. Quindi in seguito usi il flag -R (o -r, fai svn help ann per assicurarti) per specificare la revisione una in meno rispetto alla revisione che hai trovato nel passaggio precedente:

# svn ann -R 2344 that.file|grep distinctiveString
2211  yada yada distinctiveString blah blah

Risciacqua e ripeti fino a trovare l'originale.

Puoi omettere la ricerca TRAC ad ogni passaggio semplicemente ripetendo fino a quando non vedi più la linea e prendendo il risultato della penultima iterazione.

OK, è un po 'laborioso, ma se davvero vuoi sapere chi ha introdotto quella linea farà il lavoro. Può farti risparmiare tempo se il messaggio di commit originale spiega l'intento di un codice oscuro che altrimenti sembra che potrebbe essere rimosso.

Puoi fare clic con il pulsante destro del mouse su un file nel tuo repository e selezionare TortoiseSVN- > Show Log per ottenere le revisioni su cui questo file è stato interessato. Su base riga per riga, non c'è modo che io conosca.

Stavo cercando la stessa funzione e finisco qui e ho smesso di cercare oltre.

Ma ecco una tecnica che sto usando e può aiutare chiunque altro:

  1. Identifica la linea di interesse. Ultima chiamata: linea 123.
  2. Usa per Tortoise per " mostra registro " del file.
  3. Considera l'elenco completo nel registro.
  4. Se non hai idea di quando possa essere successo, utilizza la "mentalità di ordinamento rapido", intendo, vai alla revisione in mezzo all'elenco, fai clic con il pulsante destro del mouse e "confronta con copia funzionante".
  5. Se esiste la riga 123 (stesso contenuto, ma probabilmente un numero di riga diverso), ora dovresti considerare solo la metà inferiore dell'elenco, altrimenti dovresti considerare solo la metà superiore dell'elenco. Torna al passaggio 4.

È più facile da fare che da spiegare. Poiché questo testo è destinato agli sviluppatori, capisco che non è necessario aggiungere ulteriori dettagli :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top