Dec 062012
 

Read in English

İnsan hiç attan inip eşeğe biner mi? Bugün, bazı nedenlerden dolayı benim binmem gerekti. Hani olur da başkası da böyle bir şey yapmaya kalkarsa diye uyguladığım yöntemi paylaşayım dedim.

Not: Satırların başındaki $ işareti, o satırda yazanların komut olarak verildiğini belirtir. Başında $ işareti olmayan satırlar komut çıktısıdır.

Öncelikle boş Subversion deposunu oluşturun:

svnadmin create file:///svn/deposunun/yolu

Sonra bu depoya standard Subversion dizinlerini ekleyin:

$ svn checkout file:///svn/deposunun/yolu proje_adi
$ cd proje_adi
$ mkdir -p {trunk,tags,branches}
$ svn add *
A         branches
A         tags
A         trunk
 
$ svn commit -m "Subversion dizin yapisi"
Adding         branches
Adding         tags
Adding         trunk
 
Committed revision 1.

Şimdi Git deponuzun bulunduğu çalışma dizininize gidin ve Subversion deposunu Git deposuna “uzak depo/remote” olarak ekleyin:

$ cd /git/deposunun/yolu
$ git svn init -s file:///svn/deposunun/yolu
$ git svn fetch
r1 = ca449ce813cb935487822967834fc1a3f3ec14f9 (refs/remotes/trunk)

Şimdi de Git’in ilk “commit” tüm geçmişi Subversion’a aktarmasını sağlayalım. Bunun için, Git deposundaki ilk commit’i, yukarıda git svn fetch çıktısında gördüğünüz ilk Subversion commit’i (ca449ce813cb935487822967834fc1a3f3ec14f9) ile eşleştirmeliyiz.

Önce Git deposundaki ilk commitin etiketini bulalım:

$ git log --pretty=oneline | tail -n 1
7e7a2f7a5df98a79c1e93f809cf7667ff1e114d2 Git deposuna aktarim

Şimdi eşleştirmeyi yapalım:

$ echo "7e7a2f7a5df98a79c1e93f809cf7667ff1e114d2 ca449ce813cb935487822967834fc1a3f3ec14f9" >> .git/info/grafts

Artık Subversion’a aktarıma başlayabiliriz:

$ git svn dcommit
Committing to file:///svn/deposunun/yolu/trunk ...
	A	test.php
Committed r2
	A	test.php
r2 = 7921fb344cac9edfb429d2d5d73473d12449e94b (refs/remotes/trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
	A	bla.php
Committed r3
	A	bla.php
r3 = bd3a6938fdde2fcfcab6c22935ab26017399dbc1 (refs/remotes/trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk

Bundan sonrası için sizlere sabır diliyorum.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)