GNU/Linux >> Znalost Linux >  >> Linux

Úvod do systému správy verzí

Pokud jste programátor nebo vývojář a pracujete na softwarových aplikacích nebo na jakékoli webové stránce, určitě budete potřebovat nějaký verzovací systém pro sledování změn. Systém kontroly verzí se také označuje jako SCM (S zdroj C ode Management) nástroje nebo RCS (R evision C ovládejte S ystem).

Kontrola verzí je metoda nebo kategorie softwarových nástrojů, které pomáhají sledovat změny v kódu, takže pokud se něco pokazí, můžeme porovnávat různé verze kódu a snadno se vrátit k předchozím verzím. Je to velmi užitečné, když více vývojářů nepřetržitě pracuje nebo mění zdrojový kód.

Výhody systému správy verzí

Pomocí VCS mohou programátoři zkontrolovat historii projektu a zjistit následující podrobnosti:

  • Jaké změny byly provedeny v kódu?
  • Kdo provedl změny v kódu?
  • Kdy byly provedeny změny v kódu?
  • Proč byly nutné změny?

Zde je jednoduchá grafická ilustrace, která vám poskytne představu o tom, jak VCS skutečně funguje.

Na obrázku výše je první řádek se světle modrými kuličkami hlavní větev, která je hlavní větví zdrojového kódu. Tedy v0.1 a v0.2 jsou více verzí vytvořených tak, aby pořídily určitý druh snímku celého zdrojového kódu. Vytvořili jsme několik větví z hlavní větve, jako je release, development a hotfix větev podle požadavku. Na stejném projektu může pracovat více vývojářů vytvořením různých větví a na konci je sloučit do hlavní větve.

Typy VCS

Existují dva typy VCS, konkrétně:

  1. Centralizovaný systém správy verzí (CVCS),
  2. Distribuovaný systém správy verzí (DVCS).

Nejprve se podíváme na rychlý pohled na centralizovaný systém správy verzí.

Centralizovaný systém správy verzí

Centralizovaný systém správy verzí pracuje na vztahu klient-server. Server bude mít všechny informace, které jsou
převedena na klienta. Dá se říci, že jde o jakési sdílené úložiště, které poskytuje vývojářům nejnovější kód. Vývojáři tedy budou pokaždé pracovat na hlavní kopii. Je to tak jednoduché, že musíte stáhnout nejnovější kopii kódu, pracovat na ní (potvrdit změny) a poté kód vrátit zpět do úložiště.

Hlavní nevýhodou centralizovaného VCS je to, že se jedná o jediný bod selhání. Pokud dojde k výpadku centrálního serveru, nemůžete jej použít. Pokud provádíte vzdálené odevzdání, bude to také chvíli trvat. K provedení jakýchkoli změn budete potřebovat připojení k internetu.

Příklady:

  • Otevřený zdroj -> Systém souběžných verzí (CVS), Subversion (SVN).
  • Proprietární -> TeamCity, Vault, IBM Configuration Management Version Control (CMVC).

Distribuovaný systém správy verzí

Distribuovaný systém správy verzí má centralizované úložiště a všichni vývojáři mají místní kopii úložiště.
Vývojáři mohou na své místní kopii pracovat současně. K práci s kódem nevyžadují připojení k internetu. Mohou dělat vše v kódu kromě push a pull. Pokud dojde k výpadku centrálního serveru, nebude to mít žádný dopad kvůli místnímu úložišti.

Příklady:

  • Otevřený zdroj – Git, Mercurial, Bazaar.
  • Proprietární - Visual Studio Team Services, Plastic SCM.

Rozdíl mezi architekturou SVN (Centralized VCS) a GIT (Distributed VCS)

Následující obrázek vysvětluje rozdíl mezi CVCS a DVCS.

Z výše uvedeného obrázku snadno poznáme, že v SVN (Centralized VCS) máme pouze centrální úložiště, ale v GIT (Distributed VCS) máme centrální úložiště i lokální úložiště.

Doufám, že máte základní představu o VCS a jejích typech. V následujících dnech zveřejníme další průvodce související s VCS. Zůstaňte naladěni!

Související čtení:

  • Co je Git a jak nainstalovat Git v Linuxu

O autorovi:

Dhruv Tiwari je DevOps Engineer, který miluje automatizaci věcí, práci s Linuxem ve velkém a sní o dni, kdy budou systémy dostatečně chytré, aby se nikdy nemusely přihlašovat k linuxovému boxu. Cesta CI/CD od zdrojového kódu přes nasazení kódu až po produkci.


Linux
  1. Jak zkontrolovat verzi OS a Linuxu

  2. Úvod do Linux Access Control Lists (ACL)

  3. Přežití bezpečnostního auditu s podnikovým Linuxem

  1. Jak zkontrolovat verzi jádra v Linuxu

  2. Linux – kde stáhnout zdrojový kód jádra Linuxu konkrétní verze?

  3. správný způsob kódování/vložení čísla verze do kódu programu

  1. Stručný úvod do rolí Ansible pro správu systému Linux

  2. Proč následující příkaz zabíjí systém?

  3. Kontrola verzí pro /etc pod *bsd?