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.
Czy istnieje również sposób na znalezienie * wszystkich * wersji, które dana linia została zmodyfikowana? Blame da mi tylko ostatnią rewizję. –
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). –
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