İngilizceFransızcaİspanyolca

OnWorks favicon'u

git-svn - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında git-svn'yi çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen git-svn komutudur.

Program:

ADI


git-svn - Subversion deposu ile Git arasında çift yönlü işlem

SİNOPSİS


git svn [seçenekler] [argümanlar]

TANIM


git svn Subversion ve Git arasındaki değişiklik kümeleri için basit bir kanaldır. Bir sağlar
Subversion ve Git deposu arasındaki çift yönlü değişiklik akışı.

git svn ortak aşağıdakileri izleyerek standart bir Subversion deposunu izleyebilir
--stdlayout seçeneğiyle "gövde/dallar/etiketler" düzeni. Ayrıca şubeleri takip edebilir ve
-T/-t/-b seçenekleriyle herhangi bir düzende etiketler (seçeneklere bakın) init aşağıda ve ayrıca
clone komutu).

Bir Subversion deposunu izledikten sonra (yukarıdaki yöntemlerden herhangi biriyle), Git deposu
tarafından Subversion'dan güncellenebilir almak tarafından Git'ten güncellenen komut ve Subversion
taahhüt Komut.

KOMUTLAR


init
için ek meta veri dizinleriyle boş bir Git deposunu başlatır. git svn.
Subversion URL'si bir komut satırı argümanı veya tam URL olarak belirtilebilir.
-T/-t/-b için argümanlar. İsteğe bağlı olarak üzerinde çalışılacak hedef dizin belirlenebilir.
ikinci bir argüman olarak. Normalde bu komut, geçerli dizini başlatır.

