1. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Gestiunea repository-urilor folosind solutii Git
,
Linux and Open Source
R˘zvan Deaconescu
a
razvan@rosedu.org
24 februarie 2011
R˘zvan Deaconescu
a
Git Repositories
2. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
3. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
4. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Sisteme de versionare a codului
Version Control System (VCS), Source Code Management
(SCM)
repository, repository URL
working copy/clone
commit, checkout, push, pull, HEAD, branch, merge, tag,
trunk
centralizat: Subversion, Perforce
descentralizat: Git, Mercurial, Darcs
R˘zvan Deaconescu
a
Git Repositories
5. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Git
model descentralizat: fiecare utilizator detine o copie
,
complet˘ a repository-ului
a
“very fast and scalable”
dezvoltare neliniar˘ si distribuit˘
a , a
facil de creat si gestionat branch-uri
,
R˘zvan Deaconescu
a
Git Repositories
6. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
URL-uri Git
SSH (autentificare pe baz˘ de parol˘ sau chei)
a a
razvan@swarm.cs.pub.ro:git-repos/slides.git
HTTP(S)
http://swarm.cs.pub.ro/git/razvan-code.git
gitdaemon
git://github.com/vmchecker/vmchecker.git
R˘zvan Deaconescu
a
Git Repositories
7. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Git peste SSH
avantaje
securizat
privat
evitarea parolei (cheie public˘)
a
usor de configurat
,
dezavantaje
problematic de partajat
(ˆ general) necesit˘ un cont Unix
ın a
R˘zvan Deaconescu
a
Git Repositories
8. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Git peste HTTP
avantaje
universal disponibil (portul 80)
configurare facil˘ ˆ cadrul unui server web
a ın
dezavantaje
lent
configurare suplimentar˘ pentru push (post-update hook) sau
a
autentificare
R˘zvan Deaconescu
a
Git Repositories
9. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Protocolul Git
avantaje
rapid
simplu
dezavantaje
posibilit˘ti reduse de configurare a permisiunilor (ˆ general
a, ın
read-only)
configurare daemon/serviciu nou
not Internet friendly port (9418)
R˘zvan Deaconescu
a
Git Repositories
10. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
11. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Gitolite
http://github.com/sitaramc/gitolite
gestiune centralizat˘ a repository-urilor
a
acces pe baz˘ de chei publice SSH, f˘r˘ necesitatea unui cont
a aa
Unix
command="command" ˆ authorized keys
ın
gestiunea accesului la repository-uri
configurarea tot ˆ
ıntr-un repository Git (repository-uri, acces,
chei publice)
R˘zvan Deaconescu
a
Git Repositories
12. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Avantaje folosire Gitolite
gestiunea repository-urilor se realizeaz˘ centralizat
a
crearea repository-urilor se realizeaz˘ automat la push
a
controlul accesului
posibilitate de administrare partajat˘ (accesul la repository-ul
a
de administrare)
R˘zvan Deaconescu
a
Git Repositories
13. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
14. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Gitweb
https://git.wiki.kernel.org/index.php/Gitweb
interfat˘ web pentru vizualizarea repository-urilor
,a
R˘zvan Deaconescu
a
Git Repositories
15. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Avantaje folosire Gitweb
usor de configurat si instalat
, ,
apt-get install gitweb
interfat˘ de parcurgere a codului ˆ browser
,a ın
publicare informatii: ownership, URls, description
,
download snapshots (.zip, .tgz)
R˘zvan Deaconescu
a
Git Repositories
16. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
17. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
GitHub
https://github.com/
“social coding”
utilizatorul creeaz˘ repository-uri
a
poate invita alti utilizatori
,
organizatii (echipe)
,
wiki, issues, graphs
HTTP, git, SSH (public key)
comercial – repository-uri private, colaboratori privati, spatiu
, ,
R˘zvan Deaconescu
a
Git Repositories
18. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Gitorious
http://gitorious.org/
utilizatori, repository-uri, echipe (similar GitHub)
instalabil pe sistemul local
wiki, code review
HTTP, git, SSH (public key)
suport comercial – http://gitorious.com/ (nimic concret)
R˘zvan Deaconescu
a
Git Repositories
19. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
20. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Single user
repository local (f˘r˘ repository URL)
aa
git init . && git add . && git commit -m
’initial commit’
“backup” prin SSH ˆ cazul unui cont Unix
ın
R˘zvan Deaconescu
a
Git Repositories
21. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Private party
cont Unix partajat
acces prin SSH (chei publice)
usor personalizabil (hook-uri)
,
R˘zvan Deaconescu
a
Git Repositories
22. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Private project
1 Gitolite
acces SSH pe baz˘ de chei publice
a
usor de configurat si administrat
, ,
2 HTTPS
securizare + autentificare
cˆnd se foloseste unui cont specializat (username/parol˘)
a , a
(LDAP, database etc.)
Redmine repositories
cˆnd este problematic accesul prin chei SSH (pentru Gitolite)
a
R˘zvan Deaconescu
a
Git Repositories
23. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
For the world
1 Gitolite pentru push (write updates)
symlink-uri ˆ /var/cache/git si configurare a serverului web
ın ,
(HTTP read-only access)
2 HTTPS
HTTP pentru read-only
HTTPS si autentificare pentru push
,
configurare Gitweb
configurare git-daemon (read-only access) (serveste din
,
/var/cache/git)
R˘zvan Deaconescu
a
Git Repositories
24. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
25. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Administrare
Gitolite
gestiunea facil˘, centralizat˘, scalabil˘ a repository-urilor
a a a
GitHub, Gitorious
outsourcing
R˘zvan Deaconescu
a
Git Repositories
26. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
All is text
scripturi si fisiere de configurare
, ,
LaTeX & LaTeX Beamer
Inkscape – SVG, Dia – salvare ca fisier necomprimat (format
,
XML)
fisiere de organizare/task-uri (Org-Mode ˆ Emacs)
, ın
R˘zvan Deaconescu
a
Git Repositories
27. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Versionare si “diff”-ing
,
versionarea facil˘ a fisierelor de configurare (/etc/apache2/)
a ,
versionarea temelor submise (studiu de caz UPB)
folosire de tag-uri pentru ani
se lucreaz˘ peste acelasi “code base”
a ,
nu se mai face un director pentru fiecare an
R˘zvan Deaconescu
a
Git Repositories
28. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Hook-uri
post-receive
trimis e-mail-uri/notific˘ri
a
creat arhive, compilat prezent˘ri/fisiere LaTeX, publicat
a ,
resurse
usor de integrat ˆ wiki-uri
, ın
link-ul nu se schimb˘, doar continutul acestuia
a ,
problematic de integrat cu Gitolite
R˘zvan Deaconescu
a
Git Repositories
29. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Outline
1 Git
2 Gitolite
3 Gitweb
4 Hosted
5 Scenarii de utilizare
6 Recomand˘ri
a
7 ˆ
Incheiere
R˘zvan Deaconescu
a
Git Repositories
30. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
Resurse utile
http://git-scm.com/
http://gitimmersion.com/index.html
http://www.gitready.com/
http://progit.org/
http://github.com/sitaramc/gitolite
https://git.wiki.kernel.org/index.php/Gitweb
https://github.com/
http://gitorious.org/
R˘zvan Deaconescu
a
Git Repositories
31. Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ri
a ˆ
Incheiere
ˆ
Intreb˘ri
a
repository
URL
Git
Gitolite
Gitweb
scenarii
all is text
R˘zvan Deaconescu
a
Git Repositories