Subversion: Porovnání verzí

Z GeoWikiCZ
m (Nová stránka: {{Výuka}} ==Stručný návod pro práci se systémem pro správu verzí Subversion== ::Domovská stránka projektu [http://subversion.tigris.org/ SVN]. ::Literatura: [http://svnbook...)
 
Řádek 4: Řádek 4:
::Literatura: [http://svnbook.red-bean.com/ Version Control with Subversion].
::Literatura: [http://svnbook.red-bean.com/ Version Control with Subversion].
===Základní použití===
===Základní použití===
* Vytvoření repozitáře
* Vytvoření repositáře
  svnadmin create cesta/k/repozitari/repozitar
  svnadmin create cesta/k/repositari/repositar
* Import dat do repozitáře
* Import dat do repositáře
  svn import muj_adresar file:///cesta/k/repozitari/repozitar -m "Import dat"
  svn import muj_adresar file:///cesta/k/repozitari/repozitar -m "Import dat"
* Výpis obsahu repozitáře
* Výpis obsahu repositáře
  svn list file:///cesta/k/repozitari/repozitar
  svn list file:///cesta/k/repozitari/repozitar
* Získání pracovní kopie repozitáře
* Získání pracovní kopie repozitáře
  svn checkout file:///cesta/k/repozitari/repozitar
  svn checkout file:///cesta/k/repozitari/repozitar
* Základní pracovní cyklus
 
** aktualizace pracovní kopie
==== Základní pracovní cyklus ====
::<pre>svn update</pre>
* aktualizace pracovní kopie
:* změny v pracovní kopii
<pre>svn update</pre>
:: <pre>svn add</pre> (přidání souboru nebo adresáře - implicitně včetně podadresářů - do pracovní kopie)
* změny v pracovní kopii
:: <pre>svn rm</pre> (vymazání souboru)
svn add   soubor  # přidání souboru nebo adresáře - implicitně včetně podadresářů - do pracovní kopie  
:: <pre>svn rmdir</pre> (vymazání adresáře)
svn rm     soubor  # vymazání souboru
:: <pre>svn copy</pre> (kopírování souboru nebo adresáře)
svn rmdir adresar # vymazání adresáře
:: <pre>svn move</pre> (přesun souboru nebo adresáře - ekvivalentní příkazům copy a rm)
svn copy   soubor  # kopírování souboru nebo adresáře
:* zjištění změn v pracovní kopii
svn move   soubor  # přesun souboru nebo adresáře
:: <pre>svn status</pre>
* zjištění změn v pracovní kopii
:::svn status -vu: podrobnější výpis
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 (při přerušení komunikace z repozitářen - spusťte příkaz svn cleanup)
                  # A - soubor je přidán do pracovní kopie
:: <pre>svn diff</pre>
                  # D - soubor je vymazán z pracovní kopie
:::výpis změn v obsahu konkrétního souboru
                  # M - soubor je změměn
:* zahození provedených změn v pracovní kopii
                  # C - soubor je v konfliktu (soubor byl modifikován a současně je v repozitáři novější verze tohoto souboru)
:: <pre>svn revert</pre>
                  # L - soubor je uzamčen (např při nedokončení aktualizace pracovní kopie - spusťte příkaz svn cleanup
:* řešení konfliktů, přijetí změn z repozitáře
svn diff soubor  # výpis změn v obsahu konkrétního souboru
:: <pre>svn update</pre>
* zahození provedených změn v pracovní kopii
:: <pre>svn resolved</pre>
svn revert soubor
:* publikování změn do repozitáře
* řešení konfliktů, přijetí změn z repositáře
:: <pre>svn commit</pre>
svn update
:::proměnná SVN_EDITOR nebo EDITOR určuje jaký editor bude spuštěn pro editaci zprávy
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

Verze z 8. 10. 2008, 19:37

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.

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

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