2009-10-29 22 views

Odpowiedz

9

Co chcesz zrobić, to zrobić Blame w tym pliku źródłowym i pokaże ci wersje, które zmieniły każdy z linii kodu.

Nie jestem świadomy żadnego polecenia, które byłoby w stanie podać wszystkie poprawki dla danego wiersza kodu ... możesz zrobić tylko jeden dziennik pokazu, a następnie spójrz na każdy z nich. rewizje, które miały miejsce z biegiem czasu.

+0

Czy istnieje również sposób na znalezienie * wszystkich * wersji, które dana linia została zmodyfikowana? Blame da mi tylko ostatnią rewizję. –

+0

Nie, pokazuje tylko, kto zmienił ostatnią linię. Chciał coś, co mógłby wskazać na linię i pokazać, w jakich wersach zmieniła się ta linia (moje uzasadnienie pytania). –

+0

Nie jestem świadomy żadnego takiego polecenia, które byłoby w stanie podać wszystkie poprawki dla danego wiersza kodu ... możesz zrobić tylko dziennik pokazów na jednym pliku, a następnie spójrz na każdą z wersji miało miejsce z biegiem czasu. – mezoid

1

Możesz kliknąć plik prawym przyciskiem myszy na repozytorium i wybrać TortoiseSVN-> Pokaż dziennik, aby uzyskać wersje, których dotyczy ten plik. Na linii po linii, nie ma sposobu, o którym wiem.

2

Wina Mezoid brzmi poprawnie. Na marginesie chciałbym udostępnić technikę, która może okazać się przydatna dla użytkowników svn. (Chodzi o svn, ale używam synonimu "annotate" lub "svn ann", ponieważ "winę" brzmi trochę ostro!)

OK, więc masz linię, która cię interesuje, i ma charakterystyczny napis "distinctiveString". Chcesz przeczytać komunikat zatwierdzenia, gdy linia została po raz pierwszy wprowadzona, ale może być edytowana kilka razy. Więc idź naprzód i to zrobić:

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

Spojrzenie na interfejsie WWW TRAC dla SVN pokazuje, że R2,3,4,5 prostu zmienił wcięcia linii, to nie była rewizja, w którym została wprowadzona linia. Więc następnym użyć flagi -R (lub -R, zrobić svn pomocy ann, aby upewnić się), aby określić wersję jeden mniej niż zmiany znalezionego w poprzednim kroku:

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

spłukać i powtórzyć, aż znajdziesz oryginalny.

Możesz pominąć wyszukiwanie TRAC na każdym kroku, po prostu powtarzając, dopóki nie zobaczysz już linii i przyjmując wynik przedostatniej iteracji.

OK, to trochę pracochłonne, ale jeśli chcesz naprawdę chcesz wiedzieć, kto wprowadził tę linię, wykona to zadanie. Może zaoszczędzić czas, jeśli oryginalny komunikat zatwierdzenia wyjaśnia intencję nieznanego fragmentu kodu, który w przeciwnym razie mógłby zostać usunięty.

+0

Podoba mi się. Będę musiał spróbować tego jakiś czas. – mezoid