manage git

31
Git Gitolite Gitweb Hosted Scenarii de utilizare Recomand˘ ari ˆ Incheiere Gestiunea repository-urilor folosind solut , ii Git Linux and Open Source azvan Deaconescu [email protected] 24 februarie 2011 azvan Deaconescu Git Repositories

Upload: idg-romania

Post on 21-Jan-2015

990 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Gestiunea repository-urilor folosind solut, ii GitLinux and Open Source

Razvan [email protected]

24 februarie 2011

Razvan Deaconescu

Git Repositories

Page 2: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 3: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 4: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari 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

Razvan Deaconescu

Git Repositories

Page 5: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Git

model descentralizat: fiecare utilizator det, ine o copiecompleta a repository-ului

“very fast and scalable”

dezvoltare neliniara s, i distribuita

facil de creat s, i gestionat branch-uri

Razvan Deaconescu

Git Repositories

Page 6: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

URL-uri Git

SSH (autentificare pe baza de parola sau chei)

[email protected]:git-repos/slides.git

HTTP(S)

http://swarm.cs.pub.ro/git/razvan-code.git

gitdaemon

git://github.com/vmchecker/vmchecker.git

Razvan Deaconescu

Git Repositories

Page 7: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Git peste SSH

avantaje

securizatprivatevitarea parolei (cheie publica)us, or de configurat

dezavantaje

problematic de partajat(ın general) necesita un cont Unix

Razvan Deaconescu

Git Repositories

Page 8: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Git peste HTTP

avantaje

universal disponibil (portul 80)configurare facila ın cadrul unui server web

dezavantaje

lentconfigurare suplimentara pentru push (post-update hook) sauautentificare

Razvan Deaconescu

Git Repositories

Page 9: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Protocolul Git

avantaje

rapidsimplu

dezavantaje

posibilitat, i reduse de configurare a permisiunilor (ın generalread-only)configurare daemon/serviciu nounot Internet friendly port (9418)

Razvan Deaconescu

Git Repositories

Page 10: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 11: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Gitolite

http://github.com/sitaramc/gitolite

gestiune centralizata a repository-urilor

acces pe baza de chei publice SSH, fara necesitatea unui contUnix

command="command" ın authorized keys

gestiunea accesului la repository-uri

configurarea tot ıntr-un repository Git (repository-uri, acces,chei publice)

Razvan Deaconescu

Git Repositories

Page 12: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Avantaje folosire Gitolite

gestiunea repository-urilor se realizeaza centralizat

crearea repository-urilor se realizeaza automat la push

controlul accesului

posibilitate de administrare partajata (accesul la repository-ulde administrare)

Razvan Deaconescu

Git Repositories

Page 13: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 14: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Gitweb

https://git.wiki.kernel.org/index.php/Gitweb

interfat, a web pentru vizualizarea repository-urilor

Razvan Deaconescu

Git Repositories

Page 15: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Avantaje folosire Gitweb

us, or de configurat s, i instalat

apt-get install gitweb

interfat, a de parcurgere a codului ın browser

publicare informat, ii: ownership, URls, description

download snapshots (.zip, .tgz)

Razvan Deaconescu

Git Repositories

Page 16: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 17: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

GitHub

https://github.com/

“social coding”

utilizatorul creeaza repository-uripoate invita alt, i utilizatoriorganizat, ii (echipe)

wiki, issues, graphs

HTTP, git, SSH (public key)

comercial – repository-uri private, colaboratori privat, i, spat, iu

Razvan Deaconescu

Git Repositories

Page 18: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari 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)

Razvan Deaconescu

Git Repositories

Page 19: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 20: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Single user

repository local (fara repository URL)

git init . && git add . && git commit -m

’initial commit’

“backup” prin SSH ın cazul unui cont Unix

Razvan Deaconescu

Git Repositories

Page 21: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Private party

cont Unix partajat

acces prin SSH (chei publice)

us, or personalizabil (hook-uri)

Razvan Deaconescu

Git Repositories

Page 22: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Private project

1 Gitolite

acces SSH pe baza de chei publiceus, or de configurat s, i administrat

2 HTTPS

securizare + autentificarecand se foloses, te unui cont specializat (username/parola)(LDAP, database etc.)

Redmine repositories

cand este problematic accesul prin chei SSH (pentru Gitolite)

Razvan Deaconescu

Git Repositories

Page 23: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

For the world

1 Gitolite pentru push (write updates)

symlink-uri ın /var/cache/git s, i configurare a serverului web(HTTP read-only access)

2 HTTPS

HTTP pentru read-onlyHTTPS s, i autentificare pentru push

configurare Gitweb

configurare git-daemon (read-only access) (serves, te din/var/cache/git)

Razvan Deaconescu

Git Repositories

Page 24: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 25: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Administrare

Gitolite

gestiunea facila, centralizata, scalabila a repository-urilor

GitHub, Gitorious

outsourcing

Razvan Deaconescu

Git Repositories

Page 26: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

All is text

scripturi s, i fis, iere de configurare

LaTeX & LaTeX Beamer

Inkscape – SVG, Dia – salvare ca fis, ier necomprimat (formatXML)

fis, iere de organizare/task-uri (Org-Mode ın Emacs)

Razvan Deaconescu

Git Repositories

Page 27: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Versionare s, i “diff”-ing

versionarea facila a fis, ierelor de configurare (/etc/apache2/)

versionarea temelor submise (studiu de caz UPB)

folosire de tag-uri pentru ani

se lucreaza peste acelas, i “code base”nu se mai face un director pentru fiecare an

Razvan Deaconescu

Git Repositories

Page 28: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Hook-uri

post-receive

trimis e-mail-uri/notificari

creat arhive, compilat prezentari/fis, iere LaTeX, publicatresurse

us, or de integrat ın wiki-urilink-ul nu se schimba, doar cont, inutul acestuiaproblematic de integrat cu Gitolite

Razvan Deaconescu

Git Repositories

Page 29: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Outline

1 Git

2 Gitolite

3 Gitweb

4 Hosted

5 Scenarii de utilizare

6 Recomandari

7 Incheiere

Razvan Deaconescu

Git Repositories

Page 30: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari 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/

Razvan Deaconescu

Git Repositories

Page 31: Manage GIT

Git Gitolite Gitweb Hosted Scenarii de utilizare Recomandari Incheiere

Intrebari

repository

URL

Git

Gitolite

Gitweb

scenarii

all is text

Razvan Deaconescu

Git Repositories