====== Používání skladiště Subversion vývojáři/přispěvateli ======
Tyto stránky chtějí provést rychlé shrnutí ovládání souvisejícího se Subversion, se kterým se snad může přispěvatel do projektu QElectroTech setkat. Biblí Subversion zůstává nicméně [[http://svnbook.red-bean.com/en/1.5/svn-book.pdf|SVN Book]]
===== Získání kopie skladiště SVN (check out) =====
===== Získání kopie skladiště SVN =====
Získání kopie skladiště SVN ("Check out") umožňuje vytvoření místní kopie (mluví se o "pracovním adresáři") adresáře, který je přítomen v SVN (obyčejně pro QET: "kmen - trunk" nebo větev 0.3).
Použijte příkazy dole a nahraďte jimi ''identifiant'' svým přístupovým klíčem (přihlášení: "login"). Spojení přecházející SSH, heslo se obecně požaduje 3 krát při každé operaci (svn checkout, commit, up, ...). Podívejte se na [[http://faq.tuxfamily.org/User/Fr#Utilisation_de_SSH_sous_GNU.2FLinux|FAQ TuxFamily]] kvůli automatizaci prokázání totožnosti pomocí klíče SSL.
# Vyzkoušení si kmene
svn co "svn+ssh://identifiant@svn.tuxfamily.org/svnroot/qet/qet/trunk" qelectrotech_trunk
# Vyzkoušení si větve 0.3
svn co "svn+ssh://identifiant@svn.tuxfamily.org/svnroot/qet/qet/branches/0.3" qelectrotech_0.3
===== Zbodl jsem se, udělal jsem nepodepsané získání =====
Vraťte se do svého pracovního adresáře Subversion a použijte následující příkazy:
svn_user=votre_identifiant_ici
find . -type f -name entries -exec sed -i "s,svn://svn.tuxfamily.org,svn+ssh://${svn_user}@svn.tuxfamily.org,g" {} \;
svn up
===== Vyřídit svůj pracovní seznam =====
svn up
Vyřízené soubory jsou zobrazeny tak, že je předchází písmeno, které představuje stav vyřízení:
* A : přidaný soubor
* D : odstraněný soubor
* U : soubor vyřízený bez potíží
* G : soubor upravený ve vašem pracovním adresáři a vyřízený bez střetu
* C : soubor upravený ve vašem pracovním adresáři ale z vyřízení je ve střetu s místními změnami
===== Spravovat změny =====
Je možné listovat změněnými soubory pomocí příkazu: svn status
Zobrazení je totéž jako při svn up.
Soubory lze do verzování přidat pomocí svn add, a pak s nimi zacházet pomocí svn mv, svn cp a svn rm.
Změny je možné ukázat pomocí svn diff; příklad:
svn diff sources/qetproject.h
Index: sources/qetproject.h
===================================================================
--- sources/qetproject.h (révision 449)
+++ sources/qetproject.h (copie de travail)
@@ -21,7 +21,9 @@
#include
class Diagram;
class ElementsCollection;
+class ElementsCategory;
class XmlElementsCollection;
+class MoveElementsHandler;
/**
tato třída představuje jeden projekt QET. Obyčejně zaznamená do jednoho
souboru, jedná se o dokument XML zahrnující nákresy stejně jako
Stejně tak je možné ukázat rozdíly na textovém souboru pomocí [[http://www.caffeinated.me.uk/kompare/|Kompare]] a [[doc:showdiff|tímto malým skriptem]].
Poslední možnost: svn diff | colordiff | less -R
Jiné užitečné příkazy:
* svn export : stejná užitečnost jako co / checkout, ale obdržený výsledek není pracovní adresář Subversion (= nejsou tu podadresáře .svn); dovolí udělat jednoduché vyzískání stromečkovitosti skladiště.
* svn cat : bere jako parametr seznam souborů (tím se rozumí přímo ve skladišti) a vystaví jejich obsah na obvyklém výstupu.
* svn revert : obnoví stav souboru (místní změny jsou ztraceny ve prospěch stavu souboru ve skladišti Subversion)
* svn resolved : vyznačuje soubor ve střetu (stav ''C'') jako vyřešený.
* svn blame : umožňuje dozvědět se, kdo je autorem kterého řádku v seznamu zadaných souborů.
* svn merge : vezme tři argumenty, udělá porovnání rozdílů (diff) mezi dvěma prvními a užije je na třetí. Používá se při pokročilé správě větví.
* svn info : zobrazí informace o současném pracovním adresáři
* svn help : vyvolá nápovědu k příkazu
===== Poslat své úpravy =====
Jednou, když jsou změny hotové a jsou hodny toho, aby se objevily ve skladišti Subversion, je třeba je odevzdat. Před jejich odesláním se doporučuje udělat poslední svn up, abychom se ujistili, že změny mezitím již nebyly provedeny jiným přispěvatelem. Odeslání změn by mělo být doprovázeno zprávou o odeslání; příklad:
svn ci -m "Correction d'un bug qui empechait la fermeture d'un projet ne comportant aucun schema."
Doporučuje se ale provést jednoduchý svn ci, který použije editor zmíněný v proměnné prostředí $EDITOR na úpravu souboru obsahujícího:
* oblast pro zapsání vzkazu o odeslání
* oblast vypisující soubory, které budou odeslány
Toto umožní naposledy provést ověření obsahu odeslání změn. Pokud soubor nebyl změněn ('':q!'' v editoru vim), svn podá možnost opuštění odeslání změn. Jinak je odeslání změn provedeno po zapsání souboru a zavření editoru ('':x'' v editoru vim).
Correction d'un bug qui empechait la fermeture d'un projet ne comportant aucun schema.
--Cette ligne, et les suivantes ci-dessous, seront ignorées--
M sources/diagramview.cpp
M sources/qetproject.h
M sources/qetproject.cpp
Poznámka: z různých důvodů vám děkujeme za to, že se ve zprávě o odeslání vyhnete akcentovaným znakům nebo zvláštním.
===== Upravit zprávu o odeslání =====
Mít možnost upravit zprávu o odeslání znamená být správcem skladiště Subversion => požádat Xaviera.
#!/bin/bash
REV="$1"
REPOS_URL="file:///home/xav/qet"
REPOS_PATH="qet"
TMP_FILE="commit_message"
# recupere le message actuel
svn log -r "${REV}" "${REPOS_URL}" | tail -n +3 | grep -v -- '----' > "${TMP_FILE}"
vim "${TMP_FILE}"
echo -n "Modifier (y/n) ? "
read answer
[ "${answer}" == "n" ] && exit 0
svnadmin setlog "${REPOS_PATH}" -r "${REV}" "${TMP_FILE}"
echo "Message de la revision ${REV} apres modification :"
svn log -r "${REV}" "${REPOS_URL}"