Používal jsem dva způsoby:
- pomocí příkazu hg convert o tom jsem psal tady: http://vondrnotes.blogspot.cz/2012/07/jak-prevest-subversion-repo-do.html
- pomocí HgSubversion o tom budu psát tady
Jak převést Subversion repository do Mercurialu pomocí HgSubversion
-
Instalovat podle http://mercurial.selenic.com/wiki/HgSubversion
- - hg clone http://bitbucket.org/durin42/hgsubversion/ ~/hgsubversion
-
- Do ~/.hgrc dát:
[extensions] hgsubversion = ~/hgsubversion/hgsubversion
-
hg init
(create repository) -
V repositari upravit soubory:
Do .hg/hgrc dát
[paths] default = https://muj-svn-server/moje/cesta/k/svn/repu [auth] bb.prefix = https://muj-svn-server/moje/cesta/k/svn/ bb.username = moje.jmeno bb.password = moje.heslo
Poznámka - Jak se vyhnout heslu v plaintextu:
-
do ~/.hgrc dát:
[extensions] mercurial_keyring=
- a vymazat řádek s heslem (bb.password = moje.heslo)
- Mercurial se pak zeptá na heslo při prvním neúspešném přihlášení se zeptá na nové heslo
-
do ~/.hgrc dát:
-
SSL certifikát k svn (jen pokud je potřeba)
Tohle musí být v 'userhome = ~/.hgrc (~/mercurial.ini)' - kvůli certifikátům pro svn[hostfingerprints] muj-svn-server = mu:j0:fi:ge:r0:pr:in:t0:b7:05:0e:81:93:97:22:67:fe:9a:0a:df
Nebo toto, pokud fingerprint nezabere:[web] cacerts= ; cacerts je tu pro hgsubversion
-
Pak převést svn do mercurialu
hg pull
(možná to třeba v průběhu spadne, ale to nevadí prostě se znova pustí hg pull a ono to bude pokračovat) -
A je to :)
hg update
a hurá do mercurialu!
Poznámky
Možný problém, který muže nastat pouze pokud se vývíjí a commituje do svn pomocí hgsubversion
Dá se to rozbít, že pak nejde udělat pull/push a hlásí to něco jako
Pull errors: abort: unknown revision '327d8c072e94f13489ed1ae2aaa4be66584d00b2'
To se může povést opravit příkazem:
hg svn rebuildmeta