Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü 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-merge-changelog komutudur.
Program:
ADI
git-merge-changelog - GNU ChangeLog dosyaları için git birleştirme sürücüsü
AÇIKLAMA
'git' varsayılan birleştirme sürücüsü her zaman kamuoyunu çekerken çatışmalar üretir
özel olarak değiştirilmiş bir ChangeLog dosyasındaki değişiklikler. Bunun nedeni ChangeLog dosyalarının
her zaman en üstte değiştirilir; varsayılan birleştirme sürücüsünün nasıl başa çıkacağına dair hiçbir fikri yok
Bugün nasılsın. Ayrıca, çatışmalar şundan daha fazla <<<< ==== >>>> işaretçisi ile sunulur:
gerekli; bunun nedeni, varsayılan birleştirme sürücüsünün
Bir ChangeLog girişi içinde bireysel satır değişiklikleri.
Bu program, bu sorunları önleyen bir 'git' birleştirme sürücüsü görevi görür.
1. ChangeLog girişleri her ikisinde de en üste eklendiğinde herhangi bir çakışma oluşturmaz.
kamu ve özel modifikasyonda. Özel olarak eklenen girişleri yukarıya koyar
herkese açık olarak eklenen girdiler.
2. ChangeLog dosyalarının yapısına uyar: girdiler satırlara bölünmez, ancak
birlikte tutulur.
3. Ayrıca, geçmişteki ChangeLog girişlerinin küçük değişiklikleri veya
Kaldırılan ChangeLog girişleri: beklendiği gibi birleştirilirler.
4. Çakışmalar, oluştukları yerden ziyade dosyanın en üstünde sunulur, bu nedenle
kullanıcının onları hemen göreceği şekilde. (Bazılarında yazılmış kaynak kodun aksine
programlama dili, birkaç yüz satırdan oluşan çakışma işaretçileri
top herhangi bir sözdizimi hatasına neden olmaz ve bu nedenle kalması muhtemeldir
fark edilmeden.)
Her Ticaretçi İçin Mükemmellik git kullanıcılar:
- Ödemenin .git/config dosyasına (veya $HOME/.gitconfig dosyanıza) satırları ekleyin
[birleştirme "değişiklik günlüğü"]
name = GNU stili ChangeLog birleştirme sürücüsü
sürücü = /usr/bin/git-merge-changelog %O %A %B
- ChangeLog dosyası içeren her dizinde, bir '.gitattributes' dosyası ekleyin.
bu hat:
ChangeLog birleştirme=birleştirme-değişiklik günlüğü
(Daha fazla bilgi için "man 5 gitattributes" bölümüne bakın.)
Her Ticaretçi İçin Mükemmellik bzr kullanıcılar:
- Şurada listelenen 'extmerge' bzr eklentisini kurun
<http://doc.bazaar.canonical.com/plugins/en/index.html>
<http://wiki.bazaar.canonical.com/BzrPlugins>
- $HOME/.bazaar/bazaar.conf satırınıza ekleyin
external_merge = git-merge-changelog %b %T %o
- Ardından, bir ChangeLog dosyasındaki bir çakışmayı birleştirmek için şunu kullanın:
$ bzr extmerge ChangeLog
Her Ticaretçi İçin Mükemmellik hg kullanıcılar:
- $HOME/.hgrc dosyanıza satırları ekleyin
[birleştirme desenleri]
ChangeLog = git-merge-changelog
[birleştirme araçları]
git-merge-changelog.executable = /usr/bin/git-merge-changelog
git-merge-changelog.args = $temel $yerel $diğer
Görmekhttp://www.selenic.com/mercurial/hgrc.5.html> bölüm birleştirme araçları referans için.
Kullanım as an alternatif için 'fark3':
git-merge-changelog, yalnızca yeniden sıralanmış argümanlarla "diff3 -m" ile aynı rolü gerçekleştirir:
$ git-merge-changelog %O %A %B
karşılaştırılabilir
$ fark3 -m %A %O %B
çağrı ortak düşünce:
Bir birleştirme sürücüsü, üç dosya adı bağımsız değişkeniyle çağrılır:
1. %O = %A ve %B'nin ortak atası.
2. %A = Dosyanın "geçerli daldan" içeriği.
3. %B = Dosyanın "diğer daldan" içeriği; bu birleştirilen içerik
Lütfen
Bir "git stash application" veya yukarı yönde bir çekme durumunda (örn.
merkezi bir bakıcı) veya --rebase ile aşağı yönde bir çekme:
2. %A = Dosyanın en yeni çekilen içeriği; diğer taahhütler tarafından değiştirilmiştir.
3. %B = Kullanıcının dosyanın en yeni kopyası; kullanıcı tarafından değiştirilir.
Aşağı yönde bir çekme (örneğin, merkezi bir depodan kullanıcıya) veya bir
--rebase ile yukarı yönde çekme:
2. %A = Kullanıcının dosyanın en yeni kopyası; kullanıcı tarafından değiştirilir.
3. %B = Dosyanın çekilen en yeni içeriği; diğer taahhütler tarafından değiştirilmiştir.
Birleştirilmiş çıktısını %A dosyasına yazmalıdır. Ayrıca bazı açıklamaları stdout'a yansıtabilir.
Birleştirme temiz bir şekilde veya sıfır olmayan bir şekilde çözülebilirse, dönüş kodu 0 ile çıkmalıdır.
çakışmalar varsa kodu döndürün.
Ne kadar it çalışır:
ChangeLog dosyasının yapısı: ChangeLog girişlerinden oluşur. Bir ChangeLog girişi
boş bir satırı izleyen bir satırda başlar ve boşluk olmayan bir karakterle başlar,
veya bir dosyanın başında. Birleştirme sürücüsü aşağıdaki gibi çalışır:
dosyaları belleğe alır ve onları ChangeLog girişlerine ayırır. Daha sonra farklılıkları bulur
%O ve %B arasında. Bunlar şu şekilde sınıflandırılır:
- kaldırmalar (bazı ardışık girişler kaldırıldı),
- değişiklikler (bazı ardışık girdiler kaldırıldı, bazı ardışık girdiler eklendi),
- eklemeler (bazı ardışık girişler eklendi).
Sürücü daha sonra değişiklikleri %A'ya uygulamayı dener. Bu amaçla, önce bir hesaplar
bulanık dize kullanarak %O içindeki girişler ile %A içindeki girişler arasındaki yazışmalar
hala değiştirilen girişleri tanımlamak için eşleştirme.
- Kaldırmalar tek tek uygulanır. Giriş, %A'da herhangi bir konumda mevcutsa,
kaldırıldı. Değilse, kaldırma işlemi çakışma olarak işaretlenir.
- %B'nin üstündeki eklemeler, %A'nın üstüne uygulanır.
- %B'deki x girişi ile y girişi (y dosya sonu olabilir) arasındaki eklemeler uygulanır
%A'daki x girişi ile y girişi arasında (hâlâ varlarsa ve hala ardışıklarsa)
%A), aksi takdirde eklemeler çakışma olarak işaretlenir.
- Değişiklikler "basit değişiklikler" olarak sınıflandırılır:
entry1 ... entryn ile eşlenir
eklenen_entry ... eklendi_entry modifiye_entry1 ... modifiye_entryn, burada
entry_i ve modifiye_entry_i arasındaki yazışmalar hala açık; ve "büyük değişiklikler":
bunların hepsi geri kalanı. %B'nin üst kısmındaki basit değişiklikler,
%A'nın en üstüne girdiler eklendi. Basit değişikliklerdeki değişiklikler tek tek uygulanır;
muhtemelen tek girişli çatışmalara yol açar. Büyük değişiklikler blok halinde uygulanır, muhtemelen
birden çok girişi kapsayan çatışmalara yol açar.
- Çakışmalar dosyanın en üstünde çıkar ve çıkış durumunun 1 olmasına neden olur.
onworks.net hizmetlerini kullanarak git-merge-changelog'u çevrimiçi kullanın