• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • System kontroli wersji

    Przeczytaj także...
    Programista, zwany też potocznie koderem to osoba, która tworzy programy komputerowe w pewnym języku programowania. Termin ten może odnosić się także do specjalisty w jednej dziedzinie programowania. Większość programistów zna co najmniej kilka języków programowania (np. C, C++, Java), lecz specjalizuje się tylko w wybranych z nich. Nazwa głównego języka jest często dodawana do nazwy stanowiska, np. programista C++, aby podkreślić specjalizację.P2P (ang.) Peer-to-Peer – model komunikacji w sieci komputerowej, zapewniający wszystkim hostom te same uprawnienia, w odróżnieniu od architektury klient-serwer.
    svk to rozproszony system kontroli wersji napisany w Perlu. Głównym autorem svk jest Chia-liang Kao. Program jest rozprowadzany na zasadach Licencji Artystycznej.
    Przykład historii kontroli wersji projektu

    System kontroli wersji (ang. version/revision control system) – oprogramowanie służące do śledzenia zmian głównie w kodzie źródłowym oraz pomocy programistom w łączeniu zmian dokonanych w plikach przez wiele osób w różnym czasie.

    Licencja oprogramowania – umowa na korzystanie z utworu jakim jest aplikacja komputerowa, zawierana pomiędzy podmiotem, któremu przysługują majątkowe prawa autorskie do utworu, a osobą, która zamierza z danej aplikacji korzystać.Zestaw zmian (ang. changeset) w systemach kontroli wersji to grupa zmian traktowana jako jedna niepodzielna całość, będąca listą zmian pomiędzy następującymi po sobie wersjami w repozytorium.

    Podział[ | edytuj kod]

    Systemy kontroli wersji dzielone są według:

  • architektury oprogramowania
  • licencji oprogramowania
  • sposobu oceny zmian
  • Architektura[ | edytuj kod]

    Systemy kontroli wersji dzielą się na:

  • lokalne, pozwalające na zapisanie danych jedynie na lokalnym komputerze (np. SCCS oraz RCS)
  • scentralizowane, oparte na architekturze klient-serwer (np. CVS, Subversion)
  • rozproszone, oparte na architekturze P2P (np. BitKeeper, Code Co-op, Git, svk).
  • Pierwsza grupa zapisuje jedynie wersje plików z lokalnego komputera. W rozwiązaniach scentralizowanych istnieje jedno centralne repozytorium, z którym wszyscy użytkownicy systemu synchronizują swoje zmiany. Rozwiązania rozproszone pozwalają na prowadzenie równoprawnych, niezależnych gałęzi, które można dowolnie synchronizować ze sobą nawzajem, np. poprzez e-mail (Code Co-op). Wybór odpowiedniego typu systemu kontroli wersji zależy od potrzeb projektu.

    Git – rozproszony system kontroli wersji. Stworzył go Linus Torvalds jako narzędzie wspomagające rozwój jądra Linux. Git stanowi wolne oprogramowanie i został opublikowany na licencji GNU GPL w wersji 2.Alcatel-Lucent spółka globalna z siedzibą główną w Paryżu, dostawca sprzętu, oprogramowania i usług telekomunikacyjnych. Powstała 1 grudnia 2006 roku z połączenia się firm Alcatel oraz Lucent Technologies.

    Sposób oceny zmian[ | edytuj kod]

    Niektóre systemy kontroli wersji operują na poziomie zmian zawartości plików, podczas gdy inne na zestawach zmian (ang. changeset). Użycie mechanizmu zestawu zmian umożliwia śledzenie zmian, nawet gdy pliki w projekcie zmieniają swoje nazwy i położenie w katalogach.

    Borland (w latach 1998-2001 pod nazwą Inprise) – amerykańskie przedsiębiorstwo dostarczające oprogramowanie i rozwiązania programistyczne do tworzenia aplikacji. Najbardziej znane z produktów Borland to kompilatory i zintegrowane środowiska programistyczne: Turbo Pascal, Delphi, C++ Builder, JBuilder; Kylix oraz C#Builder. W roku 2005 Borland zatrudniał ponad 1300 pracowników na całym świecie. W 2006 roku firma ogłosiła, że postanowiła się skupić na rynku zarządzania życiem produktu oraz projektowaniem oprogramowania i zarządzania projektami, w związku z tym oddział firmy odpowiedzialny za tworzenie i rozwijanie kompilatorów i środowisk oprogramowania został wydzielony jako zależna spółka - CodeGear, która później została sprzedana Embarcadero Technologies. Obecnie firma udostępnia głównie oprogramowanie oraz usługi związane z zarządzaniem cyklem życia aplikacji.Mercurial, nazywany również Hg (jako że w języku angielskim Mercury oznacza rtęć), jest rozproszonym, międzyplatformowym systemem kontroli wersji napisanym głównie w języku programowania Python, aczkolwiek udostępnia funkcję diff (porównanie dwóch wersji) w języku C. Głównymi założeniami Mercuriala były: duża wydajność oraz skalowalność oraz zaawansowane możliwości operacji na gałęziach. Twórcą oraz głównym programistą jest Matt Mackall. Kod źródłowy wydany jest na licencji GNU General Public License.

    Przykłady[ | edytuj kod]

  • Wolnodostępne systemy kontroli wersji:
  • Lokalne:
  • RCS
  • GNU Source Code Control System – wolny odpowiednik SCCS
  • Rozproszone:
  • Bazaar
  • Codeville
  • Darcs
  • Git
  • GNU Arch
  • Mercurial
  • Monotone
  • svk
  • Scentralizowane:
  • CVS
  • Subversion
  • GNU CSSC, klon SCCS
  • JEDI VCS
  • Zamknięte (własnościowe) systemy kontroli wersji:
  • Lokalne:
  • SCCS
  • Scentralizowane:
  • Rational ClearCase firmy IBM
  • StarTeam firmy Borland
  • Visual SourceSafe firmy Microsoft
  • Visual Studio Team Foundation Server firmy Microsoft
  • Rozproszone:
  • BitKeeper firmy BitMover
  • Code Co-op firmy Reliable Software
  • Perforce firmy Perforce Software
  • Sablime firmy Lucent Technologies
  • Jednym z najprostszych systemów kontroli wersji jest RCS (Revision Control System), który operuje na pojedynczych plikach jedynie na lokalnym komputerze. Przykładowo historia zmian pliku o nazwie plik przechowywana jest w pliku plik,v.

    Microsoft Visual Studio – to zintegrowane środowisko programistyczne firmy Microsoft. Jest używane do tworzenia oprogramowania konsolowego oraz z graficznym interfejsem użytkownika, w tym aplikacje Windows Forms, WPF, Web Sites, Web Applications i inne. Aplikacje mogą być pisane na platformy: Microsoft Windows, Windows Phone, Windows CE, .NET Framework, Microsoft Silverlight oraz konsole XBOX.Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.

    Bardziej zaawansowany jest system CVS (Concurrent Versions System), który umożliwia zarządzanie zmianami całego przedsięwzięcia. CVS został zaimplementowany pierwotnie jako nadbudowa nad RCS i wykorzystuje ten sam format plików wersji (pliki z przyrostkiem ,v). CVS umożliwia m.in. współbieżną pracę wielu programistów, tworzenie odgałęzień (ang. branch), rozwiązywanie konfliktów wersji. CVS ma też pewne ograniczenia, np. metadane o plikach nie są wersjonowane, zatwierdzanie zmian wielu plików nie jest atomowe (w przypadku np. awarii połączenia może zostać zatwierdzona tylko część zmian) oraz nie jest obsługiwana zmiana nazwy pliku w ramach repozytorium.

    BitKeeper – rozproszony system kontroli wersji firmy BitMover. Przez 3 lata, do kwietnia 2005 roku, był używany do rozwoju kodu jądra Linuksa.IBM (ang. International Business Machines Corporation; potocznie zwany Big Blue, NYSE: IBM) – jeden z najstarszych koncernów informatycznych.

    Aby wyeliminować wady CVS, powstał system Subversion, zwany również SVN. Subversion jest bardzo podobny w obsłudze do CVS, ale oferuje szereg udogodnień, takich jak atomowe transakcje, wersjonowanie zmian nazwy plików czy efektywne wersjonowanie plików binarnych. Do przechowywania zmian zastosowana została baza danych Berkeley DB.

    Subversion (znany również jako SVN) – system kontroli wersji, który powstał w celu zastąpienia CVS. Z założenia SVN jest w większości przypadków funkcjonalnie zgodny ze swoim poprzednikiem, z kompatybilności zrezygnowano tam, gdzie było to niezbędne do wprowadzenia nowych rozwiązań. SVN jest wolnym i otwartym oprogramowaniem na licencji Apache.Metadane – dane o danych, np. klasyczne katalogi biblioteczne. Za pomocą metadanych opisywane są dokumenty elektroniczne, w szczególności dokumenty dostępne poprzez sieci komputerowe, np. strony WWW dostępne w sieci Internet, jak również dokumenty tworzące nowoczesne biblioteki cyfrowe. Jednym ze standardów metadanych jest Dublin Core Metadata Element Set (DCMES).

    Zobacz też[ | edytuj kod]

  • bugtracker
  • ticket tracking
  • Linki zewnętrzne[ | edytuj kod]

  • Artykuł D. Wheelera o systemach kontroli wersji na licencjach FLOSS




  • Warto wiedzieć że... beta

    Baza danych – zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego specjalizowanego do gromadzenia i przetwarzania tych danych. Program taki (często pakiet programów) nazywany jest „systemem zarządzania bazą danych” (ang. database management system, DBMS).
    Bugtracker – program służący do rejestrowania i zarządzania informacjami o błędach napotkanych w oprogramowaniu. Głównym zadaniem takiego oprogramowania jest:
    Klient-serwer ((ang.) client/server, client-server model) – architektura systemu komputerowego, w szczególności oprogramowania, umożliwiająca podział zadań (ról). Polega to na ustaleniu, że serwer zapewnia usługi dla klientów, zgłaszających do serwera żądania obsługi ((ang.) service request).
    GNU Bazaar (kiedyś Bazaar-NG, komenda bzr) – rozproszony system kontroli wersji napisany w języku Python, sponsorowany przez firmę Canonical Ltd. Bazaar działa z wieloma systemami operacyjnymi, w tym: GNU/Linux, FreeBSD, MS Windows, Mac OS X. Bazaar jest wolnym (od „wolność”) programem z otwartym kodem źródłowym. Został wydany na licencji GNU GPL i jest częścią Projektu GNU.
    Wolne Oprogramowanie (ang. free software) – termin określający oprogramowanie, które może być uruchamiane, kopiowane, rozpowszechniane, analizowane oraz zmieniane i poprawiane przez użytkowników. Oprogramowanie, aby można je było nazwać wolnym, musi spełniać kilka podstawowych założeń, które zostały zawarte w definicji Wolnego Oprogramowania opublikowanej przez Free Software Foundation. Przysługujące użytkownikowi wolności to:.
    Repozytorium (łac. repositorium) – miejsce uporządkowanego przechowywania dokumentów, z których wszystkie przeznaczone są do udostępniania. Magazyn główny, centralny, zaprojektowany jednak w taki sposób, aby dostęp do wszystkich jego zasobów był równie łatwy. Niegdyś szafa na księgi i akta urzędowe. Dziś termin stosowany również w odniesieniu do najrozmaitszych zasobów cyfrowych (baz danych, zbioru pakietów czy kodów źródłowych), np. w Internecie.
    CVS (ang. Concurrent Versions System) – popularny system kontroli wersji udostępniany na licencji GPL. Został stworzony do pracy grupowej nad kodem programów lub innych projektów realizowanych w zapisie elektronicznym. CVS zbudowany jest w architekturze klient-serwer.

    Reklama

    Czas generowania strony: 0.042 sek.