Mercurial ========= - Mercurial_ és un `sistema de control de versions`_ `distribuït`_. - Al `lloc web de mercurial`_ hi trobareu la documentació. Recomanem especialment la guia `Learning Mercurial in Workflows`_. .. _config-hg: Fitxer de configuració ---------------------- Per treballar amb mercurial cal disposar del fitxer de configuració :file:`.hgrc` en el directori de l'usuari (*home directory*). En aquest fitxer és imprescindible definir l'adreça de correu electrònic de l'usuari dels dipòsits mercurial locals i és important definir L'algorisme que emprarà l'ordre :command:`hg merge`. L'algorisme de fusió (*merge*) que recomanem és el ``internal:merge``. Aquest algorisme, en cas de conflicte, modifica el fitxer marcant clarament les dues versions a la part en conflicte. A continuació trobareu un exemple de fitxer de configuració :file:`.hgrc` en el que es configura l'usuari i l'algorisme de fusió. :: [ui] username = Mr. Johnson merge = internal:merge El gestor de dipòsits kalithea ============================== - `kalithea`_ és un gestor de dipòsits `mercurial`_. És una `aplicació web`_ que permet crear i compartir dipòsits mercurial entre els seus usuaris. - A l'assignatura de Jocs tenim el nostre `gestor kalithea propi`_. Com obtenir un compte d'usuari? ------------------------------- Per tal d'obtenir un compte d'usuari del gestor kalithea de l'assignatura cal fer el següent: #. Visiteu la `pàgina de registre `_ i ompliu el formulari. #. Espereu que l'administrador activi el vostre compte. Com crear un dipòsit? --------------------- #. Un cop tingueu el compte actiu, `inicieu una sessió`_ #. Trieu el grup de dipòsits corresponent al quadrimestre actual. Ho podeu fer des de la `pàgina d'inici de Kallithea `_, o bé fent clic a l'opció :menuselection:`Repositories` del menú. #. Un cop situats en el grup de dipòsits del quadrimestre actual, creeu el dipòsit prement el botó :guilabel:`+ Add Repository` que trobareu a la part superior dreta. #. Ompliu el formulari i deseu-lo: - Trieu un nom i una descripció pel dipòsit. - Trieu el grup de dipòsits corresponent al quadrimestre actual. - A la resta d'opcions hi podeu deixar els valors per omissió. Però comproveu que el tipus de dipòsit és :menuselection:`hg`. #. Llegiu les instruccions per treballar amb el dipòsit que acabeu de crear. Com compartir un dipòsit amb altres usuaris? -------------------------------------------- #. Trieu el dipòsit que voleu compartir. #. Feu clic a l'opció :menuselection:`Options --> Settings` del menú del dipòsit. #. Trieu l'opció :menuselection:`Permissions` del menú de l'esquerra. #. Feu clic al botó :guilabel:`+ Add new`, cerqueu l'usuari i trieu els permisos que voleu donar-li. .. warning:: Aneu amb compte amb els permisos de l'usuari `Default` que és qualsevol persona que visiti el gestor de dipòsits. Per exemple, si li doneu permís d'administració, qualsevol persona podrà esborrar el vostre dipòsit sense ni tant sols autenticar-se. Com treballar amb mercurial i kalithea? --------------------------------------- - Usarem el dipòsit mercurial de kalithea per compartir els canvis amb altres usuaris. - El primer cop que vulgueu treballar amb un dipòsit mercurial de kalithea cal que en feu una còpia idèntica (clon) en el vostre ordinador: #. Visiteu la pàgina de resum del dipòsit, `El-joc-del-profe `_ per exemple. #. Copieu la *clone url*, http://jocs.cs.upc.edu:5000/El-joc-del-profe en aquest exemple. #. Aneu al directori de treball del vostre ordinador i executeu l'ordre :command:`hg clone`. Per exemple: .. code:: sh cd directori_de_treball hg clone http://jocs.cs.upc.edu:5000/El-joc-del-profe #. A partir d'aquest moment disposareu d'una còpia idèntica del dipòsit. A la `guia d'ús de mercurial`_ trobareu com treballar-hi. En l'exemple anterior la còpia estarà al directori :file:`El-joc-del-profe`. Com treballar (localment) amb Mercurial --------------------------------------- Per a conèixer tots els detalls, accediu a la `guia d'ús de mercurial`_. Resum de les comandes més usuals ................................ - :command:`hg status`: conèixer els canvis respecte a l'última versió (quins fitxers s'han modificat, afegit o esborrat). - :command:`hg diff`. Per conèixer en detall les diferències respecte a la versió anterior. - :command:`hg add`. Per incloure nous fitxers a la versió actual. Si els volem incloure tots, podem utilitzar l'ordre :command:`hg add *`. - :command:`hg rm`. Per eliminar fitxers de la versió actual. - Cada cop que volem fixar una versió, cal usar l'ordre :command:`hg commit -m "*descripció*"`. El comenatri de la descripció serveix per a indicar quins canvis hem introduït en la versió. - Per tal de compartir els vostres canvis a kalithea haureu d'executar l'ordre :command:`hg push`. Habitualment, va precedida d'una ordre :command:`hg commit`. - Per tal d'actualitzar el vostre dipòsit local amb els canvis que altres hagin pujat a kalithea haureu d'executar l'ordre :command:`hg pull`. Habitualment, va seguida de l'ordre :command:`hg update`. - :command:`hg update`. Actualitzar la versió local respecte a la que s'ha recuperat d'un altre dipòsit (de kalithea). Pot ser que en realitzar-la indiqui que heu de resoldre conflictes. - :command:`hg resolve`. Marcar el conflicte d'un fitxer com a resolt. - :command:`hg merge`. Unir dues versions locals, un cop s'han resolt el conflictes. .. _kalithea: https://kallithea-scm.org/ .. _mercurial: https://ca.wikipedia.org/wiki/Mercurial .. _inicieu una sessió: .. _gestor kalithea propi: http://jocs.lsi.upc.edu:5000/ .. _Learning Mercurial in Workflows: .. _guia d'ús de mercurial: https://www.mercurial-scm.org/guide .. _sistema de control de versions: https://en.wikipedia.org/wiki/Revision_control .. _distribuït: https://en.wikipedia.org/wiki/Distributed_revision_control .. _lloc web de mercurial: https://www.mercurial-scm.org/ .. _aplicació web: https://ca.wikipedia.org/wiki/Aplicaci%C3%B3_web