Subversion: Porovnání verzí

Z GeoWikiCZ
Bez shrnutí editace
Řádek 16: Řádek 16:
* Získání pracovní kopie repozitáře
* Získání pracovní kopie repozitáře
  svn checkout file:///cesta/k/repozitari/repozitar                    # repozitář je na lokálním počítači
  svn checkout file:///cesta/k/repozitari/repozitar                    # repozitář je na lokálním počítači
  svn checkout svn+ssh://server.domena.cz/cesta/k/repozitari/repozitar  # přístup k repozitáři přes svn server a šifrované připojení ssh
  svn checkout svn+ssh://server.domena.cz/cesta/k/repozitari/repozitar  # přístup k repozitáři přes svn server  
                                                                      # a šifrované připojení ssh


==== Základní pracovní cyklus ====
==== Základní pracovní cyklus ====

Verze z 9. 10. 2008, 10:46

Stručný návod pro práci se systémem pro správu verzí Subversion

Domovská stránka projektu SVN.
Literatura: Version Control with Subversion.

Instalace

Základní klient (voláme z příkazové řádky jako "svn") pro přístup a využívání služeb SVN je pro distribuce Linuxu Debian a Ubuntu obsažen v balíčku "subversion".

Základní použití

  • Vytvoření repositáře
svnadmin create cesta/k/repositari/repositar
  • Import dat do repositáře
svn import muj_adresar file:///cesta/k/repozitari/repozitar -m "Import dat"
  • Výpis obsahu repositáře
svn list file:///cesta/k/repozitari/repozitar
  • Získání pracovní kopie repozitáře
svn checkout file:///cesta/k/repozitari/repozitar                     # repozitář je na lokálním počítači
svn checkout svn+ssh://server.domena.cz/cesta/k/repozitari/repozitar  # přístup k repozitáři přes svn server 
                                                                      # a šifrované připojení ssh

Základní pracovní cyklus

  • aktualizace pracovní kopie
svn update
  • změny v pracovní kopii
svn add    soubor  # přidání souboru nebo adresáře - implicitně včetně podadresářů - do pracovní kopie 
svn rm     soubor  # vymazání souboru
svn rmdir  adresar # vymazání adresáře
svn copy   soubor  # kopírování souboru nebo adresáře
svn move   soubor  # přesun souboru nebo adresáře
  • zjištění změn v pracovní kopii
svn status        # parametry -v -u: podrobnější výpis
                  # A - soubor je přidán do pracovní kopie
                  # D - soubor je vymazán z pracovní kopie
                  # M - soubor je změměn
                  # C - soubor je v konfliktu (soubor byl modifikován a současně je v repozitáři novější verze tohoto souboru)
                  # L - soubor je uzamčen (např při nedokončení aktualizace pracovní kopie - spusťte příkaz svn cleanup
svn diff soubor   # výpis změn v obsahu konkrétního souboru
  • zahození provedených změn v pracovní kopii
svn revert soubor
  • řešení konfliktů, přijetí změn z repositáře
svn update
svn resolved soubor
  • publikování změn do repozitáře
svn commit   # -m 'zprava zveřejnění změn'
             # proměnná SVN_EDITOR nebo EDITOR určuje jaký editor bude spuštěn pro editaci zprávy
             # pokud není zadána pomocí parametru -m

Řešení konfliktů

Konfliktům můžeme předcházet používáním příkazu svn status -u. Typy konfliktů:

  • U - soubor neobsahuje lokální změny, ale byl změněn v repozitáři
  • G - lokálně změněný soubor byl změněn také v repositáři, ale změny se nepřekrývají a bylo automaticky provedeno sloučení
  • C - konflikt, který je nutné vyřešit editací (ručně): V tomto případě svn vytvoří soubory
soubor.txt.mine  # midifikovaný soubor pracovní kopie
soubor.txt.r8    # soubor v revizi pracovní kopie
soubor.txt.r9    # soubor v revizi repozitáře (HEAD revision)
soubor.txt       # soubor, kde jsou obě verze, ovšem nesloučené

Historie revizí

svn log        # parametrem -r 8 nebo -r 1:8 udáváme číslo revize
svn cat  -r 8  # vypisuje obsah souboru z revize 8
svn list -r 8  # vypisuje obsah aktualního adresáře takový, jaký byl v revizi 8