2011-03-16 8 views
7

Powiel możliwe:
partial commits with subversionCommit częściowego pliku (Patch) do SVN

Czy jest jakiś sposób mogę popełnić tylko niektóre zmiany w pliku do SVN? Załóżmy, że pracuję nad 2 nowymi funkcjami (lub poprawkami błędów), a oba mają wpływ na ten sam plik. Kończę 1 funkcję i chcę zatwierdzić jedną ze zmian. Zdaję sobie sprawę, że mogę stworzyć oddzielną gałąź dla każdej funkcji, ale to sprawia, że ​​rzeczy komplikują się w inny sposób, ciągle przełączając się pomiędzy kilkoma gałęziami funkcji, nad którymi pracuję w tym samym czasie.

Obecnie, gdy muszę to zrobić, robię kopię pliku, usuwam zmiany, których nie chcę zatwierdzać, a następnie zatwierdzam. Następnie biorę kopię i wracam do rzeczy, które właśnie popełniłem, pozostawiając tylko zmiany, których nie chciałem popełnić. Jest dużo rzeczy do zrobienia tylko po to, by ewentualnie zatwierdzić 1 linię za drobną poprawkę.

Wiem, że niektórzy mogą powiedzieć, że nie powinieneś tego robić, ponieważ cały sens zaangażowania całego pliku polega na tym, że wiesz dokładnie, co popełniasz, i że nie złamie kodu. Ale ponieważ możesz zatwierdzać pojedyncze pliki, ten przypadek nie jest różny, ponieważ wciąż możesz zapomnieć o zatwierdzeniu innych plików powiązanych z plikami, które zmieniasz, i nadal powodować złamanie kodu. Lub podobnie zapominając o dodaniu plików, od których zależy nowa funkcja.

+1

chcę zamknąć moje własne pytanie, ponieważ jest duplikatem (http: // stackoverflow .com/questions/75809/partial-commits-with-subversion). – Kibbee

Odpowiedz

2

Subversion nie ma takiej funkcji i nie sądzę, że planowane jest jej wdrożenie w najbliższej przyszłości. Jeśli jest to opcja, można spróbować innych narzędzi kontroli źródła, które mają go:

+0

Wygląda jak SVN Tortoise obsługuje go jednak ... http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-commit.html#tsvn-dug-commit-restore – moloko

+0

Dodano w Tortoise SVN v1.8 podobno: http://tortoisesvn.net/tsvn_1.8_releasenotes.html#commitparts – moloko