[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
subversion [2008/09/19 12:39]
zeman Warning.
subversion [2009/02/19 14:26]
zeman Přeskládáno, aby si člověk nekladl otázky, které jsou zodpovězené níže.
Line 16: Line 16:
   - nalogujete se na svn.ufal.ms.mff.cuni.cz (= svn.ms.mff.cuni.cz) (ucty byly preneseny z ufal.mff.cuni.cz)   - nalogujete se na svn.ufal.ms.mff.cuni.cz (= svn.ms.mff.cuni.cz) (ucty byly preneseny z ufal.mff.cuni.cz)
   - pro vytvoreni projektu pouzijete skript (kteremu date jeste jmeno projektu):<code>/home/howto/create_new_project.sh <jmeno_projektu></code>   - pro vytvoreni projektu pouzijete skript (kteremu date jeste jmeno projektu):<code>/home/howto/create_new_project.sh <jmeno_projektu></code>
-  - pak se rozhodnete kterymi cestami budete s projektem pracovat - nejlepsi je asi nakonfigurovat vsechny (viz. nize) - tedy svn, webovy pristup do svn a Trac (take webovy). Vsude jsou prednastaveny nejake zakladni ucty, ale nejlepsi je tyto veci upravit podle vlastnich potreb. Napriklad nemusite chtit, aby ufal/maly... mel rw prava ve vasem projektu, jak tomu defaultne je!+  - pak se rozhodnete kterymi cestami budete s projektem pracovat - nejlepsi je asi nakonfigurovat vsechny (viz. nize) - tedy svn, webovy pristup do svn a Trac (take webovy). Vsude jsou prednastaveny nejake zakladni ucty, ale nejlepsi je tyto veci upravit podle vlastnich potreb. Napriklad nemusite chtit, aby ufal/maly... mel rw prava ve vasem projektu, jak tomu defaultne je! Podrobnosti jsou uvedené níže. Autentikační soubory, které jsou uložené přímo u vašeho repozitáře ve složce ''conf'', jsou určené pro přístup protokolem ''svn'', zatímco soubory uložené na centrálních místech ''/home/svn'' jsou určené pro přístup protokolem ''https''.
  
 ==== Konfigurace webového rozhraní SVN (preferováno) ==== ==== Konfigurace webového rozhraní SVN (preferováno) ====
Line 32: Line 32:
 O přidávání uživatelů a hesel viz níže. O přidávání uživatelů a hesel viz níže.
  
-==== Konfigurace protokolu SVN ====+===== Přidávání vlastních uživatelů pro webové přístupy (SVN i Trac) ===== 
 + 
 +Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/home/svn/users/passwords'' (na coz prava mate) pomoci: 
 + 
 +    htpasswd -bs /home/svn/users/passwords <uzivatelske_jmeno> <heslo> 
 +nebo 
 +    htpasswd -s /home/svn/users/passwords <uzivatelske_jmeno> 
 +    # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu 
 + 
 +==== Konfigurace protokolu SVN (raději nepoužívat, nekryptovaný přenos) ====
  
 Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru ''svn...'', tj. např.: Toto rozhraní je užíváno SVN klienty, kteří dostanou repository udanou ve tvaru ''svn...'', tj. např.:
Line 41: Line 50:
     vim /home/svn/repos/$PROJEKT/conf/passwd  # vytvořit uživatele     vim /home/svn/repos/$PROJEKT/conf/passwd  # vytvořit uživatele
     vim /home/svn/repos/$PROJEKT/conf/authz   # nastavit jim práva     vim /home/svn/repos/$PROJEKT/conf/authz   # nastavit jim práva
- 
  
 Vzory nastaveni pristupu jsou zde: ''/home/svn/repos/default/conf'' Vzory nastaveni pristupu jsou zde: ''/home/svn/repos/default/conf''
Line 49: Line 57:
 ==== Konfigurace přístupu k systému Trac ==== ==== Konfigurace přístupu k systému Trac ====
  
-Trac - pouziva take overovani vuci:+Trac poskytuje webové rozhraní k repozitáři a dalším službám kolem správy projektu. Používá tutéž evidenci uživatelů a hesel jako webový (''https'') přístup k svn, tedy: 
     AuthUserFile /home/svn/users/passwords     AuthUserFile /home/svn/users/passwords
  
-Trac ma navic vlastni system prav. Trac vas rozpozna podle loginu, se kterym jste se prihlasili pri http autentizaci, ktera je pri pristupu vynucena. Pokud v danem projektu nejste zavedeni, tak se k nemu dostanete nejakymi default pravy.+Při přístupu k webovému rozhraní Trac vyžaduje http autentizaci (zde tedy zadáte jméno a heslokteré máte zavedené v souboru ''/home/svn/users/passwords''). Systém práv (na rozdíl od autentizace) má Trac vlastní a můžete ho upravovat přes webové rozhraní nebo příkazem ''trac-admin''. Pokud v daném projektu nejste zavedeni, dostanete se k němu nějakými výchozími právy.
  
 Takto spustíte konfigurační skript pro Trac vašeho projektu: Takto spustíte konfigurační skript pro Trac vašeho projektu:
     trac-admin /home/trac/$PROJEKT     trac-admin /home/trac/$PROJEKT
  
 +=== Časté problémy ===
  
-==== Přidávání vlastních uživatelů pro webové přístupy (SVN i Trac) ====+== V tracu chybí tlačítko Browse Source ==
  
-Vlastni uzivatele pro webove pristupy pridate do centralniho souboru webovych hesel v ''/home/svn/users/passwords'' (na coz prava mate) pomoci:+Ověřte, že souboru ''/home/trac/PROJEKT/conf/trac.ini'' máte nastavenu proměnnou ''repository_dir'' na ''/home/svn/repos/PROJEKT''.
  
-    htpasswd -bs /home/svn/users/passwords <uzivatelske_jmeno> <heslo> +== V prohlížení kódu se neukazuje Unicode ==
-nebo +
-    htpasswd -s /home/svn/users/passwords <uzivatelske_jmeno> +
-    # na heslo budete dotázáni, heslo se nezobrazí ani na terminálu+
  
 +Ověřte, že v souboru ''/home/trac/PROJEKT/conf/trac.ini'' máte nastavenu proměnnou ''default_charset'' na ''utf-8''. **Default je chybný, iso-8859-15.**
  
 ===== Lokální Subversion ===== ===== Lokální Subversion =====
Line 117: Line 125:
  
 Pokud jste si jisti, že pro tento projekt nebudete nikdy potřebovat větve ani otagované verze, můžete pravděpodobně vynechat vytváření podsložek ''branches'' a ''tags'' a celý projekt posunout o patro výš. To jsem ale nezkoušel. Pokud jste si jisti, že pro tento projekt nebudete nikdy potřebovat větve ani otagované verze, můžete pravděpodobně vynechat vytváření podsložek ''branches'' a ''tags'' a celý projekt posunout o patro výš. To jsem ale nezkoušel.
 +
 +
 +
 +
 +===== Přechod z lokálního repozitáře na serverový =====
 +
 +Nepamatujete si, kde vlastně leží repozitář vašeho projektu? Nacházíte-li se ve své pracovní kopii projektu, příkazem ''svn info'' to zjistíte:
 +
 +<code>10:58 zen:/export/home/zeman/projekty/interset> svn info
 +Path: .
 +URL: file:///net/work/public/SVN/interset/trunk
 +Repository Root: file:///net/work/public/SVN/interset
 +Repository UUID: 9edd2012-306b-417f-90a6-873db92f1308
 +Revision: 7
 +Node Kind: directory
 +Schedule: normal
 +Last Changed Author: zeman
 +Last Changed Rev: 7
 +Last Changed Date: 2009-02-19 10:58:20 +0100 (Thu, 19 Feb 2009)</code>
 +
 +Vzhledem k tomu, že URL ve výše uvedeném hlášení začíná <nowiki>"file://",</nowiki> jde o lokální repozitář. Nyní je tedy potřeba založit prázdný serverový repozitář podle postupu uvedeného výše.
 +
 +<code>ssh svn.ms.mff.cuni.cz
 +/home/howto/create_new_project.sh interset
 +cd /home/svn/repos/interset/conf
 +vi authz
 +vi passwd</code>
 +
 +Poznámka: systém přidělování práv je složitý a nezdokumentovaný. Ještě existuje centrální přehled uživatelů a jejich hesel pro všechny repozitáře na serveru SVN. Leží v ''/home/svn/users/passwords''. Hesla jsou zde zašifrovaná a nejsem si teď jist, jakým způsobem se nastavují. Snad nějaký příkaz ''svnpasswd''? Nebo ''htpasswd''? Pak také existuje centrální evidence práv uživatelů v souboru ''/home/svn/permissions/svnauthz.conf''. V ní lze nastavovat jednak výchozí práva, jednak práva pro jednotlivé projekty. Není mi ale jasné, kdo dostane přednost, když jsou pro konkrétní projekt nastavena práva jak tady, tak přímo u daného projektu v ''/home/svn/repos/PROJEKT/conf''.
  
 ===== Přechod z CVS pod SVN ===== ===== Přechod z CVS pod SVN =====
Line 392: Line 429:
   ~/projects/project   ~/projects/project
 </code> </code>
 +
 +
 +
  
  
Line 409: Line 449:
 ''svn update $FILE -r $REVISION'' ''svn update $FILE -r $REVISION''
  
-Warning: If you update the whole project (''svn update .'' in the root of the working copy) this way, svn will behave as if the revisions after the one you rolled back to did not exist. For instance, it will not show you the renewed files as changed when you call ''svn status''. If you call ''svn log'', it will show only revisions up to the one you rolled back to. If you call ''svn commit'' without making additional changes, nothing will happen. However, ''svn diff -r HEAD:BASE'' **will** show the differences between your current (rolled-back) version and the most recent one in the repository.+Warning: If you update the whole project (''svn update .'' in the root of the working copy) this way, svn will behave as if the revisions after the one you rolled back to did not exist. For instance, it will not show you the renewed files as changed when you call ''svn status''. If you call ''svn log'', it will show only revisions up to the one you rolled back to. If you call ''svn commit'' without making additional changes, nothing will happen. However, ''svn diff -r HEAD:BASE'' **will** show the differences between your current (rolled-back) version and the most recent one in the repository. So how do we force svn to store the restored old revision as the newest one in the repository? 
 + 
 +The following chapters from the SVN book have some answers: 
 +  * http://svnbook.red-bean.com/nightly/en/svn.tour.history.html#svn.tour.history.snapshots 
 +  * http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.resurrect 
 +  * http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.undo 
 + 
 +The following code should undo the changes between the revisions 302 and 303 (note the minus sign before 303, meaning negative change) while keeping the other changes between 303 and HEAD. 
 + 
 +<code>svn merge -c -303 https://svn.ms.mff.cuni.cz/svn/$REPOSITORY/$PROJECT/trunk 
 +# alternatively: svn merge -r 303:302 https://svn.ms.mff.cuni.cz/svn/$REPOSITORY/$PROJECT/trunk 
 +svn status 
 +svn diff 
 +svn commit -m "Undoing change committed in r303."</code>
  
 ===== Setting Up an Archive ===== ===== Setting Up an Archive =====
Line 463: Line 516:
 * ''chmod path/.svn/entries u-w'' * ''chmod path/.svn/entries u-w''
 * pray * pray
 +
 +
  
 ===== Further Reading ===== ===== Further Reading =====
  
-All of the information in this tutorial comes directly from the online [http://svnbook.red-bean.com/ Subversion book].  It is not necessary to read the entire book to get a good idea of how subversion works.  In general, if you only have a limited period of time in which to get acquainted, you will get the most mileage out of the following parts of the book:+All of the information in this tutorial comes directly from the online [[http://svnbook.red-bean.com/|Subversion book]].  It is not necessary to read the entire book to get a good idea of how subversion works.  In general, if you only have a limited period of time in which to get acquainted, you will get the most mileage out of the following parts of the book:
  
-* [http://svnbook.red-bean.com/nightly/en/svn.basic.html Chapter 2: Basic Concepts].  This is an intro to version control concepts; if you are familiar with the basic ideas, you can probably skip this chapter.  Covers concepts such as repositories, working copies, and copy-modify-merge version control. +  Nečíslovaný seznam [[http://svnbook.red-bean.com/nightly/en/svn.basic.html|Chapter 2: Basic Concepts]].  This is an intro to version control concepts; if you are familiar with the basic ideas, you can probably skip this chapter.  Covers concepts such as repositories, working copies, and copy-modify-merge version control. 
-* [http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html Section 3.5: Basic Work Cycle].  Covers 90% of what you will need to know about using subversion, in about fifteen minutes.  If you don't read anything else, read this section, and you'll be able to get started very quickly. +  [[http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html|Section 3.5: Basic Work Cycle]].  Covers 90% of what you will need to know about using subversion, in about fifteen minutes.  If you don't read anything else, read this section, and you'll be able to get started very quickly. 
-* [http://svnbook.red-bean.com/nightly/en/svn.tour.html Chapter 3: Guided Tour].  Includes the above (Section 3.5) as well as some additional details.  This is 95% of what you need to know. +  [[http://svnbook.red-bean.com/nightly/en/svn.tour.html|Chapter 3: Guided Tour]].  Includes the above (Section 3.5) as well as some additional details.  This is 95% of what you need to know. 
-* [http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html Chapter 4: Branching and Merging]. This is the other 5%.  If you are working on merging changes into the main branch of code, look here. +  [[http://svnbook.red-bean.com/nightly/en/svn.branchmerge.html|Chapter 4: Branching and Merging]]. This is the other 5%.  If you are working on merging changes into the main branch of code, look here. 
-* [http://svnbook.red-bean.com/nightly/en/svn.ref.html Chapter 9: Subversion Complete Reference].  Compact documentation on all of the command-line tools and their options.  This isn't something you need to read front-to-back, but rather, where you should look if you can't remember a particular command-line option.+  [[http://svnbook.red-bean.com/nightly/en/svn.ref.html|Chapter 9: Subversion Complete Reference]].  Compact documentation on all of the command-line tools and their options.  This isn't something you need to read front-to-back, but rather, where you should look if you can't remember a particular command-line option.
  
 Most likely, this is all you will need to look at to do most of your work.  Most of this material comes from Section 3.5. Most likely, this is all you will need to look at to do most of your work.  Most of this material comes from Section 3.5.
  

[ Back to the navigation ] [ Back to the content ]