Zobrazují se příspěvky se štítkemNávod. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemNávod. Zobrazit všechny příspěvky

sobota 29. března 2014

Jak na merge SVN repo do GIT repo

Pokud se někdy dostanete do situace, že potřebujete stejný zdrojový kód mergovat mezi SVN a GITem, tak řešení samozřejmě existuje:

# checkout the SVN source
$ svn checkout svn://svnversion/trunk
$ cd /into/svn/checkout

$ git init
$ echo ".svn/" > .gitignore
$ git add .gitignore; git commit -m 'Initial .gitignore'

# Now you have a master branch; create your svn branch
$ git checkout -b svn

# Add *everything* from the SVN checkout
$ git add -A
$ git commit -m 'Initial SVN'

# Now get the GIT developed stuff
$ git checkout master
$ git remote add origin /path/to/git-developed-repository
$ git pull origin master

# Now merge SVN repository to GIT master branch
$ git checkout master
$ git merge svn
# push to GIT origin

# Or merge master branch GIT repository to SVN
$ git checkout svn
$ git merge master
# commit to SVN

Nyní byste měli mít všechny změny ze SVN i v master branchi v GITu a nebo naopak.

Nevýhodou tohoto řešení je, že s sebou nepřenáší historii. Důležité však je, že stejný kód je na obou místech.


Zdroj: stackoverflow.com

úterý 26. listopadu 2013

Nekonečná synchronizace TortoiseGit s remote repository

Při přechodu z TorgoiseGit 1.8.4 na TortoiseGit 1.8.6 jsem pozoroval nepříjemnou věc, kdy mi nikdy nechtěla doběhnout synchronizace s remote repository a vždy se to seklo těsně před koncem. Po troše googlení jsem objevil chybu, kterou to je způsobeno a také workaround.

Čím to je způsobeno?

Na vině je chyba GIT serveru Stash, která je popsána v jejich JIRA ticketu (STASH-3824).
Podobnou chybu má i Gerrit server, ticket jsem ale nedohledal.

Workaround 1:

  • Použití HTTP(S) repository URL místo SSH.

Workaround 2:

  1. Spusťte putty 0.63 pro Windows (kde stažení zde; používám installer).
  2. Klikněte na "Default Settings" v sekci "Saved Sessions", pak klikněte na tlačítko "Load".
  3. Jděte ve stromu na Connection -> SSH -> Bugs.
  4. Nastavte položku "Chokes on PuTTY's SSH-2 'winadj' requests" na volbu "On" (místo "Auto").
  5. Vraťte se zpátky na "Sessions" ve stromu (nejhornější položka v listu).
  6. Klikněte na "Default Settings" v sekci "Saved Sessions" a pak na tlačítko "Save".

Já jsem použil workaround 2 a pak mi opět TortoiseGit začal krásně fungovat.

Zdroje: TortoiseGit ticket #1880, Stash ticket STASH-3824

sobota 23. listopadu 2013

Jak vyřešit "read-only file system" na Ubuntu

Dnes mi na VPS nefungoval žádný web, všechny házely "Internal Server Error". Po nalogování do konzole jsem zjistil, že se nemůžu ani přepnout do jiného adresáře a systém vypisuje "Read-only file system".

Co je příčinout?

Systém přejde do read-only stavu v případě, že dojde k problému konzistence souborového systému.

Co s tím?

Existují asi tak 2 řešení:
  1. Restart VPS
    • Bohužel nepomůže "sudo reboot", vypisuje se hláška o read-only file systému. Je třeba z administračního rozhraní VPS vynutit restart.
    • Během startu VPS došlo k prověření disku a provedení dalších tří samovolných restartů.
  2. Zadání příkazu "sudo fsck -Af -M".
    • Tuto možnost jsem nevyzkoušel, ale dočíst se o ní můžete na askubuntu.com.

Závěrem

Během několikanásobného restartování VPS jsem si už říkal, že budu muset instalovat celou VPS znova. Díky svým instalačním skriptům by mi to ale nezabralo více jak hodinu a dostal bych vše do stejného stavu. Jsem ale rád, že se to vyřešilo bez reinstalace.

sobota 11. srpna 2012

Kopírování souborů mezi Linuxem a Windows via Putty

Občas mám potřebu překopírovat pár souborů mezi operačními systémy Windows a Linux... Hledal jsem snadnout a jednoduchou cestu, až jsem natrefil na článek, ve kterém autor radí, jak na to s použitím utility Putty (resp. PSCP - Putty Secure CoPy).

Takže tady je návod:

  1. Stáhněte si Putty - nejlépe plnou instalačku, případně jen utilitu PSCP.
  2. Nainstalujte si Putty, např. do c:\Program Files (x86)\PuTTY
  3. Nastavte si cestu k domovskému adresáři Putty do systémové proměnné PATH, např.:

    SET PUTTY_HOME=c:\Program Files (x86)\PuTTY
    SET PATH=%PATH%;%PUTTY_HOME%
  4. Spusťte příkazovou řádku, ze které bude následně kopírování probíhat.
  5. Kopírování z Windows do Linux:

    pscp c:\downloads\music.mp3 john@192.168.0.112:/home/john
  6. Kopírování z Linux do Windows:

    pscp john@192.168.0.112:/home/john/music.mp3 c:\

Vše je snadné a naprosto jednoduché. Původní článek v angličtině si můžete přečíst ZDE.