Blog (62)
Komentarze (4.3k)
Recenzje (0)

O tym jak efektywnie pracować nad wieloma permutacjami w ramach jednego projektu, Czyli krótki poradnik DVCS, na przykładzie Mercurial. I

@przemo_liO tym jak efektywnie pracować nad wieloma permutacjami w ramach jednego projektu, Czyli krótki poradnik DVCS, na przykładzie Mercurial. I04.09.2011 12:26

Zainspirowany niedawnym wpisem Meszuge (wpis zniknął więc nie podam linka), postanowiłem opisać narzędzie, bez którego nie może się obejść, żadem programista. Ale które może się przydać wszystkim, którzy pracują nad plikami tekstowymi, a chcą łatwego sposobu na "kopie zapasowe".

Systemy kontroli wersji (skrót to VCS - version control system) jako narzędzia rozwiązują konkretne problemy i w tych kategoriach powinniśmy je oceniać. Przyjmijmy na moment zmyślony scenariusz opisujący problem, które VCS próbują rozwiązać:

Problem

Mamy coś do napisania (nie ważne czy chodzi o magisterkę, artykuł w Latexie dla gazety, czy kod źródłowy programu), praca objętościowo będzie w miarę duża (5+ stron A4), oraz na pewno będziemy nad nią pracować iteracyjnie (od ogólnego pomysłu do np. 15tej ostatecznie wersji), poprawiając lub rozbudowując różne partie tekstu, często po paru dniach od napisania oryginału. Więc chcemy mieć możliwość wycofania ostatnio wprowadzonych zmian.

Pierwsze rozwiązanie

Oczywistym wyborem jest edytor tekstu z opcją Cofnij, i to taką bez ograniczeń.

Ale co zrobić gdy chcemy wycofać zmiany z wczorajszego wieczora?

Drugie podejście

W takim razie możemy zdecydować się na kompresowanie i archiwizowanie całego tekstu co dziennie po skończonej pracy.

Dodatkowo uzyskaliśmy zabezpieczenie przed przypadkowym usunięciem pliku (lub gdy projekt składa się z kilku plików) oraz zmian w strukturze projektu.

No dobrze a co gdy padnie nam dysk? W przypadku pracy dla gazetki szkolnej szkód wielkich nie będzie, ale co z pracą magisterską gdy dysk spłoną na 2 miesiące przed terminem obrony?

Do trzech razy sztuka?

W takim razie dochodzi nam archiwizacja na dysk zewnętrzny (płytki CD, pendrivy też będą spełniały tą rolę).

No dobra ale jak poradzić sobie z bałaganem gdy nad projektem pracujemy już 13 dzień. Jak nie pogubić się w tych wszystkich kopiach zapasowych?

Jeszcze raz o tym co chcemy osiągnąć

Bogatsi o te doświadczenia możemy teraz doszlifować nasze wymagania. Potrzebujemy: 1) Mieć możliwość cofania zmian, i to na poziomie poszczególnych zdań, a nie tylko plików. 2) Mieć możliwość przechowywania struktury plików (gdy pracujemy nad kilkoma). 3) Mieć możliwość przechowywania kopi zapasowej całej "historii" projektu na zewnętrznym komputerze. 4) Narzędzie ma być maksymalnie proste oraz szybkie w obsłudze. 5) Narzędzie ma być darmowe (ok, jak kogoś stać to może wybrzydzać). 6) Chcemy mieć możliwość pracowania nad projektem w kilka osób, tak, że by 2 lub więcej osób mogło naraz edytować jeden plik. 7) Chcemy mieć możliwość tworzenia wariantów, które mogły by później być włączone do głównej wersji projektu jeśli konkretny wariant się nam spodoba.

Rozwiązanie

Czas odsłonić nasze wymarzone narzędzie: Rozproszone systemy kontroli wersji. 1) Zmiany są zachowywanie jak różnica pomiędzy ostatnią wersją pliku a jego obecną wersją, gdy tego sobie zażyczymy. Więc mogą one objąć, zarówno zmiany połowy pliku jak i pojedynczego byka ortograficznego. 2) Struktura plików jest dokładnie zachowywana, a gdy jakichś plików nie chcemy przechowywać to też nie musimy. Oznacz to też, że zmiany możemy cofnąć wybiórczo dla poszczególnych plików. Dla wygody zaś zmiany są zapamiętywane dla całego projektu, jedną czynnością. 3) "Historię" projektu możemy umieścić na innym komputerze oraz na bezpłatnym hostingu (co znacznie obniża szansę utraty ważnej pracy). Ale również na drugim komputerze i o ile oba są podłączone do internetu w danej chwili to możemy uaktualnić zmiany wprowadzone na drugim jedną prostą czynnością. (Koniec z szuflowaniem pendrivem w tę i we wte pomiędzy laptopem i stacjonarką). A gdy nie są to i tak zewnętrzny hosting załatwi ten problem. 4) Nie tylko narzędzia są proste ale również istnieją świetne graficzne nakładki, tak, że wszystko można sobie wy-klikać! 5) Pełen wybór na wszystkie platformy. 6) Dzięki 3) na raz mogą pracować różne osoby, nawet na komputerach ustawionych po przeciwnej stronie globu. A dzięki temu, że zmiany są przechowywane jako różnice, narzędzia są sobie wstanie poradzić nawet wtedy gdy kilka zmian odnosi się do jednego pliku, a gdy zmiany odnoszą się do tego samego tekstu, można zdecydować która wersja zostanie zachowana. 7) A gdybyśmy chcieli pracować nad kilkoma wariantami tekstu (np. kilkoma wersjami wstępu?), nic prostszego. Przeskakiwanie z jednej wersji na drugą też nie sprawi problemu. A najlepszy wariant będzie mógł być połączony z roboczą wersją w dowolnym momencie w przyszłości, nawet gdy zmiany w wersji roboczej będą ogromne.

Chcemy więcej!

Brzmi jak PR? Chcecie przykładów? Musicie tylko poczekać do następnego wpisu, w którym przedstawię Mercurial, TortoiseHg, oraz hosting bitbucket, wszystko działające pod Windowsem.

Co można umieścić w VCS?

Nie ma żadnych ograniczeń co do rodzajów plików, którymi VCS może się opiekować. Choć gdy VCS nie zna struktury pliku wtedy próba połączenia kilku wariantów pliku (np. z muzyką) da wynik daleki od oczekiwań. Jak słusznie zauważył Ave5 powstał ciekawy projekt dla GIMPa, który sprawia, że będzie można przechowywać zmiany dla poszczególnych operacji graficznych wykonanych w danym pliku!

Podziękowania dla @Fazid za wyłapanie drobnego błędu z użytymi skrótami. (CVS to nazwa konkretnego programu, VCS całej ich kategorii).

Następna część!

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.