Diferență între revizuiri ale paginii „Migrare la GitHub”

De la dexonline wiki
Sari la navigare Sari la căutare
 
(Nu s-au afișat 16 versiuni intermediare efectuate de același utilizator)
Linia 1: Linia 1:
= Migrare la GitHub =
Î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 21: Linia 19:


<pre>
<pre>
alex.grigoras = Alex Grigoraș <alex.grigoras@gmail.com>
cata = Cătălin Frâncu <xxx@yyy.zzz>
alexm = Alex Morega <alex@grep.ro>
radu = Radu Borza <xxx@yyy.zzz>
alinu = Alin Ungureanu <alyn.cti@gmail.com>
root = Cătălin Frâncu <xxx@yyy.zzz>
cata = Cătălin Frâncu <cata@francu.com>
svn = Cătălin Frâncu <xxx@yyy.zzz>
cristian.chilipirea = Cristian Chilipirea <cristian.chilipirea@cti.pub.ro>
... alți autori ...
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>
</pre>
</pre>


Linia 69: Linia 59:
tickets = /path/to/tickets.csv
tickets = /path/to/tickets.csv
comments = /path/to/comments.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
users = radu: RaduBorza, ... alți autori ..., *: CatalinFrancu
</pre>
</pre>


Linia 89: Linia 79:
</pre>
</pre>


== Lucruri de făcut ==
Notă: tichetele 1-178 sunt numerotate identic pe Trac și pe GitHub. Tichetele 179, 180 și 181 lipsesc pe Trac (erau deschise de un spammer și le-am șters la nivel jos, din sqlite). Tichetele 182-... din Trac corespund tichetelor 179-... de pe GitHub (așadar numerele de ordine pe GitHub sunt cu 3 mai mici).
 
== 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:
 
<syntaxhighlight lang="bash">
cd public_html
git clone https://github.com/CatalinFrancu/dexonline DEX-git
</syntaxhighlight>
 
Acum era necesar să copiez toate fișierele din vechiul repository care nu erau sub controlul lui Subversion. Le-am listat cu comanda:
 
<syntaxhighlight lang="bash">
cd DEX
svn status --no-ignore | sort
</syntaxhighlight>
 
Apoi am mutat fișiere și directoare folosind modul arhivă pentru păstrarea permisiunilor, de exemplu:
 
