2009-03-27 14 views
9

Chciałbym użyć formatyzatora Eclipse do naprawienia źle napisanego kodu, ale istnieje ogromny minus zabicia wszystkich metadanych w repozytorium o tym, kto jest odpowiedzialny za co. Wszelkie przemyślenia na temat sposobów obejścia tego problemu? Być może jest to całkowicie niemożliwe ...cleanup stylu, który nie deptać svn winy?

Odpowiedz

7

Można powiedzieć winę ignorować whitespace zmiany:

svn blame -x -w file/path 

Oczywiście, że działa tylko jeśli Twój styl poprawka nie zmienia się więcej niż whitespaces.

+0

To wygląda świetnie, ale nie działa dla mnie. Jaka jest magia? Z jakiego klienta i platformy korzystasz obecnie? – atikat

+0

Tortoise svn ignoruje domyślne białe znaki (jest to pole wyboru, aby to zmienić). – fschmitt

+0

Jeśli chcesz, aby również ignorował zmiany w nowych liniach (CRLF vs. LF), użyj 'svn blame -x -w -x --ignore-eol-style'. Zobacz "svn help win" i [to pytanie] (https://stackoverflow.com/questions/7449503/how-can-i-ignore-eol-changes-and-all-white-space-in-svn). –

1

Historia wciąż istnieje, po prostu trzeba spojrzeć na winy przed zmianą oczyszczania.

Jest to jeden dobry powód, aby mieć standard stylu. Zmiany wcięcia mogą powodować wiele konfliktów scalających, itp. "Słabo stylizowany" na jeden jest dobrze napisany do drugiego.

+0

Niestety, istnieje duża baza źle napisanego kodu, aby rozpocząć. Myślę, że jednym z problemów jest to, że adnotacje z zaćmieniem pokazują tylko ostatnią zmianę. A ludzie używają ich całkiem sporo. – Jacob

0

Podczas ponownego formatowania kodu zwykle naprawiam wcięcie. Jest zbyt wiele przypadków, w których automatyczny formater rujnuje starannie sformatowaną sekcję.

0

Innym rozwiązaniem byłoby dodanie haka przed zatwierdzeniem, który porównuje zatwierdzony plik z jego sformatowaną wersją. Jeśli nie ma różnicy, zatwierdzenie jest akceptowane.

W przeciwnym razie prosty komunikat "Kod nie sformatowany: zatwierdzono odrzucony" poinformowałby programistów o stylizowaniu zmodyfikowanych plików przed zatwierdzeniem.

W połączeniu z odpowiedzią Stefana, nadal możesz używać winy za pomocą opcji -w, a ponadto nie zastępujesz nazw programistów.

Jedną wadą jest to, że nie można nadać stylu całemu repozytorium to jedno przejście. Pliki będą stylizowane w miarę ich modyfikacji. Często używane pliki będą szybko stylizowane, podczas gdy niektóre z nich mogą nigdy nie zostać zaktualizowane.