![]() ![]() |
ARCHIV |
|||||||||
![]() ![]() ![]() ![]() ![]() ![]() |
|
1.krok) Zazálohujete si soubor z pracovního adresáře, který chcete označit jako binární. Je to proto, že v průběhu této akce se soubor zdeformuje a bude potřeba ho obnovit. Pokud je i v pracovním adresáři soubor zdeformovaný (to se stane, pokud jste předtím použili příkaz update), potom je potřeba někde mít čistou, nezdeformovanou verzi souboru, kterou použijete v pátém kroku pro obnovení souboru. |
2.krok) Provedete příkaz:
|
3.krok) Provedete příkaz:
|
4.krok) Třetí krok jako vedlejší efekt nahrál do pracovního adresáře zdeformovaný soubor. Proto je potřeba jako další krok nahrát ze zálohy dobrou, nezdeformovanou verzi souboru. |
5.krok) Jako poslední krok nahrajeme do systému CVS
(do jeho databáze, čili repository) správnou verzi z pracovního adresáře.
To se provádí již známým příkazem commit:
|
Někdy se naopak stane, že potřebujeme nějaký soubor vymazat z projektu.
Potom se nám hodí příkaz remove:
cvs remove jmeno_souboru
A opět je potřeba zdůraznit, že příkaz remove nedělá nic jiného, než odregistrovává soubor z projektu. Říká tedy, že soubor přestal být součástí projektu, a systém CVS nebude již dále zaznamenávat změny v tomto souboru. Samozřejmě, že pokud budete chtít vytáhnout ze systému CVS verzi z doby, dokud byl tento soubor součástí projektu, tak ho tam systém CVS přidá, ale ve verzích nahraných do CVS po použití příkazu remove ho přestávají zajímat změny na odregistrovaném souboru.
Příkaz remove nikde nic nemaže, a v pracovním adresáři vám vše
nechá v původním stavu. Ale pro úspěšný průběh příkaz remove bude
potřeba, aby odstraňovaný soubor v pracovním adresáři nebyl. Pokud budete
chtít odstranit soubor, který je přítomný v pracovním adresáři, CVS nic
neprovede, a pouze vám vypíše hlášení v anglickém jazyce. Proto je klasický
postup pro mazání nejdříve smazat soubor z pracovního adresáře, a poté ho
odstranit příkazem remove. Aby se nám nezauzlovaly prsty, pokud
budeme rušit více souborů, nabízí CVS parametr -f. Ten provede navíc
smazání souboru z pracovního adresáře, a udělá tedy oba kroky naráz:
cvs remove -f jmeno_souboru
Toto je v zásadě to nejdůležitější, co potřebujete ke správě projektu pomocí systému CVS, zejména, pokud ho spravujete sami. Další kapitoly se zabývají některými dalšími finesami systému CVS. Toto vám stačí, abyste si řídili svůj projekt sami doma. Další čtení vám umožňuje ze systému CVS získat více, nebo pracovat ve vícečlenném týmu, ale v zásadě pokud jste dočetli sem, jste schopni si řídit svůj vlastní projekt v jednočlenném týmu sami doma.
V této kapitole si něco povíme o zjišťování změn v souborech uložených do systému CVS. Systém CVS nazývá prostor, ve kterém ukládá data jako repository, ve svých manuálech.
Pokud jsme již soubor několikrát změnili, někdy bývá užitečné zjistit, jaké změny jsme provedli. Pokud jste již práci se systémem CVS zkusili, zjistili jste, že vás CVS nutí každou změnu okomentovat. Většina příkazů má možnost zadaní volby -m, za kterou následuje v uvozovkách poznámka. Pokud poznámku nezadáte, CVS spustí editor, aby jste ji dopsali. Mírně ironicky by se dalo napsat, že vás "nevtíravým" způsobem nutí, aby jste ke každé změně dopsali komentář, co jste to vlastně udělali.
Tyto komentáře mají svůj smysl, jsou totiž přístupné všem. Kromě toho CVS při každé změně zaznamenává datum a čas změny, kdo změnu provedl, zvýší automaticky číslo verze, a další údaje. Kromě toho umožňuje tyto údaje doplnit i do textu v souborech, které jsou součástí projektu.
Začneme tedy něčím jednoduchým. Jak zjistit celou historii změn nějakého
souboru? Stačí na to následující příkaz:
cvs log jmeno_souboru
Příkaz log vypisuje všechny možné informace o souboru, který si CVS udržuje. Můžete si tam přečíst i zadané komentáře, kdo změny provedl (tedy ne že by tam bylo přímo jméno, ale objeví se tam přihlašovací jméno toho, kdo spustil cvs commit). Samozřejmostí jsou data, čas, apod. Snad jenom poznámku, příkaz log je možné spustit i bez udání jména souboru, potom vypíše informace o všech souborech, což je pěkně rozsáhlé.
Vzhledem k rozsahu logovacího výpisu i pro jeden soubor se většinou
výstup ještě nějak upravuje. Buď se za příkaz připojí filtr more, který
zajistí, že se text zastaví po každé obrazovce, a neodjede:
cvs log jmeno_souboru | more
Také je možné logovací výpis uložit do souboru:
cvs log jmeno_souboru >
jmeno_souboru_pro_logovaci_vypis
Logovací výpisy můžeme řídit různými volbami. Jak si můžeme snadno
ověřit, jsou logovací výpisy velmi rozsáhlé. Mnohdy potřebujeme pouze
seznam souborů uložených v repository (tedy zaregistrovaných souborů a
adresářů). Toho dosáhneme takto:
cvs log -R
Další volbou je zobrazit pouze změny souborů, které provedl určitý
člověk. Předem je potřeba říci, že CVS ukládá s každou změnou provedenou
pomocí příkazu commit automaticky i informaci, kdo změnu nahrál.
Není to zde ale uloženo jako jméno a příjmení, ale CVS si zjistí, kdo je k
počítači momentálně přihlášený, a zapíše si toto přihlašovací jméno. Pokud
je potřeba zjistit, které všechny změny má na svědomí uživatel s
přihlašovacím jménem sandokan, použijte:
cvs log -wsandokan jmeno_souboru
Jak je vidět z příkladu, použijete volbu -w, za kterou bez mezery
následuje přímo přihlašovací jméno uživatele. Vynecháte-li jméno souboru,
zobrazí se všechny změny v celém projektu.
Pokud Vám vadí, že se vypisují i soubory v podadresářích, pomocí volby -l (malé písmeno L, nikoli číslice 1) zajistíte, že se budou vypisovat pouze soubory v aktuálním adresáři.
Velmi často Vás také zajímají změnu provedené v určitém čase, třeba za
minulý měsíc (aby se vědělo, kdo si zaslouží prémie :-)) ), před dvěma
týdny apod. K tomu je určena volba -d, která má velice bohaté
možnosti. V následujících příkladech jsou některé z nich uvedeny:
cvs log -d "1 week ago"
- vypíše změny provedené dříve, než minulý týden
cvs log -d "yesterday"
- vypíše změny provedené dříve, než včera
cvs log -d "last month"
- vypíše změny provedené dříve, než za poslední
měsíc
cvs log -d "2 hours ago"
- vypíše změny provedené dříve, než před dvěma
hodinami
cvs log -d "1999/12/01"
- vypíše změny provedené do 1.prosince 1999
cvs log -d "1999/12/01 12:43"
- vypíše změny provedené do 1. prosince 1999 ve
12:43
cvs log -d "> 1 week ago"
- vypíše změny provedené později, než před týdnem
cvs log -d ">= 2 hours ago"
- vypíše změny provedené před dvěma hodinami, a nebo
později
cvs log -d "1999/11/01 <= 1999/11/30"
- vypíše změny provedené od 1.listopadu do 30.listopadu
1999
Výše uvedené informace lze kombinovat, takže například, chcete-li vědět,
co všechno změnil uživatel s přihlašovacím jménem abcdefgh za poslední
týden v současném adresáři, použijete:
cvs log -wabcdefgh -d ">= last week" -l
Pokud vyvíjíme nějaký projekt, stane se někdy, že se ptáme, a jakou verzi souboru máš? To se dá zjistit pomocí datumu a času, ale není to ono. Jak tedy zajistit, aby v každém souboru byly napsány potřebné informace, třeba zrovna číslo verze? Nebo další údaje?
Systém CVS toto umožňuje pomocí klíčových slov. Pokud kamkoli do
nějakého textového souboru, který je součástí projektu napíšete třeba:
$Date$
a nahrajete změny příkazem commit, zjistíte, že systém CVS vám do
souboru přidal celé datum a čas poslední změny souboru:
$Date: 2000/01/09 17:58:58 $
Samozřejmě takových údajů je celá řada, a jsou vyjmenovány a popsány v následujícím seznamu:
$Log: cvs_manual.html,v $ Revision 2.11 2000/01/09 17:58:58 ponkrac prosel kontrolou spravnosti syntaxe Revision 1.30 1999/12/31 12:58:15 ponkrac podrobnejsi rozepsani klicovych slov
Asi nejčastěji se používá klíčové slovo $Id$. Rozepíšeme si jeho
výstup podrobněji. Pokud do textu souboru dopíšeme toto slovo, učiníme tak
do komentářů. Například v HTML souboru bude vypadat asi takto:
<HTML>
<!-- $Id$ -->
a tak dále
Pokud provedeme příkaz commit, objeví se rozvinutý test namístě
$Id$:
<HTML>
<!-- $Id: cvs_manual.html,v 2.11 2000/01/09 17:58:58 ponkrac Exp $
-->
a tak dále
Zde vidíte všechny podstatné údaje o souboru přímo v něm. Vidíte, že soubor se jmenuje cvs_manual. V repository si CVS systém za jméno souboru ukládá čárku a písmeno v. Takže v repository je tento soubor uložen jako cvs_manual.html,v. Dále pokračuje číslo verze, v našem případě 1.1. Poté následuje datum a čas na nultém poledníku, přihlašovací jméno toho, kdo jej uložil, a stav verze, kde Exp znamená experimentální verzi, Stab stabilní verzi a Rel verzi určenou k distribuci. Tak jsou všechny informace po ruce přímo v souboru. Podíváte-li se do mnohých kódů například pro Linux, mnohdy tam klíčové slovo $Id$ najdete.
Je jasné, že pokud použijete automatické nahrazování klíčových slov v nějakém souboru, či ve všech, je potřeba klíčová slova dávat do poznámek, aby nenarušily funkci souboru. Například v jazyce C můžete napsat /* $Id$ */, apod. Dále je potřeba dávat pozor, aby se v souboru náhodou nevyskytly řetězce, které CVS pozná jako klíčové slovo (pokud to není váš záměr). Například já v tomto manuálu nemůžu rovnou napsat $Id$, protože by po tomto řetězci CVS okmžitě "skočil", a nahradil jej. Musím využít toho, že znak $ se může v HTML zapsat jako $, což už CVS nechá na pokoji. Pokud bych chtěl to samé zapsat v jazyce C, aniž by mi to CVS nahradil, musel bych psát třeba char mytxt[] = "\x24Id\x24";, aby mi ho CVS nechal na pokoji. Dlužno ovšem napsat, že takové situace se v praxi vyskytují velice, velice zřídka, takže problémy vám to nejspíše dělat nebude. V krajním případě, pokud nelze jinak, je možné nahrazování klíčových slov zakázat. Jak to lze provést, se dozvíte ještě v této kapitole.
Občas se vám nehodí, aby systém CVS automaticky nahrazoval klíčová
slova, a tak máte možnost tento proces řídit. Standardně CVS nahrazuje
klíčová slova ve všech souborech v projektu. CVS umožňuje ke každému
souboru sdělit, jaký režim nahrazování klíčových slov použijete. Tento
režim je možné určit pomocí příkazů add při registraci souboru, a
nebo pomocí příkazu admin ho kdykoli později změnit:
cvs add -krežim jmeno_souboru
nastaví režim nahrazování klíčových slov při registraci
souboru
cvs admin -krežim jmeno_souboru
nastaví režim nahrazování klíčových slov kdykoli
později
U volby -krežim se mohou použít tyto možnosti:
Licence: Tento dokument lze volně šířit pro nekomerční účely, bude-li zachováno jméno autora a copyright. Pro komerční účely pouze s písemným svolením autora.
Nejsou žádné diskuzní příspěvky u dané položky. Příspívat do diskuze mohou pouze registrovaní uživatelé. |
28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
31.7.2023 14:13 /
Linda Graham
iPhone Services
30.11.2022 9:32 /
Kyle McDermott
Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš
Re: zavináč
2.12.2018 23:56 /
František Kučera
Sraz
5.10.2018 17:12 /
Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?