Czy zmienić komunikat o zatwierdzeniu SVN wstecz?

85

Chciałbym ponownie napisać dużą liczbę komunikatów SVN o zmianach do innej struktury, np. Przedrostek kategorii. Z:

"foo" now accepts "bar" format for connection string.

chcę

core - database - "foo" now accepts "bar" format for connection string.

Czy istnieje łatwy sposób na zrobienie tego, który nie obejmuje zrzucania całego repozytorium przy użyciu svndumpfilter?

Pracuję z TortoiseSVN po stronie klienta i VisualSVN po stronie serwera. (VisualSVN jest opakowaniem klasycznym svn, z którym mogę rozmawiać również za pomocą wiersza poleceń).

Pekka
źródło

Odpowiedzi:

98

Tak, wiadomości dotyczące zmian można zmienić. Są one implementowane jako właściwości zmian, podobnie jak zwykłe właściwości plików.

W oknie dziennika TortoiseSVN można kliknąć prawym przyciskiem zatwierdzenie i wybrać „Edytuj wiadomość dziennika”.

JesperE
źródło
+1 Dzięki za to. Wykonałem trochę pracy związanej z pewnymi zmianami API, które chciałem wprowadzić osobno do reszty, i napisałem komunikat dziennika, aby to odzwierciedlić ... przed przypadkowym zatwierdzeniem całej partii. „Naprawiłem” to, wprowadzając zmianę białych znaków w komunikacie dziennika, który wyjaśniał resztę! następnym razem będę wiedział, co robić.
Ed Daniel
1
Dałem temu również +1, ale potem nie zadziałało z komunikatem „Repozytorium nie zostało włączone do akceptowania zmian poprawek; poproś administratora o utworzenie podpięcia przed zmianą proponu”. Czy administrator automatycznie będzie wiedział, co należy zrobić?
J.Merrill,
19
Pytasz mnie, czy masz kompetentnego administratora Subversion? :)
JesperE
@ J.Merrill Musisz przejść do hooksfolderu w lokalizacji składowiska i zmienić nazwę pre-revprop-change.tmpl, aby pre-revprop-change.batgo do pracy.
sa_leinad
59

Z pewnością możesz zmienić komunikaty dziennika wstecz, jest to omówione w FAQ . Nie jestem pewien, jak działa interfejs wiersza poleceń dla VisualSVN, ale w przypadku vanilla svn polecenie byłoby

svn propset -r N --revprop svn:log "new log message" URL

Jeśli chcesz to zrobić dla wszystkich wersji bez zrzucania repozytorium i ponownego ładowania, możesz napisać skrypt tego polecenia, aby działał na liście wszystkich wersji. To zajmie trochę czasu, w zależności od rozmiaru repozytorium, ale w zasadzie nie ma powodu, dla którego nie możesz tego zrobić i nie wymaga to zrzutu i ponownego załadowania.

Ponadto vanilla SVN ma polecenie, svnlookktóre jest rodzajem narzędzia administracyjnego, które działa bezpośrednio z plikami repozytorium. To narzędzie nie rozumie adresów URL (musisz mieć dostęp do repozytorium na poziomie systemu plików), ale jest znacznie szybsze. Składnia jest nieco inna, ale za pomocą tego narzędzia możesz modyfikować właściwości w ten sam sposób.

Adam Bellaire
źródło
3
Dzięki @kazark, musiałem zrobić, svn propedit -r N --revprop svn:logaby móc zmienić wiadomość w moim edytorze.
tutuDajuju,
3
Wystarczy dodać uwagę: domyślnie to polecenie nie zadziała, ponieważ zmiany właściwości wersji są domyślnie niedozwolone. Aby na to zezwolić, administrator svn musi utworzyć punkt zaczepienia o nazwie „pre-revprop-change” . Te informacje znajdują się w FAQ, jak wspomniano powyżej.
Matthias
w systemie Windows przed uruchomieniem polecenia należy ustawić zmienną środowiskową „SVN_EDITOR”, „VISUAL” lub „EDITOR”. Na przykład:set SVN_EDITOR=notepad.exe
Enwired
26

Tak, możesz, ale najpierw musisz włączyć to w repozytorium.

W repozytorium, w katalogu hooks, znajduje się plik o nazwie pre-revprop-change.tmpl. Ma kilka stron komentarzy na temat tego, co robi, i jest skonfigurowany tak, aby zezwalać tylko na zmiany właściwości dziennika. Aby to włączyć, zmień nazwę pliku na pre-revprop-change i uczyń go wykonywalnym (zakładam, że jest to subversion hostowana w standardzie POSIX, jeśli używasz systemu Windows do obsługi, ta wiadomość może okazać się przydatna).

Gdy repozytorium na to zezwoli, możesz użyć Tortoise do zmiany komunikatu dziennika dla zatwierdzenia z menu prawego przycisku myszy na zatwierdzeniu lub możesz użyć wiersza poleceń.

Andrew Aylett
źródło
+1 Doskonała informacja sir. Nie pozwoli mi tego zrobić bez haka przed zmianą obrotów. Będę musiał przeportować skrypt bash szablonu do systemu Windows, ale nie powinno to stanowić problemu.
Pekka
Dodałem link do przykładowego skryptu poleceń: svn.haxx.se/users/archive-2006-03/0107.shtml
Andrew Aylett
2

svn propedit -r N --revprop svn:log URL

URLpowyżej jest opcjonalne, jeśli jesteś już w katalogu roboczym. Pojawi się wówczas edytor, aby można było zmienić wiadomość.

Raffi Khatchadourian
źródło
1

Właśnie natknąłem się na ten post z dokładnym problemem, używającTortoise SVN dla klienta i VisualSVN na serwerze Windows.

Jeśli pojawi się komunikat o błędzie „żądanie DAV nie powiodło się” , spójrz na odpowiedź Andrew Ayletta i przejdź do edycji „pre-revprop-change.tmpl” w podkatalogu hooks repozytorium.

Po wykonaniu tej czynności w menu kontekstowym powinno wreszcie zadziałać „edytuj komunikat dziennika”!

Julien B.
źródło