<syntaxhighlight lang="bash">
sudo cp -vai log/*log ../DEX-git/log/
</syntaxhighlight>
 
Pe măsură ce le copiam, le filtram cu <tt>grep -v</tt> din ieșirea lui <tt>svn status</tt>, până când am rămas cu o listă goală.
 
Apoi am redenumit cele două directoare, păstrând vechiul director intact în <tt>DEX-svn</tt>:
 
<syntaxhighlight lang="bash">
mv DEX DEX-svn; mv DEX-git DEX
</syntaxhighlight>
 
Am încărcat pagini pe m.dexonline.ro:8080 și pe dexonline.ro:8080 ca să evit cache-ul Varnish.
 
== Migrarea paginilor wiki ==


Convertește beta.dexonline.ro
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.


Convertește m.dexonline.ro
Î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.


Convertește dexonline.ro
== Migrarea fișierelor atașate tichetelor ==


GitHub acceptă doar fișiere de tip imagine. Pe acelea le-am încărcat la fiecare ''issue'' separat.


Pune o legătură de la GitHub la instrucțiunile de instalare.
Pentru restul fișierelor, politica lui GitHub este să-ți găsești singur găzduire, apoi să pui legături către ele. Le-am încărcat pe toate aici, la [[Fișiere atașate în Trac]]. MediaWiki pare să pună legături roșii, cu intermitență, dar le puteți consulta și la [[Special:Listă fișiere]].


Anunță toate părțile interesate de schimbare.
Apoi am pus legături către ele din fiecare ''issue'' GitHub.


Găzduiește undeva fișierele atașate și de pus link-uri pe GitHub. GitHub permite doar încărcarea imaginilor.
Pentru a găsi toate tichetele Trac care aveau fișiere atașate, am folosit comanda:


<pre>
<pre>
Linia 109: Linia 136:
</pre>
</pre>


Etichetează bugurile: newbie, graphic etc.
== Etichetarea tichetelor (hehe) ==
 
Am creat etichete pe GitHub: https://github.com/CatalinFrancu/dexonline/issues . Am urmărit următoarele categorii:


Pagini cu probleme la migrare:
* cât durează repararea (< 10 ore, 10-50 ore, > 50 ore)
http://trac.dexonline.ro/wiki/Desp%C4%83r%C8%9Birea_%C3%AEn_silabe este sau nu aceeași cu [[Despărțirea în silabe]]?
* componenta (backend, frontend, mobile, brainstorming, jocuri etc.); pot fi suprapuneri
* altele: newbie (tichete care pot fi rezolvate de nou-veniți), grafică etc.


Link din [[Informații pentru programatori]] către lista de tichete newbie (după reetichetarea tichetelor)
Am păstrat etichetele newbie din Trac. Am etichetat cam jumătate din tichete, cele mai noi, cu toate etichetele corecte. În rest, componentele s-au pierdut. Voi încerca, dar nu promit, să trec și prin tichetele vechi.
 
== Refacerea paginii principale ==
 
Am refăcut pagina principală de pe acest wiki pentru a ne adresa lingviștilor, programatorilor etc.
 
== Redenumește baza de date ==
 
Am redenumit baza de date MySQL din ''lingv'' în ''wiki''.
 
* Modifică, în LocalSettings.php, numele bazei de date folosite.
* Exportă baza de date cu mysqldump
* Creează o bază de date nouă (<tt>create database wiki charset utf8</tt>)
* Importă dump-ul în această bază de date nouă
* Șterge baza de date veche.
 
== Lucruri de făcut ==


Schimbă legătura către Update4Instructions (protocolul de sincronizare cu clienții)
Completează secțiunea despre contribuții din [[Instrucțiuni de instalare]].


Schimbă legătura către formatarea definițiilor din [[Protocol de exportare a datelor]].
Dă pe blog? S-ar putea să fie de interes prea restrâns pentru asta.

Versiunea curentă din 2 august 2018 12:02

Î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).

cata = Cătălin Frâncu <xxx@yyy.zzz>
radu = Radu Borza <xxx@yyy.zzz>
root = Cătălin Frâncu <xxx@yyy.zzz>
svn = Cătălin Frâncu <xxx@yyy.zzz>
... alți autori ...

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, ... alți autori ..., *: 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

Notă: tichetele 1-178 sunt numerotate identic pe Trac și pe GitHub. Tichetele 179, 180 și 181 lipsesc pe Trac (erau deschise de un spammer și le-am șters la nivel jos, din sqlite). Tichetele 182-... din Trac corespund tichetelor 179-... de pe GitHub (așadar numerele de ordine pe GitHub sunt cu 3 mai mici).

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.

Migrarea fișierelor atașate tichetelor

GitHub acceptă doar fișiere de tip imagine. Pe acelea le-am încărcat la fiecare issue separat.

Pentru restul fișierelor, politica lui GitHub este să-ți găsești singur găzduire, apoi să pui legături către ele. Le-am încărcat pe toate aici, la Fișiere atașate în Trac. MediaWiki pare să pună legături roșii, cu intermitență, dar le puteți consulta și la Special:Listă fișiere.

Apoi am pus legături către ele din fiecare issue GitHub.

Pentru a găsi toate tichetele Trac care aveau fișiere atașate, am folosit comanda:

sqlite3 /path/to/trac.db
select distinct id from attachment where type = 'ticket' order by id;

Etichetarea tichetelor (hehe)

Am creat etichete pe GitHub: https://github.com/CatalinFrancu/dexonline/issues . Am urmărit următoarele categorii:

  • cât durează repararea (< 10 ore, 10-50 ore, > 50 ore)
  • componenta (backend, frontend, mobile, brainstorming, jocuri etc.); pot fi suprapuneri
  • altele: newbie (tichete care pot fi rezolvate de nou-veniți), grafică etc.

Am păstrat etichetele newbie din Trac. Am etichetat cam jumătate din tichete, cele mai noi, cu toate etichetele corecte. În rest, componentele s-au pierdut. Voi încerca, dar nu promit, să trec și prin tichetele vechi.

Refacerea paginii principale

Am refăcut pagina principală de pe acest wiki pentru a ne adresa lingviștilor, programatorilor etc.

Redenumește baza de date

Am redenumit baza de date MySQL din lingv în wiki.

  • Modifică, în LocalSettings.php, numele bazei de date folosite.
  • Exportă baza de date cu mysqldump
  • Creează o bază de date nouă (create database wiki charset utf8)
  • Importă dump-ul în această bază de date nouă
  • Șterge baza de date veche.

Lucruri de făcut

Completează secțiunea despre contribuții din Instrucțiuni de instalare.

Dă pe blog? S-ar putea să fie de interes prea restrâns pentru asta.