Už niekoľko rokov som správcom zdrojového kódu nástroja sendxmpp, ktorým je možné posielať textové správy protokolom Jabber. Aktívny vývoj už trocha ustal, ale občas sa nájde nejaká oprava, ktorú by ľudia radi videli zahrnutú v oficiálnej verzii.
Navyše za tých pár rokov svet pokročil ďalej a CVS už nie je najmodernejším a najrozšírenejším nástrojom na správu verzií zdrojového kódu. Tým už je bezpochyby Git. Navyše je poskytovanie priestoru pre Git repozitár voľne dostupné (pre Open Source projekty), takže to bol jeden z dôvodov, prečo som sa rozhodol projekt sendxmpp premigrovať z CVS na git.
A tuto je návod, ako premigrovať CVS repozitár na Git. Možno sa vám bude niekedy hodiť:
Najprv si doinštalujeme potrebné nástroje. Za predpokladu, že používame Debian alebo Ubuntu, inštaláciu migračného nástroja spravíme jednoducho:
sudo apt-get install cvs git git-cvs cvsps
a prečítame si manuál man git-cvsimport
.
Ak sa nám zdá, že inštalácia nástrojov je v poriadku, pristúpime k migrácii. Vytvoríme si dočasný adresár, v ktorom budeme pracovať:
mkdir -p ~/tmp/t1 cd ~/tmp/t1
Autentifikujeme sa do CVS repositára:
cvs -d :pserver:anonymous@cvs.platon.sk:/home/cvs login Logging in to :pserver:anonymous@cvs.platon.sk:2401/home/cvs CVS password: empty password
A spustíme samotnú migráciu s nasledovnými parametrami:
git cvsimport -v -d :pserver:anonymous@cvs.platon.sk:/home/cvs sendxmpp Initialized empty Git repository in /home/github/tmp/t1/.git/ Running cvsps... cvs_direct initialized to CVSROOT /home/cvs cvs rlog: Logging sendxmpp cvs rlog: Logging sendxmpp/examples Fetching Changes v 1.1 New Changes: 451 bytes Fetching INSTALL v 1.1 New INSTALL: 178 bytes Fetching MANIFEST v 1.1 New MANIFEST: 140 bytes ... Fetching sendxmpp v 1.21 Update sendxmpp: 16836 bytes Tree ID 424d679c468ba36450d935defb8a0183c9cc5dca Parent ID ae9f2b89d321c6cea0b6a14bb853a6035b2730c4 Committed patch 30 (origin +0000 2010-10-03 18:39:16) Commit ID f83f095524bd455748318232c7731fe71dcaf11e Fetching sendxmpp v 1.22 Update sendxmpp: 16864 bytes Tree ID 157eadb74c89d5efe12b2fd087ce8fe77ecdc9f1 Parent ID f83f095524bd455748318232c7731fe71dcaf11e Committed patch 31 (origin +0000 2010-10-03 19:36:35) Commit ID 853f620262fd19d45d7db90a27de928921b75006 DONE; creating master branch
Hotovo! V aktuálnom adresári máme nachystaný git strom, ktorý sme ale ešte neposlali do repositára. Takže vysvetlíme gitu, kam si prajeme skonvertovaný CVS repositár poslať. Pravda, založenie Git repositára som popri importovaní vyklikal na webe. Takže cestu ku Git repositáru poznáme a môžeme tam teda poslať náš CVS projekt:
git remote add origin https://github.com/lhost/sendxmpp.git git push -u origin master Username for 'https://github.com': lhost Password for 'https://lhost@github.com': my_Very_strong_Secure_Password Counting objects: 90, done. Delta compression using up to 2 threads. Compressing objects: 100% (90/90), done. Writing objects: 100% (90/90), 21.13 KiB, done. Total 90 (delta 54), reused 0 (delta 0) To https://github.com/lhost/sendxmpp.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
A teraz sa už možete kochať históriu vášho projektu. 🙂