Diferență între revizuiri ale paginii „Migrare la GitHub”
Linia 1: | Linia 1: | ||
În februarie 2014 am migrat de la Subversion la git și GitHub. Aici documentez procesul. | În februarie 2014 am migrat de la Subversion la git și GitHub. Aici documentez procesul. | ||
Linia 122: | Linia 120: | ||
Am încărcat pagini pe m.dexonline.ro:8080 și pe dexonline.ro:8080 ca să evit cache-ul Varnish. | Am încărcat pagini pe m.dexonline.ro:8080 și pe dexonline.ro:8080 ca să evit cache-ul Varnish. | ||
== Migrarea paginilor wiki == | |||
Am migrat, de mână, lista de pagini de la http://trac.dexonline.ro/wiki/TitleIndex (mai puțin cele generate automat de Trac, evident). În general, le-am păstrat numele. | |||
Întrucât exista deja o pagină [[Despărțirea în silabe]], am mutat pagina respectivă de pe Trac în [[Discuție:Despărțirea în silabe]]. Cele două (pagina și discuția) sunt foarte asemănătoare. Ar trebui unificate. | |||
== Lucruri de făcut == | == Lucruri de făcut == |
Versiunea de la data 4 februarie 2014 17:04
În februarie 2014 am migrat de la Subversion la git și GitHub. Aici documentez procesul.
Migrarea de la svn la git, într-un repository local
Vezi https://help.github.com/articles/importing-from-subversion și https://github.com/nirvdrum/svn2git#readme
sudo apt-get install git-core git-svn ruby rubygems sudo gem install svn2git
Am extras toți autorii care au contribuit vreodată:
svn log --quiet http://voronet.francu.com/repos/DEX | grep -E "r[0-9]+ \| .+ \|" | cut -d'|' -f2 | sed 's/^ //' | sort | uniq
Am creat un fișier cu numele și adresele de e-mail (înțeleg că acesta este formatul Git pentru autori).
alex.grigoras = Alex Grigoraș <alex.grigoras@gmail.com> alexm = Alex Morega <alex@grep.ro> alinu = Alin Ungureanu <alyn.cti@gmail.com> cata = Cătălin Frâncu <cata@francu.com> cristian.chilipirea = Cristian Chilipirea <cristian.chilipirea@cti.pub.ro> grigoroiualex = Aleg Grigoroiu <grigoroiualexandru@gmail.com> guitarMan = Horia <mihaitrifu512@yahoo.com> mihai17 = Mihai Trifu <mihaitrifu512@yahoo.com> radu = Radu Borza <raduborza@gmail.com> root = Cătălin Frâncu <cata@francu.com> sonia = Sonia Andriu <sonia@andriu.ro> svn = Cătălin Frâncu <cata@francu.com> vially = Valentin Hăloiu <vially.ichb@gmail.com>
Am ales versiunea 4 pentru svn2git: The svn repo is NOT in standard layout and has no trunk, branches, or tags at the root level of the repo. Instead the root level of the repo is equivalent to the trunk and there are no tags or branches.
svn2git http://voronet.francu.com/repos/DEX --authors authors.txt --rootistrunk --verbose
Încărcarea acestui repository la GitHub
git remote add origin git@github.com:CatalinFrancu/dexonline.git git push origin master
Migrarea tichetelor trac la issues pe GitHub
Am experimentat un pic cu trac2github, dar nu merge bine. Pierde diacriticele și dă niște erori. Pare că apelează API-ul GitHub în mod greșit.
Folosim tratihubis. Am exportat tichetele și comentariile în două fișiere csv:
sqlite3 -header -csv /path/to/trac.db < tratihubis-master/query_comments > comments.csv sqlite3 -header -csv /path/to/trac.db < tratihubis-master/query_tickets.sql > tickets.csv
Am creat fișierul tratihubis.conf care mapează cât de mult se poate din utilizatorii Trac la utilizatori GitHub:
[tratihubis] user = CatalinFrancu password = ... repo = dexonline tickets = /path/to/tickets.csv comments = /path/to/comments.csv users = radu: RaduBorza, radu_borza@yahoo.it: RaduBorza, alex grigoras: alex-grigoras, cristian chilipirea: darkhunterj, grep.ro/openid: mgax, mihaitrifu512: MihaiTrifu, sonia andriu: sandriu, strat.cristian@gmail.com: cgst, sîrbu nicolae-cezar: sarbull, vially: vially, constantin serban-radoi: costash, *: CatalinFrancu
Am testat (dry-run):
python tratihubis.py tratihubis.conf
Am modificat pe alocuri tratihubis.py, căci issue-urile pe GitHub nu conțineau numele corecte.
- am apelat repo.create_issue(title, body, 'CatalinFrancu') cu numele meu hard-coded ca să previn niște erori de API. Presupun că nu poți crea un bug prin API și să-l asignezi altcuiva
- am adăugat un % tracUser lipsă: raise _ConfigError(_OPTION_USERS, u'Trac user "%s" must be mapped to a Github user' % tracUser)
Am rulat „pe bune”:
python tratihubis.py --really tratihubis.con
Migrarea clienților DEX și DEX-mobile de pe dexonline.ro
Am testat întâi pe beta.dexonline.ro, după care pe m.dexonline.ro, după care pe dexonline.ro. Redau doar pașii pentru dexonline.ro (site-ul principal).
Am clonat repository-ul într-un director nou:
cd public_html
git clone https://github.com/CatalinFrancu/dexonline DEX-git
Acum era necesar să copiez toate fișierele din vechiul repository care nu erau sub controlul lui Subversion. Le-am listat cu comanda:
cd DEX
svn status --no-ignore | sort
Apoi am mutat fișiere și directoare folosind modul arhivă pentru păstrarea permisiunilor, de exemplu:
sudo cp -vai log/*log ../DEX-git/log/
Pe măsură ce le copiam, le filtram cu grep -v din ieșirea lui svn status, până când am rămas cu o listă goală.
Apoi am redenumit cele două directoare, păstrând vechiul director intact în DEX-svn:
mv DEX DEX-svn; mv DEX-git DEX
Am încărcat pagini pe m.dexonline.ro:8080 și pe dexonline.ro:8080 ca să evit cache-ul Varnish.
Migrarea paginilor wiki
Am migrat, de mână, lista de pagini de la http://trac.dexonline.ro/wiki/TitleIndex (mai puțin cele generate automat de Trac, evident). În general, le-am păstrat numele.
Întrucât exista deja o pagină Despărțirea în silabe, am mutat pagina respectivă de pe Trac în Discuție:Despărțirea în silabe. Cele două (pagina și discuția) sunt foarte asemănătoare. Ar trebui unificate.
Lucruri de făcut
Găzduiește undeva fișierele atașate și pune link-uri pe GitHub. GitHub permite doar încărcarea imaginilor.
sqlite3 /path/to/trac.db select distinct id from attachment where type = 'ticket' order by id;
Etichetează bugurile: newbie, graphic etc.
Pagini cu probleme la migrare: http://trac.dexonline.ro/wiki/Desp%C4%83r%C8%9Birea_%C3%AEn_silabe este sau nu aceeași cu Despărțirea în silabe?
Link din Informații pentru programatori către lista de tichete newbie (după reetichetarea tichetelor)
Completează secțiunea despre contribuții din Instrucțiuni de instalare.
Regândește pagina principală, care acum trebuie să se adreseze lingviștilor, programatorilor etc.
Redenumește baza de date MySQL din 'lingv' în 'wiki'.
Dă pe blog? S-ar putea să fie de interes prea restrâns pentru asta.