čtvrtek 4. září 2014

VisualVM - OQL which write byte[] into file

How to write bytes from heapdump into file in VisualVM?

Well, one possibility is use this OQL:

úterý 15. dubna 2014

čtvrtek 27. března 2014

How to run Tomcat with remote debugger

This works with Tomcat 7 (probably works with other Tomcat versions as well)

On Windows add into catalina.bat

set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

Then run startup.bat

And now you can connect remote debugger on port 8000

úterý 21. ledna 2014

Jak převést Subversion repo do Mercurialu pomocí HgSubversion

Jak převést Subversion repository do Mercurialu?

Používal jsem dva způsoby:
  1. pomocí příkazu hg convert o tom jsem psal tady: http://vondrnotes.blogspot.cz/2012/07/jak-prevest-subversion-repo-do.html
  2. pomocí HgSubversion o tom budu psát tady
Abych to stručně shrnul, tak 'hg convert' je jednoduchý spolehlivý způsob, který by většinou mohl bohatě stačit. (Spolehlivě mi převedl i 80 GB repo všechny branche a vééélmi velkou historii) 'HgSubversion' je trošku složitější a zdá se mi a může s tím být o trochu víc problémů. Na druhou stranu je o něco chytřejší a když se to zadaří, tak je výsledek lepší. (například commity jsou seřazeny správně podle data ve všech branchí, hg convert totiž udělá všechny commity z jedné branche, pak všechny commity z druhé atd.)


Jak převést Subversion repository do Mercurialu pomocí HgSubversion

  1. Instalovat podle http://mercurial.selenic.com/wiki/HgSubversion
    • - hg clone http://bitbucket.org/durin42/hgsubversion/ ~/hgsubversion
    • - Do ~/.hgrc dát:
      [extensions]
      hgsubversion = ~/hgsubversion/hgsubversion
      
  2. hg init (create repository)
  3. 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

  4. 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
    
  5. 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)
  6. 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