-T , --gövde= , -T , --etiketler= ,
-B , --dallar= , -s, --stdlayout
Bunlar, init için isteğe bağlı komut satırı seçenekleridir. Bu bayrakların her biri işaret edebilir
göreli bir depo yolu (--tags=proje/etiketler) veya tam bir url
(--tags=https://foo.org/project/tags). Birden fazla --tag ve/veya
--dal seçenekleri, Subversion deponuzun etiketler veya dallar yerleştirmesi durumunda
birden fazla yol altında. --stdlayout seçeneği, ayarlamanın kısa bir yoludur
Subversion varsayılanı olan göreli yollar olarak gövde, etiketler, dallar. Varsa
diğer seçeneklerden de verilmişse, bunlar önceliklidir.

--meta veri yok
Yı kur meta veri yok [svn-remote] yapılandırmasındaki seçenek. Bu seçenek değil
tavsiye, lütfen okuyun svn.noMeta veriler kullanmadan önce bu kılavuz sayfasının
bu seçenek.

--use-svm-sahneleri
Yı kur kullanımSvmProps [svn-remote] yapılandırmasındaki seçenek.

--use-svnsync-props
Yı kur SvnsyncProps'u kullan [svn-remote] yapılandırmasındaki seçenek.

--rewrite-root=
Yı kur yeniden yazmakKök [svn-remote] yapılandırmasındaki seçenek.

--rewrite-uuid=
Yı kur yeniden yazUUID [svn-remote] yapılandırmasındaki seçenek.

--kullanıcıadı=
SVN'nin (http, https ve düz svn) kimlik doğrulamasını gerçekleştirdiği aktarımlar için,
kullanıcı adını belirtin. Diğer aktarımlar için (örn. svn+ssh://), şunları eklemelisiniz
URL'deki kullanıcı adı, örneğin svn+ssh://[e-posta korumalı]/proje

--önek=
Bu, aşağıdaki durumlarda uzaktan kumanda adlarının başına gelecek bir önek belirlemeye izin verir.
gövde/dallar/etiketler belirtilir. Ön ek otomatik olarak bir
sondaki eğik çizgi, bu nedenle, eğer istediğiniz buysa, argümana bir tane eklediğinizden emin olun.
istek. --branches/-b belirtilirse, önek sonunda bir eğik çizgi içermelidir.
Bir önek ayarlamak (sonda eğik çizgi ile) her durumda şiddetle tavsiye edilir, çünkü
SVN izleme referanslarınız daha sonra "refs/remotes/$prefix/", hangi is
uyumlu ile Git'in kendi uzaktan izleme ref düzen (başvurular/uzaktan kumandalar/$uzaktan/).
Bir önek belirlemek, aynı zamanda, paylaşan birden fazla projeyi izlemek istiyorsanız da yararlıdır.
ortak bir depo. Varsayılan olarak, önek şu şekilde ayarlanmıştır: Menşei/.

not
Git v2.0'dan önce varsayılan önek "" idi (önek yok). Bu şu anlama geliyordu
SVN izleme referansları, "refs/remotes/*" konumuna yerleştirildi; bu, şu şekilde uyumsuz
Git'in kendi uzaktan izleme referansları düzenlenmiştir. hala eskiyi istiyorsan
varsayılan olarak, komut satırında --prefix "" ileterek alabilirsiniz
(--prefix="", Perl'inizin Getopt::Long değeri < v2.37) ise çalışmayabilir.

--ignore-yollar=
ne zaman geçti init or clone bu normal ifade bir yapılandırma olarak korunacak
anahtar. Görmek almak açıklaması için --ignore-yolları.

--include-paths=
ne zaman geçti init or clone bu normal ifade bir yapılandırma olarak korunacak
anahtar. Görmek almak açıklaması için --include-yolları.

--no-minimize-url'si
Birden çok dizini izlerken (--stdlayout, --branches veya --tags kullanarak)
seçenekleri), git svn köke (veya izin verilen en yüksek düzeye) bağlanmaya çalışır.
Subversion deposunun. Bu varsayılan, aşağıdaki durumlarda geçmişin daha iyi izlenmesini sağlar:
tüm projeler bir havuz içinde taşınır, ancak
okuma erişimi kısıtlamalarının geçerli olduğu depolar. Geçen
--no-minimize-url'si git svn'nin URL'leri olduğu gibi kabul etmesine izin verir
daha yüksek bir dizine bağlanın. Bu seçenek, yalnızca bir
URL/dal izlenir (biraz iyi olur).

almak
Takip ettiğimiz Subversion uzaktan kumandasından getirilmeyen revizyonları alın. adı
$GIT_DIR/config dosyasındaki [svn-remote "..."] bölümü isteğe bağlı olarak belirtilebilir
komut satırı argümanı.

Bu, gerekirse rev_map'i otomatik olarak günceller (bkz. $GIT_DIR/svn/**/.rev_map.* in
Ayrıntılar için aşağıdaki DOSYALAR bölümüne bakın).

--Yerel zaman
Git taahhüt zamanlarını UTC yerine yerel saat diliminde saklayın. Bu yapar git log
( --date=local olmasa bile) svn log'un yerelde gösterdiği sürelerin aynısını gösterir
saat dilimi.

Bu, Subversion deposuyla birlikte çalışmayı engellemez.
klonlanmış, ancak yerel Git deponuzun yapabilmesini istiyorsanız
başka birinin yerel Git deposuyla birlikte çalışın, ya bunu kullanmayın
seçeneğini seçin veya ikiniz de aynı yerel saat diliminde kullanmalısınız.

--ebeveyn
Yalnızca geçerli HEAD'in SVN üst öğesinden getir.

--ignore-yollar=
Bu, birinin, aşağıdakilerin atlanmasına neden olacak bir Perl düzenli ifadesi belirtmesine izin verir.
SVN'den gelen tüm eşleşen yollar. NS --ignore-yolları seçenek eşleşmelidir
her için almak (nedeniyle otomatik getirmeler dahil clone, taahhüt, yeniden baz almak, Vb)
belirli bir depoda.

yapılandırma anahtarı: svn-remote. .ignore-yolları

Yoksay yolları yapılandırma anahtarı ayarlanmışsa ve komut satırı seçeneği de
verildiğinde, her iki normal ifade de kullanılacaktır.

Örnekler:

Her getirme için "doc*" dizinini atla

--ignore-paths="^doc"

Birinci seviye dizinlerin "dallarını" ve "etiketlerini" atlayın

--ignore-paths="^[^/]+/(?:dallar|etiketler)"

--include-paths=
Bu, kişinin dahil edilmesine neden olacak bir Perl düzenli ifadesi belirtmesine izin verir.
yalnızca SVN'den gelen ödemeyle eşleşen yolların sayısı. NS --include-yolları seçenek
her biri için maç almak (nedeniyle otomatik getirmeler dahil clone, taahhüt, yeniden baz almak,
vb) belirli bir depoda. --ignore-yolları önceliği alır --include-yolları.

yapılandırma anahtarı: svn-remote. .include-yolları

--log-pencere-boyutu=
Gidip getirmek Subversion geçmişini tararken istek başına günlük girişleri. Varsayılan
100. Çok büyük Subversion depoları için daha büyük değerler gerekebilir.
clone/almak makul sürede tamamlamak. Ancak aşırı büyük değerler,
daha yüksek bellek kullanımı ve istek zaman aşımları.

clone
Runs init ve almak. Taban adına göre otomatik olarak bir dizin oluşturacaktır.
kendisine iletilen URL; veya ikinci bir argüman iletilirse; bir dizin oluşturacak
ve bunun içinde çalışın. olduğu yönündeki tüm argümanları kabul eder. init ve almak komutlar
kabul; nın istisnası ile --hepsini getir ve --ebeveyn. Bir depo klonlandıktan sonra,
the almak komut, çalışma ağacını etkilemeden revizyonları güncelleyebilecek;
ve yeniden baz almak komut, çalışma ağacını en son ile güncelleyebilecektir.
değişir.

--preserve-boş-dirs
Her boş dizin için yerel Git deposunda bir yer tutucu dosyası oluşturun
Subversion'dan alındı. Bu, kaldırılarak boş hale gelen dizinleri içerir.
Subversion deposundaki tüm girişler (ancak dizinin kendisi değil). NS
yer tutucu dosyalar da izlenir ve artık gerekmediğinde kaldırılır.

--placeholder-dosyaadı=
--preserve-empty-dirs tarafından oluşturulan yer tutucu dosyalarının adını ayarlayın. Varsayılan:
".gitignore"

yeniden baz almak
Bu, mevcut HEAD'in SVN ebeveyninden revizyonları getirir ve mevcut
(SVN'ye bağlı değildir) buna karşı çalışır.

Bu, svn güncellemesine benzer şekilde çalışır veya git Çek lineer geçmişi koruması dışında
ile git yeniden baz almak yerine git birleştirme dtaahhüt kolaylığı için git svn.

Bu, tüm seçenekleri kabul eder. git svn almak ve git yeniden baz almak kabul. Yine de,
--hepsini getir yalnızca geçerli [svn-remote] öğesinden alır ve [svn-remote] öğesinin tümü değil
tanımlar.

Facebok sayfasını beğenin : git yeniden baz almak; bu, çalışan ağacın temiz olmasını ve taahhütsüz olmasını gerektirir
değişir.

Bu, gerekirse rev_map'i otomatik olarak günceller (bkz. $GIT_DIR/svn/**/.rev_map.* in
Ayrıntılar için aşağıdaki DOSYALAR bölümüne bakın).

-l, --yerel
Uzaktan getirme; sadece koş git yeniden baz almak son alınan işleme karşı
yukarı akış SVN.

taahhüt
Geçerli daldaki her farkı doğrudan SVN deposuna aktarın ve ardından
rebase veya reset (SVN ve head arasında bir fark olup olmamasına bağlı olarak).
Bu, Git'teki her bir taahhüt için SVN'de bir revizyon yaratacaktır.

İsteğe bağlı bir Git şube adı (veya Git taahhüt nesnesi adı) bir
bağımsız değişken, alt komut geçerli dalda değil, belirtilen dalda çalışır.

Kullanımı taahhüt tercih edilir set-ağaç (altında).

--yeniden taban yok
Taahhüt ettikten sonra, yeniden temel almayın veya sıfırlamayın.

--taahhüt-url
Bu SVN URL'sini (tam yol) taahhüt edin. Bu, mevcut git svn
tek bir aktarım yöntemiyle (örn. svn:// veya http:// için
anonim okuma) bir kullanıcıya daha sonra bir alternatife erişim izni verilirse yeniden kullanılacak
taahhüt için taşıma yöntemi (örn. svn+ssh:// veya https://).

yapılandırma anahtarı: svn-remote. .commiturl
yapılandırma anahtarı: svn.commiturl (tüm svn-remote.sys dosyalarının üzerine yazar. .commiturl seçenekleri)

Commurl yapılandırma anahtarının SVN URL'sinin SVN dalını içerdiğini unutmayın. Eğer sen
bunun yerine, tüm SVN deposu kullanımı için taahhüt URL'sini ayarlamak istiyorum
svn-uzaktan. .pushurl yerine.

Bu seçeneği başka bir amaç için kullanmak (sormayın) kesinlikle önerilmez.

--mergeinfo=
dcommit sırasında verilen birleştirme bilgilerini ekleyin (örn.
--mergeinfo="/branches/foo:1-10"). Tüm svn sunucu sürümleri bunu saklayabilir
bilgi (özellik olarak) ve sürüm 1.5'ten başlayan svn istemcileri
onu kullanmak. Birden çok daldan birleştirme bilgilerini belirtmek için tek bir boşluk kullanın
dallar arasındaki karakter (--mergeinfo="/branches/foo:1-10
/dallar/bar:3,5-6,8")

yapılandırma anahtarı: svn.pushmergeinfo

Bu seçenek git-svn'nin otomatik olarak doldurmaya çalışmasına neden olur.
mümkün olduğunda SVN deposundaki svn:mergeinfo özelliği. Şu anda, bu olabilir
yalnızca hızlı ileri sarma olmayan birleştirmeler yapıldığında yapılır;
ilk önce zaten SVN'ye itildi.

--interaktif
Kullanıcıdan bir yama setinin gerçekten SVN'ye gönderilmesi gerektiğini onaylamasını isteyin. Her biri için
yama, "evet" (bu yamayı kabul edin), "hayır" (bu yamayı atın), "tümü" yanıtını verebilir.
(tüm yamaları kabul edin) veya "çık".

git svn taahhüt cevap "hayır" veya "bırak" ise hemen geri döner.
SVN'ye herhangi bir şey taahhüt etmek.

şube
SVN deposunda bir dal oluşturun.

-m, --mesaj
Taahhüt mesajını belirlemeye izin verir.

-t, --etiket
Belirtilen branch_subdir yerine Tags_subdir kullanarak bir etiket oluşturun
git svn init sırasında.

-NS , --hedef=
Birden fazla --branches (veya --tags) seçeneği verilmişse, init or clone
komutu, oluşturmak istediğiniz dalın (veya etiketin) konumunu sağlamalısınız.
SVN deposunda. dalı oluşturmak için hangi yolun kullanılacağını belirtir veya
etiketleyin ve yapılandırılanlardan birinin sol tarafındaki desenle eşleşmelidir.
dallar veya etiketler refspecs. Bu refspec'leri komutlarla görebilirsiniz.

git config --get-all svn-remote. .dallar
git config --get-all svn-remote. .etiketler

nerede -R seçeneğiyle belirtilen SVN deposunun adıdır.
init (veya varsayılan olarak "svn").

--Kullanıcı adı
Taahhüdü gerçekleştirmek için SVN kullanıcı adını belirtin. Bu seçenek,
kullanıcı adı yapılandırma özelliği.

--taahhüt-url
Hedef Subversion deposuna bağlanmak için belirtilen URL'yi kullanın. Bu
kaynak SVN deposunun salt okunur olduğu durumlarda kullanışlıdır. Bu seçenek
yapılandırma özelliğini geçersiz kılar taahhüt.

git config --get-all svn-remote. .commiturl

--ebeveynler
Üst klasörler oluşturun. Bu parametre --parents on parametresine eşdeğerdir.
svn cp komutları ve standart olmayan depo düzenleri için kullanışlıdır.

etiket
SVN deposunda bir etiket oluşturun. Bu bir kısaltmadır şube -t.

log
Bu, svn kullanıcıları başvurduğunda svn günlük mesajlarını aramayı kolaylaştırmalıdır.
-r/--revizyon numaraları.

'svn log'daki aşağıdaki özellikler desteklenir:

-r [: ], --revizyon= [: ]
desteklenir, sayısal olmayan argümanlar değildir: HEAD, NEXT, BASE, PREV, vb...

-v, --ayrıntılı
svn günlüğündeki --verbose çıktısıyla tamamen uyumlu değil, ancak
makul derecede yakın.

--limit=
--max-count ile aynı DEĞİLDİR, birleştirilmiş/hariç tutulan taahhütleri saymaz

--artımlı
destekli

Yeni özellikler:

--göster-işle
Git commit sha1'i de gösterir

--Tek çizgi
--pretty=oneline versiyonumuz

not
SVN'nin kendisi yalnızca UTC'de zaman depolar ve başka hiçbir şey saklamaz. Normal svn istemcisi
UTC saatini yerel saate (veya TZ= ortamına göre) dönüştürür. Bu
komutu aynı davranışa sahiptir.
Diğer tüm argümanlar doğrudan git log

suçlama
Bir dosyanın her satırını en son hangi revizyonun ve yazarın değiştirdiğini gösterin. Bunun çıktısı
mod, varsayılan olarak 'svn suçlama' çıktısıyla biçim uyumludur. SVN gibi
suçlama komutu, çalışan ağaçtaki yerel taahhüt edilmemiş değişiklikler göz ardı edilir; sürüm
HEAD revizyonundaki dosyanın açıklamalı. Bilinmeyen argümanlar doğrudan iletilir
için git suçlama.

--git biçimi
Şununla aynı biçimde çıktı üretin git suçlama, ancak SVN revizyon numaralarıyla
Git yerine hash işleme. Bu modda, taahhüt edilmemiş değişiklikler
SVN (yerel çalışma kopyası düzenlemeleri dahil) revizyon 0 olarak gösterilir.

bul-devir
Formun bir SVN revizyon numarası verildiğinde rN, karşılık gelen Git taahhüdünü döndürür
hash (bu, isteğe bağlı olarak, hangi dalın olması gerektiğini belirtmek için bir ağaç-ish ile takip edilebilir)
arandı). Bir ağaç-ish verildiğinde, karşılık gelen SVN revizyon numarasını döndürür.

-B, --önce
Bir SVN revizyonu verildiyse tam bir eşleşme gerektirmeyin, bunun yerine taahhüdü bulun
SVN deposunun (geçerli dalda) durumuna karşılık gelen
belirtilen revizyon

-A, --sonra
Bir SVN revizyonu verilmişse tam eşleşme gerektirmez; kesin bir bilgi yoksa
maç, geçmişte ileriye doğru arama yapan en yakın eşleşmeyi döndürür.

set-ağaç
kullanmayı düşünmelisiniz taahhüt bu komut yerine Belirtilen taahhüdü taahhüt et veya
ağaç nesneleri SVN'ye. Bu, içe aktarılan getirme verilerinizin güncel olmasına bağlıdır. Bu
SVN'ye taahhüt verirken kesinlikle yama yapma girişiminde bulunmaz, sadece
ağaçta belirtilenlerle dosyaların üzerine yazar veya kesinleşir. Tüm birleşmeler varsayılır
bağımsız olarak gerçekleşti git svn fonksiyonlar.

oluştur-yoksay
Dizinlerdeki svn:ignore özelliğini yinelemeli olarak bulur ve eşleştirme oluşturur
.gitignore dosyaları. Ortaya çıkan dosyalar kaydedilmek üzere hazırlanır, ancak
bağlılık. Belirli bir revizyona atıfta bulunmak için -r/--revision kullanın.

göster-yoksay
Dizinlerdeki svn:ignore özelliğini yinelemeli olarak bulur ve listeler. çıktı
$GIT_DIR/info/exclude dosyasına eklemek için uygundur.

mkdir'ler
Çekirdek Git'in bilgilere dayalı olarak izleyemediği boş dizinleri yeniden oluşturma girişimleri
$GIT_DIR/svn/ içinde /unhandled.log dosyaları. Boş dizinler otomatik olarak
"git svn klonu" ve "git svn rebase" kullanılırken yeniden oluşturulur, bu nedenle "mkdirs"
"git checkout" veya "git reset" gibi komutlardan sonra kullanın. (bkz.
svn-uzaktan. Daha fazla bilgi için .automkdirs yapılandırma dosyası seçeneği.)

taahhüt-fark
Komut satırından iki ağaç benzeri bağımsız değişkenin farkını işler. Bu komut
git svn init-ed deposunun içinde olmaya güvenmeyin. Bu komut üç
bağımsız değişkenler, (a) farklılık gösterecek orijinal ağaç, (b) yeni ağaç sonucu, (c) URL
hedef Subversion deposunun. Son bağımsız değişken (URL), aşağıdaki durumlarda atlanabilir:
bir'den çalışıyorlar git svn-farkında depo (ile başlatılmış olan) git svn.)
-r Bunun için seçenek gereklidir.

bilgi
'svn info'nun sağladığına benzer bir dosya veya dizin hakkındaki bilgileri gösterir. Yapmak
şu anda bir -r/--revizyon argümanını desteklemiyor. Yalnızca çıktı almak için --url seçeneğini kullanın
değeri URL: alan.

destek listesi
Belirli bir dosya hakkında Subversion deposunda depolanan özellikleri listeler veya
dizin. Belirli bir Subversion revizyonuna atıfta bulunmak için -r/--revision'ı kullanın.

peygamber
Bir dosya için ilk argüman olarak verilen Subversion özelliğini alır. belirli bir
revizyon -r/--revision ile belirtilebilir.

gösteri-harici
Subversion harici öğelerini gösterir. Belirli bir revizyon belirtmek için -r/--revision kullanın.

gc
$GIT_DIR/svn/'yi sıkıştır /unhandled.log dosyalarını kaldırın ve kaldırın
$GIT_DIR/svn/ / dizin dosyaları.

ayarlamak
etkilerini geri alır almak belirtilen revizyona geri dönün. Bu, şunları yapmanızı sağlar:
re-almak bir SVN revizyonu. Normalde bir SVN revizyonunun içeriği asla değişmemelidir
ve ayarlamak gerekli olmamalıdır. Ancak, SVN izinleri değişirse veya
--ignore-paths seçeneğiniz, bir almak "taahhütte bulunamadı" ile başarısız olabilir (dosya değil
önceden görünür) veya "sağlama toplamı uyuşmazlığı" (bir değişikliği kaçırdı). eğer sorun
dosya sonsuza kadar yok sayılamaz ( --ignore-paths ile) depoyu onarmanın tek yolu
kullanmaktır ayarlamak.

Yalnızca rev_map ve refs/remotes/git-svn değiştirilir (bkz. $GIT_DIR/svn/**/.rev_map.*
Ayrıntılar için aşağıdaki DOSYALAR bölümünde). Takip et ayarlamak Birlikte almak ve sonra git ayarlamak
or git yeniden baz almak yerel dalları yeni ağaca taşımak için.

-r , --revizyon=
Saklanacak en son revizyonu belirtin. Daha sonraki tüm revizyonlar atılır.

-p, --ebeveyn
Bunun yerine en yakın ebeveyni koruyarak belirtilen revizyonu da atın.

Örnek:
"Master" da yerel değişiklikleriniz olduğunu varsayın, ancak "r2"yi yeniden getirmeniz gerekiyor.

r1---r2---r3 uzaktan kumandalar/git-svn
\
A---B ustası

"r2"nin eksik olmasına neden olan yoksayma yolları veya SVN izinleri sorununu düzeltin
ilk başta. Sonra:

git svn sıfırlama -r2 -p
git svn getirme

r1---r2'--r3' uzaktan kumandalar/git-svn
\
r2---r3---A---B ustası

Ardından "master" ile düzeltin git yeniden baz almak. Kullanmayın git birleştirme yoksa tarihin olmayacak
bir gelecekle uyumlu olmak taahhüt!

git rebase --uzaktan kumandalara/git-svn A^ master'a

r1---r2'--r3' uzaktan kumandalar/git-svn
\
A'-B' ustası

SEÇENEKLER


--paylaşılan[=(yanlış|doğru|umask|grup|tüm|dünya|herkes)], --template=
Sadece ile kullanılır init emretmek. Bunlar doğrudan aktarılır git init.

-r , --revizyon
ile kullanılır almak Komut.

Bu, kısmi/koterize geçmiş için revizyon aralıklarının desteklenmesine izin verir. $NUMBER,
$NUMBER1:$NUMBER2 (sayısal aralıklar), $NUMBER:HEAD ve BASE:$NUMBER desteklenir.

Bu, getirmeyi çalıştırırken kısmi aynalar yapmanıza izin verebilir; ama genellikle değil
önerilir çünkü geçmiş atlanacak ve kaybolacaktır.

-, --stdin
Sadece ile kullanılır set-ağaç Komut.

Stdin'deki taahhütlerin bir listesini okuyun ve bunları ters sırada yapın. sadece lider
sha1 her satırdan okunur, yani git rev listesi --pretty=bir satır çıktı kullanılabilir.

--rmdir
Sadece ile kullanılır taahhüt, set-ağaç ve taahhüt-fark emreder.

Geride dosya kalmamışsa, dizinleri SVN ağacından kaldırın. SVN olabilir
sürüm boş dizinler ve dosya yoksa varsayılan olarak kaldırılmazlar
içlerinde kaldı. Git, boş dizinleri sürümlendiremez. Bu bayrağı etkinleştirmek,
SVN'ye Git gibi davranmayı taahhüt edin.

yapılandırma anahtarı: svn.rmdir

-e, --edit
Sadece ile kullanılır taahhüt, set-ağaç ve taahhüt-fark emreder.

SVN'ye taahhütte bulunmadan önce taahhüt mesajını düzenleyin. Bu, nesneler için varsayılan olarak kapalıdır
ağaç nesneleri işlerken taahhüt edilir ve zorlanır.

yapılandırma anahtarı: svn.edit

-l , --bul-kopyaları-daha zor
Sadece ile kullanılır taahhüt, set-ağaç ve taahhüt-fark emreder.

Her ikisi de doğrudan aktarılır git fark ağacı; görmek git-diff-ağacı(1) daha fazlası için
bilgiler.

yapılandırma anahtarı: svn.l
yapılandırma anahtarı: svn.findcopiesharder

-A , --yazarlar-dosyası=
Sözdizimi tarafından kullanılan dosya ile uyumludur git cvsimport:

oturum adı = Joe Kullanıcı[e-posta korumalı]>

Bu seçenek belirtilirse ve git svn olmayan bir SVN taahhüt eden adıyla karşılaşır
yazarlar dosyasında var, git svn işlemi iptal edecek. Kullanıcı daha sonra
uygun girişi ekleyin. Öncekini yeniden çalıştırma git svn komutundan sonra
yazarlar-dosya değiştirilirse işleme devam etmelidir.

yapılandırma anahtarı: svn.authorsfile

--yazarlar-prog=
Bu seçenek belirtilirse, dosyada mevcut olmayan her SVN kaydedici adı için
yazarlar dosyası, verilen dosya ilk olarak taahhüt eden adıyla yürütülür.
argüman. Programın "Ad" biçiminde tek bir satır döndürmesi bekleniyor. ",
yazarlar dosyasına dahil edilmiş gibi işlem görecektir.

-q, --sessiz
Yapmak git svn daha az ayrıntılı. Daha az ayrıntılı hale getirmek için ikinci kez belirtin.

-m, --birleştirme, -s , --strateji= , -p, --preserve-birleştirmeler
Bunlar yalnızca aşağıdakilerle birlikte kullanılır: taahhüt ve yeniden baz almak emreder.

doğrudan geçti git yeniden baz almak kullanırken taahhüt eğer bir git ayarlamak kullanılamaz (bkz.
taahhüt).

-n, --kuru çalışma
Bu ile kullanılabilir taahhüt, yeniden baz almak, şube ve etiket emreder.

Her Ticaretçi İçin Mükemmellik taahhüt, hangi farkların olacağını gösteren Git argümanları dizisini yazdırın.
SVN'ye bağlı kalın.

Her Ticaretçi İçin Mükemmellik yeniden baz almak, yukarı akış svn deposuyla ilişkili yerel dalı görüntüleyin
geçerli şube ve getirilecek svn deposunun URL'si ile ilişkili
dan.

Her Ticaretçi İçin Mükemmellik şube ve etiketoluştururken kopyalamak için kullanılacak URL'leri görüntüleyin.
şube veya etiket.

--use-log-yazar
svn alınırken Git'e taahhüt edilir (bir parçası olarak almak, yeniden baz almakya da taahhüt
işlemleri), günlük mesajında ​​ilk Gönderen: veya İmzalayan: satırını arayın ve
bunu yazar dizesi olarak kullanın.

--add-yazar-dan
Git'ten svn'yi taahhüt ederken (bir parçası olarak taahhüt-fark, set-ağaç or taahhüt
işlemleri), mevcut günlük mesajında ​​zaten bir Kimden: yoksa veya
İmzalayan: satırına, Git taahhüdünün yazar dizesine dayalı olarak bir Gönderen: satırı ekleyin. Eğer
bunu kullanırsanız, --use-log-author tümü için geçerli bir yazar dizesi alır
taahhüt eder.

İLERİ SEÇENEKLER


-ben , --id
Bu, GIT_SVN_ID'yi ayarlar (çevreyi kullanmak yerine). Bu, kullanıcının
tek bir URL'yi izlerken getirilecek varsayılan refname'yi geçersiz kılın. NS log ve
taahhüt komutlar artık bu anahtarı bağımsız değişken olarak gerektirmez.

-R , --svn-uzaktan kumanda
[svn-remote " öğesini belirtin "] bölümünün kullanılması, bu, SVN'ye birden çok izin verir
izlenecek depolar. Varsayılan: "svn"

--takip-ebeveyn
Bu seçenek yalnızca şubeleri izliyorsak geçerlidir (depolardan birini kullanarak
düzen seçenekleri --trunk, --tags, --branches, --stdlayout). İzlenen her dal için deneyin
revizyonunun nereden kopyalandığını bulmak ve ilkinde uygun bir ebeveyn belirlemek için
Şube için git taahhüdü. Bu, özellikle bir dizini takip ederken yararlıdır
bu depo içinde hareket ettirildi. Bu özellik devre dışı bırakılırsa,
tarafından oluşturulan dallar git svn hepsi doğrusal olacak ve herhangi bir geçmişi paylaşmayacak, yani
şubelerin nerelerde dallanıp birleştiğine dair bilgi verilmeyecektir. Yine de,
uzun/dolambaçlı geçmişleri takip etmek uzun zaman alabilir, bu nedenle bu özelliği devre dışı bırakmak
klonlama sürecini hızlandırabilir. Bu özellik varsayılan olarak etkindir,
--no-follow-parent devre dışı bırakmak için.

yapılandırma anahtarı: svn.followparent

CONFIG SADECE DOSYA SEÇENEKLER


svn.noMeta veriler, svn-uzaktan. .noMeta Veri
Bu kurtulmak git-svn kimliği: her taahhüdün sonundaki satırlar.

Bu seçenek yalnızca tek seferlik içe aktarmalar için kullanılabilir. git svn getiremeyecek
yine meta veri olmadan. Ek olarak, eğer kaybederseniz $GIT_DIR/svn/**/.rev_map.*
dosyaları, git svn onları yeniden inşa edemeyecek.

The git svn log komutu, bunu kullanan depolarda da çalışmayacaktır. Bunu kullanarak
ile çatışmalar kullanımSvmProps (umarım) bariz nedenlerle seçenek.

Bu seçenek, eski referansların izini sürmeyi zorlaştırdığı için önerilmez.
mevcut belgelerdeki, hata raporlarındaki ve arşivlerdeki SVN revizyon numaralarına. Eğer sen
sonunda SVN'den Git'e geçmeyi planlıyor ve SVN geçmişini bırakmaktan eminseniz,
düşünmek git-filtre-dal(1) yerine. filtre dalı ayrıca yeniden biçimlendirmeye izin verir
"svn.authorsFile" olmayanlar için yazarlık bilgilerini okuma kolaylığı ve yeniden yazma için meta veriler
Kullanıcılar.

svn.useSvmProps, svn-uzaktan. .useSvmProps
Bu izin verir git svn kullanılarak oluşturulan aynalardan depo URL'lerini ve UUID'leri yeniden eşlemek için
Meta veriler için SVN::Mirror (veya svk).

Bir SVN revizyonunun "svm:headrev" özelliği varsa, revizyon muhtemelen
SVN::Mirror tarafından oluşturulur (SVK tarafından da kullanılır). Özellik bir depo UUID'si içerir ve
bir revizyon. Orijinal URL'yi yansıtıyormuş gibi görünmesini sağlamak istiyoruz, bu nedenle
orijinal kimlik URL'sini ve UUID'yi döndüren bir yardımcı işlev tanıtın ve
taahhüt mesajlarında meta veriler oluştururken.

svn.useSvnsyncProps, svn-remote. .useSvnsyncprops
useSvmProps seçeneğine benzer şekilde; bu, kullanıcıların svnsync(1) komut
SVN 1.4.x ve üstü ile dağıtılır.

svn-uzaktan. .rewriteKök
Bu, kullanıcıların alternatif URL'lerden depolar oluşturmasına olanak tanır. Örneğin, bir
yönetici çalıştırabilir git svn sunucuda yerel olarak (file:// üzerinden erişim) ancak dilek
depoyu meta verilerde genel bir http:// veya svn:// URL'si ile dağıtmak için
kullanıcıları genel URL'yi görecektir.

svn-uzaktan. .rewriteUUID
useSvmProps seçeneğine benzer şekilde; bu, UUID'yi yeniden eşlemesi gereken kullanıcılar içindir
manuel olarak. Bu, orijinal UUID'nin mevcut olmadığı durumlarda faydalı olabilir.
useSvmProps veya useSvnsyncProps aracılığıyla.

svn-uzaktan. .pushurl
Git'inkine benzer uzak. .pushurl, bu anahtar şu durumlarda kullanılmak üzere tasarlanmıştır:
url alternatif sağlamak için salt okunur bir aktarım yoluyla bir SVN deposuna işaret eder.
okuma/yazma taşıma. Her iki anahtarın da aynı depoya işaret ettiği varsayılır.
aksine taahhüt, itmek bir temel yoldur. Eğer ikisinden biri taahhüt or itmek olabilir
Kullanılmış, taahhüt öncelik kazanır.

svn.brokenSymlinkGeçici çözüm
Bu, kontrol edilen bozuk sembolik bağlantıların geçici çözümü için pahalı olabilecek kontrolleri devre dışı bırakır.
Bozuk istemciler tarafından SVN. Bir SVN deposunu izliyorsanız, bu seçeneği "yanlış" olarak ayarlayın.
sembolik olmayan birçok boş blob. Bu seçenek şu anda değiştirilebilir: git svn is
çalışır ve alınan bir sonraki revizyonda yürürlüğe girer. ayarlanmamışsa, git svn bunu varsayar
"doğru" seçeneği.

svn.yol adı kodlaması
Bu, git svn'ye belirli bir kodlamaya yol adlarını yeniden kodlaması talimatını verir. tarafından kullanılabilir
Windows kullanıcıları ve dosya adlarının bozulmasını önlemek için utf8 olmayan yerel ayarlarda çalışanlar tarafından
ASCII olmayan karakterlerle. Geçerli kodlamalar, Perl's Encode tarafından desteklenen kodlamalardır.
modülü.

svn-uzaktan. .automkdirs
Normalde, "git svn klonu" ve "git svn rebase" komutları boş alanları yeniden oluşturmaya çalışır.
Subversion deposundaki dizinler. Bu seçenek "yanlış" olarak ayarlanırsa,
o zaman boş dizinler yalnızca "git svn mkdirs" komutu çalıştırıldığında oluşturulur
açıkça. ayarlanmamışsa, git svn bu seçeneğin "doğru" olduğunu varsayar.

noMetadata, rewriteRoot, rewriteUUID, useSvnsyncProps ve useSvmProps seçeneklerinden beri
tümü tarafından oluşturulan ve kullanılan meta verileri etkiler. git svn; onlar , eğer mülteci statüleri sona erdirilmemişse Amerika'ya geldikten bir yıl sonra içinde ayarlanmak
Herhangi bir geçmiş içe aktarılmadan önce yapılandırma dosyası ve bu ayarlar asla
ayarlandıktan sonra değiştirilir.

Ayrıca, svn-remote bölümü başına bu seçeneklerden yalnızca biri kullanılabilir, çünkü bunlar
etkilemek git-svn kimliği: olabilecek rewriteRoot ve rewriteUUID hariç meta veri satırı
birlikte kullanılır.

KLASİK ÖRNEKLER


Subversion tarafından yönetilen bir projenin ana hattını izlemek ve katkıda bulunmak (etiketler ve
dallar):

# Bir depoyu klonlayın (git klonu gibi):
git svn klonu http://svn.example.com/project/trunk
# Yeni klonlanan dizini girin:
cd gövdesi
# Ana dalda olmalısınız, 'git şubesi' ile iki kez kontrol edin
git şubesi
# Biraz iş yapın ve yerel olarak Git'e bağlı kalın:
git taahhüt ...
# SVN'ye bağlı bir şey var, yerel değişikliklerinizi
# SVN'deki son değişiklikler:
git svn yeniden tabanı
# Şimdi (daha önce Git kullanılarak yapılan) değişikliklerinizi SVN'ye aktarın,
# ve ayrıca çalışan HEAD'inizi otomatik olarak güncelleme:
git svn dcommit
# Varsayılan Git hariç tutma dosyasına svn:ignore ayarlarını ekleyin:
git svn show-ignore >> .git/info/exclude

Subversion tarafından yönetilen bir projenin tamamını izleme ve katkıda bulunma (bir ana hat ile birlikte,
etiketler ve dallar):

# Standart SVN dizin düzenine sahip bir depoyu klonlayın (git klonu gibi):
git svn klonu http://svn.example.com/project --stdlayout --önek svn/
# Veya, depo standart olmayan bir dizin düzeni kullanıyorsa:
git svn klonu http://svn.example.com/project -T tr -b dal -t etiketi --prefix svn/
# Klonladığınız tüm dalları ve etiketleri görüntüleyin:
git şube -r
# SVN'de yeni bir şube oluştur
git svn şube waldo
# Master'ınızı bagaja sıfırlayın (veya 'trunk' yerine başka bir şubeye)
# uygun adla):
git reset --hard svn/gövde
# Aynı anda yalnızca bir dal/etiket/ana hat için taahhütte bulunabilirsiniz. Kullanım
dcommit/rebase/show-ignore sayısı yukarıdakiyle aynı olmalıdır.

Başlangıç git svn clone oldukça zaman alıcı olabilir (özellikle büyük Subversion için
depolar). Birden fazla kişi (veya birden fazla makineye sahip bir kişi) kullanmak isterse git
svn aynı Subversion deposuyla etkileşim kurmak için ilk adımı yapabilirsiniz. git svn clone
bir sunucudaki bir depoya ve her kişinin bu depoyu klonlamasını sağlayın git clone:

# İlk içe aktarmayı bir sunucuda yapın
ssh sunucusu "cd /pub && git svn klonu http://svn.example.com/project [seçenekler...]"
# Yerel olarak klonla - referansların/uzaktan kumandaların/boşluğun sunucuyla eşleştiğinden emin olun
mkdir projesi
cd projesi
git init
git uzaktan kaynak sunucu ekle:/pub/project
git config --replace-all remote.origin.fetch '+refs/remotes/*:refs/remotes/*'
git getir
# Gelecekte uzak Git sunucusundan getirmeyi/çekmeyi önleyin,
# sadece gelecekteki güncellemeler için git svn kullanmak istiyoruz
git config --remove-bölüm remote.origin
# Az önce getirilen dallardan birinden yerel bir şube oluşturun
git checkout -b ana FETCH_HEAD
# 'git svn'yi yerel olarak başlatın (aynı URL'yi kullandığınızdan emin olun ve
# --stdlayout/-T/-b/-t/--sunucuda kullanıldığı şekliyle önek seçenekleri)
git svn başlatma http://svn.example.com/project [seçenekler...]
# Subversion'dan en son değişiklikleri çekin
git svn yeniden tabanı

YENİDEN BAZ VS. ÇEK/BİRLE


kullanmayı tercih git svn yeniden baz almak or git yeniden baz almakYerine, git Çek or git birleştirme için
entegre edilmemiş taahhütleri bir ile senkronize et git svn dal. Bunu yapmak, geçmişi koruyacak
entegre edilmemiş, yukarı akış SVN deposuna göre doğrusal taahhüt eder ve kullanıma izin verir
tercih edilen git svn taahhüt entegre edilmemiş taahhütleri SVN'ye geri göndermek için alt komut.

Aslında, git svn geliştiricilerin git svn dalı.
Bunun nedeni, yazarın git svn set-tree B'yi tek bir kafa işlemek yerine git svn set-tree B'yi tercih etmesiydi.
birden fazla taahhütte bulunmak için git svn set-tree A..B gösterimi. Kullanımı git Çek or git
birleştirme git svn set-tree A..B ile, aşağıdaki durumlarda doğrusal olmayan geçmişin düzleştirilmesine neden olur
SVN'ye taahhütte bulunmak ve bu, birleştirme taahhütlerinin beklenmedik bir şekilde öncekini tersine çevirmesine yol açabilir
SVN'de taahhüt eder.

BİRLEŞTİRMEK TAKİP


Süre git svn depolar için kopyalama geçmişini (dallar ve etiketler dahil) izleyebilir
standart bir düzen benimseyerek, git içinde gerçekleşen birleştirme geçmişini henüz temsil edemez
SVN kullanıcılarına geri akış. Bu nedenle, kullanıcıların geçmişi olabildiğince doğrusal tutmaları önerilir.
SVN ile uyumluluğu kolaylaştırmak için Git'in içinde mümkündür (aşağıdaki UYARILAR bölümüne bakın).

TAŞIMA OF SVN ŞUBELER


If git svn dalları alacak şekilde yapılandırılmıştır (ve --follow-branches etkindir),
bazen bir SVN dalı için birden çok Git dalı oluşturur, burada ek dallar
formun isimleri var şubeadı@nnn (nnn ile bir SVN revizyon numarası). Bu ek
şubeler oluşturulursa git svn bir SVN'deki ilk taahhüt için bir üst taahhüt bulamıyor
şube, şubeyi diğer şubelerin geçmişine bağlamak için.

Normalde, bir SVN dalındaki ilk taahhüt, bir kopyalama işleminden oluşur. git svn irade
şubenin oluşturulduğu SVN revizyonunu almak için bu taahhüdü okuyun. Daha sonra deneyecek
bu SVN revizyonuna karşılık gelen Git taahhüdünü bulun ve bunu ebeveyn olarak kullanın.
Şube. Ancak, hizmet vermek için uygun bir Git taahhüdü olmaması mümkündür.
ebeveyn. Bu, diğer nedenlerin yanı sıra, SVN şubesi bir revizyonun kopyasıysa gerçekleşir.
bu tarafından getirilmedi git svn (örneğin, atlanan eski bir revizyon olduğu için
--revizyon) veya SVN'de tarafından izlenmeyen bir dizin kopyalanmışsa git svn (gibi
hiç izlenmeyen dal veya izlenen bir dalın alt dizini). Bu durumlarda,
git svn yine de bir Git dalı oluşturacak, ancak mevcut bir Git taahhüdünü
şubenin ebeveyni, şubenin kopyalandığı dizinin SVN geçmişini okuyacaktır.
uygun Git taahhütlerinden oluşturun ve oluşturun. Bu, "Başlatılıyor
ebeveyn: ".

Ek olarak, adında özel bir dal oluşturacaktır. @, Burada
şubenin kopyalandığı SVN revizyon numarasıdır. Bu şube
şubenin yeni oluşturulan üst taahhüdünü işaret edin. SVN'de ise şube silindi
ve daha sonra farklı bir sürümden yeniden yaratıldığında, bir
@.

Bunun, tek bir SVN revizyonu için birden çok Git taahhüdü oluşturulduğu anlamına gelebileceğini unutmayın.

Bir örnek: standart bir ana hat/etiket/dal düzenine sahip bir SVN deposunda, bir dizin
trunk/sub r.100'de oluşturulur. r.200'de, trunk/sub dallara/'ye kopyalanarak dallanır.
git svn clone -s daha sonra bir şube oluşturacak alt. Ayrıca, yeni Git taahhütleri oluşturacaktır.
r.100'den r.199'a kadar ve bunları şube geçmişi olarak kullanın alt. Böylece iki Git olacak
r.100'den r.199'a kadar olan her revizyon için taahhüt eder (biri ana hat/, biri
gövde/alt/). Son olarak, bir şube oluşturacak alt@200 yeni ebeveyn taahhüdüne işaret ederek
şube alt (yani r.200 ve trunk/sub/ için taahhüt).

UYARILAR


Basitlik ve Subversion ile birlikte çalışma adına, tüm
git svn kullanıcılar doğrudan SVN sunucusundan klonlar, getirir ve taahhüt eder ve tüm git
clone/Çek/birleştirme/itmek Git depoları ve şubeler arasındaki işlemler. Tavsiye edilen
Git şubeleri ve kullanıcılar arasında kod alışverişi yöntemi git biçim yama ve git am,
ya da sadece SVN deposuna 'bağlanmak'.

Koşu git birleştirme or git Çek planladığınız bir şubede önerilmez. taahhüt itibaren
çünkü Subversion kullanıcıları yaptığınız birleştirmeleri göremez. Ayrıca, birleştirirseniz veya
bir SVN şubesinin aynası olan Git şubesinden çekin, taahhüt yanlış işleyebilir
dalı.

Birleştirme yaparsanız, aşağıdaki kurala dikkat edin: git svn taahhüt üstüne taahhüt etmeye çalışacak
adlı SVN taahhüdü

git log --grep=^git-svn-id: --first-parent -1

Sen , eğer mülteci statüleri sona erdirilmemişse Amerika'ya geldikten bir yıl sonra bu nedenle taahhüt etmek istediğiniz şubenin en son taahhüdünün
olduğunu ilk birleştirmenin ebeveyni. Aksi takdirde kaos ortaya çıkacaktır, özellikle de ilk
ebeveyn, aynı SVN dalında daha eski bir taahhüttür.

git clone refs/remotes/hiyerarşi veya herhangi biri altındaki dalları klonlamaz git svn
meta veriler veya yapılandırma. Böylece, kullanılarak oluşturulan ve yönetilen depolar git svn kullanmalı
rsync klonlama için, eğer klonlama yapılacaksa.

Dan beri taahhüt dahili olarak rebase kullanır, herhangi bir Git şubesi git itmek önce taahhüt on
uzak depodaki mevcut başvurunun üzerine yazmaya zorlamayı gerektirecektir. Bu
genellikle kötü uygulama olarak kabul edilir, bkz. git-itme(1) ayrıntılar için belgeler.

--amend seçeneğini kullanmayın git-taahhüt(1) daha önce taahhüt ettiğiniz bir değişiklik üzerine. Bilişim Teknoloji
- zaten uzak bir depoya gönderdiğiniz taahhütleri değiştirmek için kötü bir uygulama olarak kabul edilir
diğer kullanıcılar için ve SVN ile dcommit buna benzer.

Bir SVN deposunu klonlarken, depoyu tanımlama seçeneklerinden hiçbiri yoksa
düzen kullanılır (--trunk, --tags, --branches, --stdlayout), git svn clone Git oluşturacak
dalların ve etiketlerin ayrı olarak göründüğü tamamen doğrusal geçmişe sahip depo
çalışan kopyadaki dizinler. Bu, eksiksiz bir kopyayı almanın en kolay yolu olsa da
depo, birçok şubesi olan projeler için birçok kez çalışan bir kopyaya yol açacaktır
sadece bagajdan daha büyük. Böylece standart dizin yapısını kullanan projeler için
(gövde/dallar/etiketler), seçenekle klonlanması önerilir --stdlayout. eğer proje
standart olmayan bir yapı kullanır ve/veya dallar ve etiketler gerekli değilse, en kolayıdır
herhangi bir depo düzeni vermeden yalnızca bir dizini (tipik olarak gövde) klonlamak
seçenekler. Dallar ve etiketlerle tam geçmiş gerekiyorsa, seçenekler --gövde /
--dallar / --etiketler kullanılmalıdır.

Birden çok --dal veya --etiket kullanırken, git svn adı otomatik olarak işlemez
çarpışmalar (örneğin, farklı yollardan iki dal aynı ada sahipse veya bir
dal ve etiket aynı ada sahiptir). Bu durumlarda, kullanın init Git'inizi kurmak için
depo o zaman, ilkinden önce almak, $GIT_DIR/config dosyasını düzenleyin, böylece
dallar ve etiketler farklı ad boşluklarıyla ilişkilendirilir. Örneğin:

dallar = kararlı/*:başvurular/uzaktan kumandalar/svn/kararlı/*
dallar = hata ayıklama/*:refs/uzaktan kumandalar/svn/debug/*

onworks.net hizmetlerini kullanarak git-svn'yi çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad