Používanie SVN repozitárov prostredníctvom Gitu 🔨
Git používam dlhšiu dobu a celkom som si na neho zvykol. Na aktuálnom projekte však musím pracovať s SVN repozitárom hostovaným u klienta, ktorý je dostupný len po pripojení na VPN klienta. Nechcel som skončiť ako niektorí kolegovia, ktorí kvôli tomu commitujú len 1x denne (po pripojení na VPN na konci dňa) s viditeľne nepostačujúcou granularitou a tak som hľadal riešenie.
Riešením je použitie SVN repozitára prostredníctvom Gitu a je prekvapivo jednoduché. Celá myšlienka je naklonovať si SVN repozitár do lokálneho Git repozitára, commitovať do tohto lokálneho Git repozitára a z času na čas to zosynchronizovať so vzdialeným SVN repozitárom.
Založenie lokálneho Git repozitára viazaného na vzdialený SVN repozitár je jednoduché
git svn clone svn-repo-urlna synchronizáciu so vzdialeným SVN repozitárom je možné použiť rebase, ktorý stiahne všetky zmeny zo SVN a na nich aplikuje vaše lokálne nepushnuté commity
git svn rebaserovnako jednoduchý je potom samotný push do SVN
git svn dcommitJedinou nevýhodou tohto riešenia je, že všetky commity budú mať následne v SVN dátum a čas zodpovedajúci dátumu a času príkazu dcommit. Podľa môjho názoru to však nie je až taký problém a pozitíva tohto riešenia výrazne prevyšujú.