24 07 2008

svn to git

Krótko o tym jak przenieść repozytorium svn’a do git’a.


Repozytorium gita będzie znajdować się na zewnętrznym serwerze, do ktorego bedziemy laczyć się przez ssh.

Na serwerze repo_serv tworzymy nowego usera git:

root@repo_serv# useradd git -m
root@repo_serv# passwd git
git@repo_serv$ mkdir test.git
git@repo_serv$ cd test.git
git@repo_serv$ git --bare init
Initialized empty Git repository in /home/git/test.git/

Na lokalnym komputerze, checkoutujemy repozytorium svnowe:

oki@localhost@$ git-svn clone svn://svn_server/test/trunk test
Initialized empty Git repository in .git/
r1 = 356f9f14174ffa6848a958f9077044ff42ad0330 (git-svn)
    A    plik.rb
    A    plik2.rb
r2 = 7c236c87146787156a9b13be258ac1bf19d2a4e1 (git-svn)
    A    .htaccess
r3 = cbc6d6347a960379804937ceabb4601cf82a63e9 (git-svn)
    M    .htaccess
r4 = e47b697bf3d658a9da4201c59797a31fef203c70 (git-svn)
    M    request.xml
    A    README
r5 = 9ab46e1a0217eb83210514969b84a95d6a8a1b8e (git-svn)
    M    request.xml
r6 = c6a9552257e02276605be32b9f57e09e3f4b80c6 (git-svn)
    M    xml-tester.rb
r7 = 81aba1c49bd8ca7f23477e4f65023163ffa1ae6e (git-svn)
    M    xml-tester.rb
r8 = 896ebb06ff96fe5e25275fa0b19338ddc594324d (git-svn)
    M    request.xml
    M    xml-tester.pl
r9 = 0f3448ae600d26ec51ffee6c3e5d233c7043d8c0 (git-svn)
Checked out HEAD:
  svn://svn_server/test/trunk r9

Dodajemy zewnętrzne źrodło, nasze nowe nowe repozytorium git’a:

$ git remote add origin git@repo_serv:test.git

Następnie nasze zmiamy wysyłamy w świat:

oki@localhost$ git push origin master
git@repo_serv's password: 
Counting objects: 39, done.
Compressing objects: 100% (38/38), done.
Writing objects: 100% (39/39), 9.41 KiB, done.
Total 39 (delta 20), reused 0 (delta 0)
To git@repo_serv:test.git
 * [new branch]      master -> master

Testujemy git-clone:

oki@localhost$ git clone git@repo_serv:test.git
Initialized empty Git repository in /home/oki/tmp/test/.git/
git@repo_serv's password: 
remote: Counting objects: 39, done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 39 (delta 20), reused 0 (delta 0)
Receiving objects: 100% (39/39), 9.05 KiB, done.
Resolving deltas: 100% (20/20), done.

Dodatkowo możemy wygenerować klucze ssh dla uzytkownika git, dzięki temu nie będziemy za każdym razem przy połączeniu do serwera pytani o hasło.


* - Pola wymagane


simple_captcha.jpg (*)