uVersion
Türkçe
İndir →

Wiki

Dağıtım

Dosyaları (eklentiler, paylaşılan içerik) yol desenlerine göre bir kaynak depodan bir hedef depoya kopyalama. Yayınlama, yeniden eşleme, atlanan kilitler.

Giriş

Dağıtım, dosyaları (bir eklenti, paylaşılan bir içerik paketi) yol desenleri ile sınırlandırarak bir kaynak depodan bir hedef depoya kopyalar. Hedefte yeni revizyonlar oluşturur, böylece olağan artımlı senkronizasyon içeriği istemcilere yayar. Bu, aynı eklentiyi elle kopyalayıp yapıştırmadan birden çok proje arasında paylaşmanın yoludur.

Erişim ve roller

Diğer sekmelerden farklı bir erişim modeli Dağıtım, diğer sekmeler gibi korunmaz. manage_rules yeteneğini gerektirir; bu yetenek sunucunun tamamında admin ve lead tarafından tutulur. Hiçbir yeteneği bulunmayan bir project_admin, erişemez. lead ise herhangi bir depoyu başka herhangi bir depoya bağlayabilir.

Bağlantı oluşturma

New Link formu: Source Repository, Target Repository ve Path Patterns alanı.
  1. Distribution sekmesi → New Link.
  2. Source Repository: dosyaların geldiği depo.
  3. Target Repository: hedef depo (seçilen kaynak listeden çıkarılır; kaynak ve hedef aynı olamaz).
  4. Path Patterns: her satırda bir desen (örn. Plugins/MyPlugin/, Content/SharedAssets/). En az biri gereklidir.
  5. Create Link ile onaylayın.

Aynı iki depo arasında zaten var olan bir bağlantı reddedilir (çakışma). Her satır source → cible, desenlerini, kimin oluşturduğunu ve son yayınlama tarihini gösterir.

Yol desenleri

Bir desen, bir yolun herhangi bir yerinde görünüyorsa o yolla eşleşir («içerir» türünde arama). Dolayısıyla bir Plugins/uVersion deseni, proje öneki ne olursa olsun DefaultProject/Plugins/uVersion/Source/Foo.cpp ile eşleşir. Sondaki eğik çizgi hiçbir şeyi değiştirmez.

Yayınlama

Bekleyen dosyalar listesi (new/modified/locked) ve yayın özeti bilgi çubuğu.

Her bağlantı için üç işlem:

  • Show pending files (dosya simgesi): farklılık gösteren dosyaları new, modified veya locked olarak işaretleyip revizyonlarıyla birlikte listeler.
  • Publish history (saat): son 50 yayın (kaçı güncellendi / atlandı, kim, ne zaman).
  • Publish (gönder): kopyalamayı çalıştırır. Bir bilgi çubuğu «X kaynak dosya bulundu, Y güncellendi, Z atlandı (kilitli), W değişmedi» şeklinde özetler. Bağlantı pasifse devre dışıdır.

Hedefte kilitli bir dosya üzerine yazılmaz, atlanır. İçeriği aynı (aynı karma) olan bir dosya değişmemiş sayılır ve atlanır. Yayınlama atomiktir (tek bir işlem).

Bir bağlantıyı etkinleştirebilir / devre dışı bırakabilir veya silebilirsiniz.

Yeniden eşleme ve revizyonlar

Yol, hedef için yeniden yazılır: uVersion, eşleşen desenden önceki kısmı kaldırır, ardından hedefte algılanan öneki ekler. Örnek: kaynak DefaultProject/Plugins/uVersion/foo.cpp, desen Plugins/uVersion, hedef öneki CineDroneStudio/CineDroneStudio/Plugins/uVersion/foo.cpp. Hedef öneki, hedefteki mevcut bir dosyadan çıkarılır (proje alt klasörü olan veya olmayan depoların yönetimi).

Revizyon numaralandırma Dağıtılan revizyonlar, artımlı senkronizasyonun bunları alabilmesi için hedefin geçerli revizyonunun üzerinde küresel bir sayaç kullanır. Bu nedenle bir dosyanın geçmişi «atlayabilir» (örn. rev 1 sonra rev 200): bu görseldir. Parçalar (chunk) paylaşılır (veri çoğaltması yoktur, yalnızca bir referans artışı).

Sık karşılaşılan tuzaklar

«Publish» soluk görünüyor

Bağlantı pasif. Önce onu etkinleştirin. Pasif bir bağlantıyı yayınlamak açık bir hata döndürür.

Bir dosya hedefte güncellenmiyor

Ya hedef tarafında kilitlidir (bu durumda atlanır ve «locked» olarak sayılır) ya da içeriği zaten aynıdır («unchanged» olarak sayılır). Yayınlama özetine ve pending files listesine bakın.

Bir project_admin sekmeyi görmüyor

Bu kasıtlıdır: dağıtım manage_rules gerektirir (admin veya lead). Bir project_admin, kendi depolarında bile erişemez.