Quantcast
Channel: Migol's Blog
Viewing all articles
Browse latest Browse all 10

Bazaar – wrażenia z użytkowania

$
0
0

Ostatnio w ramach robienia projektu LabAdmin (takie cudo do zarządzania użytkownikami w laboratorium komputerowym) zacząłem korzystać z systemu kontroli wersji Bazaar. Potrzebowałem go, aby móc pracować offline i jednocześnie czerpać korzyści z wersjonowania.

Pierwsze spostrzeżenie jakie mi się nasunęło: Bazaar jest dość powolny przy niektórych operacjach – szczególnie branchowaniu (tworzeniu odnogi w produkcji). Nie mam zbytniego porównania z innymi systemami kontroli wersji, bo nie użytwałem ich zbyt długo, ale jak dla mnie przydałoby się nieco szybciej to robić. Może być też tak, że korzystając z jakiegoś przełącznika da się to przyśpieszyć, ale też tego nie poszukiwałem.

Jeżeli chodzi o samą pracę to tutaj bardzo przydatny okazuje się TortoiseBzr (dołączony do wersja Bazaara dla Windows). Dzięki niemu nie musimy gimnastykować palców przy selektywnym dodawaniu plików do repozytorium. Także selektywny commit jest dużo wygodniejszy.

Wracając do branchowania to jest to jedna z bardziej użytecznych opcji, zaniedbana nieco w zwykłych (nie rozproszonych) systemach kontroli wersji. Polega to na tym, że tworzymy gałąź jeżeli chcemy coś przygotować, do niej wykonujemy commity a następnie łączymy (mergeujemy) z główną gałęzią. Mimo, że pracowałem sam, praktycznie każda większa zmiana miała u mnie swoją gałąź, dzięki czemu mogłem się zajmować tym co mi odpowiadało w danej chwili. Jednocześnie robiło mi to za taką „listę rzeczy do zrobienia” – każda gałąź odpowiadała za inną rzecz, gałęzie czasem dalej mi się rozgałęziały. Trzecim powodem takiej pracy jest fakt, że mogłem commitować niedziałający (bądź nawet nie kompilujący się) kod i nie miał on wpływu na inne części systemu którymi się zajmowałem.

Jedyną większą wadą takiego systemu jest to że potem trzeba to łączyć ze sobą, co czasami bywa karkołomnym zadaniem. Oczywiście praktycznie nic nie da się zrobić, jeśli z jakąś binarką się rozbiegniemy, ale nawet dla zwykłych plików mogą powstać problemy. Bazaar promuje metodę 3-way diff: mamy 3 pliki: bazę, wersję tego repozytorium i wersję drugiego repozytorium. Naszym zadaniem jest połączenie tych trzech wersji w jedną. Bywa ciężko.

Oczywiście jeśli już rozwiążemy problemy to wszystko toczy się dalej świetnie – Bazaar pozwala nawet na najbardziej karkołomne połączenia między gałęziami. Takie dzikie połączenia przydały mi się gdy na jednym branchu przygotowywałem menu dla aplikacji.

Oddzielną kwestią jest numerowanie wersji. Jest ono zrobione DUŻO lepiej niż w Git. Tutaj numery są nadawane tylko i wyłącznie lokalnie. Teraz jeśli robię merge to brancha wyżej to moim rewizjom nadawany jest prefix w formie numeru rewisji od której się odbranchowalem oraz kolejnego numeru identyfikacyjnego brancha. Ma to jedną wadę – nie do końca wiesz jaki numer rewizji dostaniesz, ale jest to dużo wygodniejsze niż numer w postaci SHA1 zawartości (ble!).

Jak tylko rozwiąże wszystkie sprawy z uczelnią napewno postawię sobie serwer Bazaara (na FTP :D ) żeby móc wygodniej z niego korzystać.


Viewing all articles
Browse latest Browse all 10

Latest Images