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ě SVN Book
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 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
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
svn up
Vyřízené soubory jsou zobrazeny tak, že je předchází písmeno, které představuje stav vyřízení:
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 <QtXml> 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í Kompare a tímto malým skriptem.
Poslední možnost:
svn diff | colordiff | less -R
Jiné užitečné příkazy:
C
) jako vyřešený.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:
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.
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}"