| Line 128: | Line 128: | ||
=== Catalogul principal <tt>/tags</tt> === | === Catalogul principal <tt>/tags</tt> === | ||
| − | Acest catalog contine | + | Acest catalog contine versiunile oficiale ale programelor dezvoltate in depozitul KDE. Fiecare aplicatie are aici un subcatalog continand versiunile numerotate. |
Spre exemplu, codul sursa al KDE 3.4.0 se afla in <tt>/tags/KDE/3.4.0/</tt>. | Spre exemplu, codul sursa al KDE 3.4.0 se afla in <tt>/tags/KDE/3.4.0/</tt>. | ||
| Line 134: | Line 134: | ||
=== Catalogul principal <tt>/branches</tt> === | === Catalogul principal <tt>/branches</tt> === | ||
| − | Acest catalog contine | + | Acest catalog contine ramificatiile create dupa fiecare versiune oficiala. |
| − | + | Cele mai multe aplicatii KDE urmeaza principiul de a adauga noi abilitati (si chiar si texte vizibile) doar in versiunea aflata in dezvoltare — | |
| − | KDE | + | cea pastrata in <tt>/trunk/</tt>. Totusi, modificarile care repara probleme se aplica tuturor programelor, chiar si dupa publicarea versiunii oficiale. |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | Pentru a putea realiza acest lucru, in momentul publicarii unei versiuni oficiale este creata o ramificatie a versiunii de dezvoltare din acel moment. Modificarile care repara probleme sunt apoi adaugate la aceasta ramificatie. Aceste ramificatii se afla in <tt>/branches/</tt>. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | Spre exemplu, ramificatia KDE 3.4.x se afla in <tt>/branches/KDE/3.4/</tt> | |
| − | + | Cataloagele din <tt>/branches</tt> apartin fiecarei aplicatii in parte, cum ar fi <tt>akregator/</tt>, <tt>amarok/</tt>, | |
| − | + | <tt>arts/</tt>, <tt>k3b/</tt>, etc. Tot aici veti gasi catalogul <tt>KDE/</tt>, continand toate versiunile oficiale ale KDE. | |
| − | <tt>arts/</tt>, <tt>k3b/</tt>, etc. | + | |
| − | + | ||
| − | + | Un catalog mai special aflat in <tt>/branches</tt> este <tt>work/</tt>. Acest catalog contine asa-numitele "ramificatii de test", adica ramificatii continand cod sursa aflat in teste, uneori chiar experimental. Ramificatiile de test care afecteaza mai multe aplicatii sunt pastrate in <tt>/branches/work/</tt>, dar ramificatiile care afecteaza doar o singura aplicatie pot fi pastrate in catalogul aplicatiei respective. Dezvoltatorii aplicatiei respective sunt cei care iau decizia folosirii uneia dintre aceste locatii. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | == | + | == Descarcarea modulelor si actualizarea copiei locale == |
| − | === | + | === Descarcarea modulelor === |
| − | + | Comanda Subversion <tt>checkout</tt> poate fi folosita pentru a descarca orice modul din depozitul SVN al KDE. | |
| − | ''' | + | '''Atentie!''' Daca descarcati trunk/KDE/ sau branches/KDE/foo/ veti constata ca ati descarcat intreg modulul kde-i18n! |
| − | + | Spre exemplu, daca doriti sa descarcati doar modulul KDevelop din depozit, folositi comenzile: | |
| − | CVS | + | pentru CVS: |
cvs -d :pserver:yourname@cvs.kde.org:/home/kde login | cvs -d :pserver:yourname@cvs.kde.org:/home/kde login | ||
cvs -d :pserver:yourname@cvs.kde.org:/home/kde checkout kdevelop | cvs -d :pserver:yourname@cvs.kde.org:/home/kde checkout kdevelop | ||
| − | Subversion | + | pentru Subversion: |
| − | CVS | + | Utilizatorii CVS care acceseaza depozitul prin intermediul SSH ar trebui sa foloseasca protocolul svn+ssh, iar utilizatorii CVS care acceseaza depozitul folosind o parola ar trebui sa foloseasca protocolul https in comenzile urmatoare. |
| − | CVS | + | |
| − | in | + | |
| − | svn checkout <protocol>://< | + | svn checkout <protocol>://<utilizator>@svn.kde.org/home/kde/trunk/KDE/kdevelop |
| − | === | + | === Actualizarea copiei locale === |
| − | + | Pentru a actualiza copia dumneavoastra, folositi comanda <tt>update</tt>. | |
| − | + | Aceasta comanda functioneaza la fel ca in CVS: schimbati catalogul curent cu cel al copiei locale (pentru cei neexperimentati in folosirea Subversion, copia locala ar trebui sa se afle in catalogul personal) si tastati comanda <tt>svn update</tt> (sau, mai scurt, <tt>svn up</tt>). | |
| − | == | + | == Cum puteti afla daca un fisier a fost modificat in depozit == |
| − | + | Pentru a afla care dintre fisierele locale au fost modificate in depozit, majoritatea utilizatorilor CVS foloseau comanda: | |
cvs up | cvs up | ||
| − | + | si cautau marcajul '''M'''; in Subversion puteti afla starea fisierelor locale cu comanda: | |
svn status | svn status | ||
| − | + | . | |
| − | == | + | == Inglobarea modificarilor facute de dumneavoastra in depozit == |
| − | + | La fel ca in CVS, inglobarea modificarilor in depozitul SVN se realizeaza cu una dintre comenzile <tt>commit</tt> sau <tt>checkin</tt> (<tt>ci</tt> pe scurt). | |
| − | + | ||
| − | CVS | + | comenzile CVS: |
cvs commit | cvs commit | ||
| − | # | + | # sau |
cvs ci | cvs ci | ||
| − | # | + | # sau |
| − | cvs ci | + | cvs ci numefisier.cpp |
| − | Subversion | + | comenzile Subversion: |
svn commit | svn commit | ||
| − | # | + | # sau |
svn ci | svn ci | ||
| − | # | + | # sau |
| − | svn ci | + | svn ci numefisier.cpp |
| − | + | Astfel, <tt>svn</tt> va porni editorul de text specificat in variabila de mediu <tt>$SVN_EDITOR</tt> pentru a va permite sa introduceti un mesaj asociat cu operatia de inglobare. Alternativ, puteti folosi optiunea <tt>-m</tt> alaturi de textul mesajului: | |
| − | + | ||
| − | + | ||
| − | svn ci -m " | + | svn ci -m "Actualizarea protocolului de comunicatie conform cu standardul HTTP/1.1" |
| − | == | + | == Fisiere ignorate == |
| − | Subversion | + | Subversion pastreaza lista fisierelor ignorate in fiecare catalog. Pentru a edita lista fisierelor ignorate din catalogul curent, folositi comanda: |
| − | + | ||
svn propedit svn:ignore . | svn propedit svn:ignore . | ||
| − | + | <tt>svn</tt> va deschide lista in editorul de texte asociat; scrieti numele fisierelor care doriti sa fie ignorate, cate unul pe linie. Cand ati terminat de modificat lista, tastati o comanda de inglobare pentru a trimite modificarea facuta la depozitul SVN. | |
| − | + | ||
| − | + | ||
A lot of files were ignored in CVS with help from global ignore list which | A lot of files were ignored in CVS with help from global ignore list which | ||
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
| Tutorial Series | Getting Started |
| Previous | None |
| What's Next | n/a |
| Further Reading | n/a |
Aceasta este o scurta introducere in folosirea utilitarului Subversion pentru a accesa fisierele din depozitul SVN al KDE. Daca aveti nevoie de un manual complet al utilitarului Subversion, va recomandam "Version Control with Subversion".
Pentru a accesa depozitul SVN al KDE aveti nevoie de doua lucruri:
Nota: Daca doar doriti sa descarcati fisiere, fara a avea nevoie de drepturi de scriere, nu aveti nevoie de cont de utilizator; folositi "svn" ca si "<protocol>", fara "<utilizator>@", si serverul "anonsvn.kde.org" in loc de "svn.kde.org".
Instalarea clientului Subversion: aceasta pagina nu contine instructiuni privind instalarea clientului Subversion. Pentru a afla cum puteti instala Subversion consultati documentatia de instalare a programelor pentru sistemul de operare pe care il folositi. Veti avea nevoie de cel putin versiunea 1.1 a Subversion. Daca compilati Subversion din codul sursa si doriti sa accesati depozitul SVN al KDE cu protocolul Internet "https" (si nu svn+ssh), aveti nevoie de suport pentru SSL si ZLIB, deci va trebui sa folositi optiunile de compilare --with-ssl --with-zlib.
De asemenea puteti instala una dintre multele interfete grafice disponibile pentru Subversion. Acest tutorial a fost scris pentru a-i ajuta pe cei care folosesc doar clientul svn si se refera la actiunile care pot fi realizate cu cunoscutul utilitar cvs.
Obtinerea unui cont de utilizator: daca ati avut un cont de acces la depozitul CVS, acesta a fost adaptat pentru folosirea cu Subversion. Daca nu ati avut un asemenea cont, consultati acest ghid pentru a afla cum puteti obtine unul.
| Note |
|---|
| Daca nu va mai amintiti parola contului CVS, exista doua modalitati simple de a o recupera: folositi cvspwd (C) sau cvs-unscramble (Perl). |
svn.kde.org/home/kde
Aceasta este adresa depozitului SVN a KDE. Poate fi accesata folosind oricare dintre protocoalele Internet HTTPS sau SVN+SSH, ceea ce inseamna ca parola dumneavoastra nu va putea fi interceptata de catre persoane nedorite.
Semnatura SSL in format MD5 recunoscuta de catre depozitul SVN este:
F6BF EDE2 D016 D1B2 4F18 742E 2C8F B7EF
iar semnatura SSL in format SHA1 este:
e1:e6:41:96:3c:eb:ae:78:e2:73:0d:a2:32:2f:6b:21:13:bf:3d:0f
Daca folositi protocolul svn+ssh, semnatura cheii RSA a serverului este:
86:f3:66:06:20:74:81:d0:1b:b4:2f:25:03:f7:8e:fb
Depozitul este impartit in urmatoarele cataloage principale:
Interfata depozitului o veti gasi la adresa http://websvn.kde.org/
In catalogul principal /trunk veti gasi ultima versiune a surselor KDE. Acestea vor deveni urmatoarea distributie a KDE si a aplicatiilor sale. Tot aici veti gasi si modulul www, care contine paginile sitului principal KDE si ale siturilor afiliate.
/trunk este impartit mai departe in:
Acest catalog contine versiunile oficiale ale programelor dezvoltate in depozitul KDE. Fiecare aplicatie are aici un subcatalog continand versiunile numerotate.
Spre exemplu, codul sursa al KDE 3.4.0 se afla in /tags/KDE/3.4.0/.
Acest catalog contine ramificatiile create dupa fiecare versiune oficiala.
Cele mai multe aplicatii KDE urmeaza principiul de a adauga noi abilitati (si chiar si texte vizibile) doar in versiunea aflata in dezvoltare — cea pastrata in /trunk/. Totusi, modificarile care repara probleme se aplica tuturor programelor, chiar si dupa publicarea versiunii oficiale.
Pentru a putea realiza acest lucru, in momentul publicarii unei versiuni oficiale este creata o ramificatie a versiunii de dezvoltare din acel moment. Modificarile care repara probleme sunt apoi adaugate la aceasta ramificatie. Aceste ramificatii se afla in /branches/.
Spre exemplu, ramificatia KDE 3.4.x se afla in /branches/KDE/3.4/
Cataloagele din /branches apartin fiecarei aplicatii in parte, cum ar fi akregator/, amarok/, arts/, k3b/, etc. Tot aici veti gasi catalogul KDE/, continand toate versiunile oficiale ale KDE.
Un catalog mai special aflat in /branches este work/. Acest catalog contine asa-numitele "ramificatii de test", adica ramificatii continand cod sursa aflat in teste, uneori chiar experimental. Ramificatiile de test care afecteaza mai multe aplicatii sunt pastrate in /branches/work/, dar ramificatiile care afecteaza doar o singura aplicatie pot fi pastrate in catalogul aplicatiei respective. Dezvoltatorii aplicatiei respective sunt cei care iau decizia folosirii uneia dintre aceste locatii.
Comanda Subversion checkout poate fi folosita pentru a descarca orice modul din depozitul SVN al KDE.
Atentie! Daca descarcati trunk/KDE/ sau branches/KDE/foo/ veti constata ca ati descarcat intreg modulul kde-i18n!
Spre exemplu, daca doriti sa descarcati doar modulul KDevelop din depozit, folositi comenzile:
pentru CVS:
cvs -d :pserver:yourname@cvs.kde.org:/home/kde login cvs -d :pserver:yourname@cvs.kde.org:/home/kde checkout kdevelop
pentru Subversion:
Utilizatorii CVS care acceseaza depozitul prin intermediul SSH ar trebui sa foloseasca protocolul svn+ssh, iar utilizatorii CVS care acceseaza depozitul folosind o parola ar trebui sa foloseasca protocolul https in comenzile urmatoare.
svn checkout <protocol>://<utilizator>@svn.kde.org/home/kde/trunk/KDE/kdevelop
Pentru a actualiza copia dumneavoastra, folositi comanda update.
Aceasta comanda functioneaza la fel ca in CVS: schimbati catalogul curent cu cel al copiei locale (pentru cei neexperimentati in folosirea Subversion, copia locala ar trebui sa se afle in catalogul personal) si tastati comanda svn update (sau, mai scurt, svn up).
Pentru a afla care dintre fisierele locale au fost modificate in depozit, majoritatea utilizatorilor CVS foloseau comanda:
cvs up
si cautau marcajul M; in Subversion puteti afla starea fisierelor locale cu comanda:
svn status
.
La fel ca in CVS, inglobarea modificarilor in depozitul SVN se realizeaza cu una dintre comenzile commit sau checkin (ci pe scurt).
comenzile CVS:
cvs commit # sau cvs ci # sau cvs ci numefisier.cpp
comenzile Subversion:
svn commit # sau svn ci # sau svn ci numefisier.cpp
Astfel, svn va porni editorul de text specificat in variabila de mediu $SVN_EDITOR pentru a va permite sa introduceti un mesaj asociat cu operatia de inglobare. Alternativ, puteti folosi optiunea -m alaturi de textul mesajului:
svn ci -m "Actualizarea protocolului de comunicatie conform cu standardul HTTP/1.1"
Subversion pastreaza lista fisierelor ignorate in fiecare catalog. Pentru a edita lista fisierelor ignorate din catalogul curent, folositi comanda:
svn propedit svn:ignore .
svn va deschide lista in editorul de texte asociat; scrieti numele fisierelor care doriti sa fie ignorate, cate unul pe linie. Cand ati terminat de modificat lista, tastati o comanda de inglobare pentru a trimite modificarea facuta la depozitul SVN.
A lot of files were ignored in CVS with help from global ignore list which is not supported yet by SVN. You can wait for svn 1.3 or you need to add the ignore list to the [miscellany] group in your ~/.subversion/config (all in one line):
global-ignores = *.o *.lo *.la .*.rej *.rej .*~ *~ .#* #*# .DS_Store *.moc *.moc.cc *.moc.cpp config.log config.status config.cache *.gmo .deps .libs SunWS_cache *.lo *.la *.rpo *.la.closure *_la_closure.cpp *_la_closure.cc *_la_closure.cxx *.all_cc.cc *.all_cpp.cpp *.all_C.C *.all_cxx.cxx *_meta_unload.cc *_meta_unload.h *_meta_unload.cpp *_meta_unload.C *_meta_unload.cxx index.cache.bz2 .memdump Makefile.rules.in Makefile.calls.in Makefile.rules Makefile.calls autom4te.cache *.kidl
Unlike CVS, Subversion doesn't generate a revision number for each file modified. Instead, the full repository is versioned, as a whole. This way, a given revision number represents the state the repository was on a given date. In other words, a revision number is like a timestamp (in fact, the Subversion server uses this fact to search for dates in the repository faster).
So, for instance, when you check out the KDE repository, Subversion will tell you the following:
Updated to revision 403821.
This means that the latest revision available at the time of the operation was 403821. If you make a modification and commit, Subversion will update the server-side revision and will inform you of it. Like CVS, only the committed files will be updated: you will need run cvs up to update the rest of the files.
If you want to retrieve a specific revision of a file, you can use the -r switch. Besides the revision number itself, -r accepts a number of other possibilities:
The following illustrates the evolution of the keywords:
Those keywords are useful to retrieve logs and diffs for commits to the repository.
If you want to see the difference between your working copy and BASE, you can run:
svn diff
This is a very fast operation, since Subversion keeps a local copy of BASE. It doesn't need a network connection to accomplish this operation.
If you want to see the difference between your local copy and the latest available on the server, you will run:
svn diff -r HEAD
If you want to see what has changed in the repository since you've last updated, you can use:
svn diff -r BASE:HEAD
If you want to see the last change to a file before BASE, you can use:
svn diff -r PREV:BASE # or svn diff -r PREV:COMMITTED
That is also valid for the svn log command.
It can happen you would like to include a copy of a subdirectory from another place, but just for convenience, not for developing the code in there. Of course it should be updated automatically whenever the original changes. Subversion can help you. You need to edit the property svn:external of the directory the subdirectory should be added to. So for the current directory you use
svn propedit svn:externals .
and then enter lines of the form
libkhalkhi svn://anonsvn.kde.org/home/kde/trunk/playground/pim/khalkhi
Updating will now fetch /trunk/playground/pim/khalkhi into the subdirectoy libkhalkhi.
| Warning |
|---|
| Beware that you cannot commit changes you did to the local copy of the external subdirectory, it is just a readonly copy. |
You use svn://anonsvn.kde.org and not another protocol, because anonsvn.kde.org is accessible to everyone. Using https: or svn+ssh: would only work for users of that protocol. There are still some small disadvantage with anonsvn.kde.org: It is not always in synchronization with svn.kde.org, so updates in the original branch may take a while to appear on anonsvn.kde.org. And some strict firewalls are blocking the svn: protocol.
A special case in KDE 3 is the subdirectory admin, containing the KDE 3 build utilities. It is linked in to the top directory in all modules, and maintained in /branches/KDE/3.5/kde-common. For admin the KDE subversion server is configured to allow readonly access for everyone, so if you see
admin https://svn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin
there is no need to change this.
See the KDE wiki for more information about subversion in KDE