İçeriğe geç

Yerleşik git

Bir Restorm projesi bir git deposu içinde yaşamak üzere tasarlanmıştır. Entegrasyon basit bir git commit’ten çok daha ileri gider: biçimi anlar ve bir çakışmayı YAML satırları düzeyinde değil, iş varlıkları düzeyinde çözmeyi bilir.

Yapılandırılacak hiçbir şey yok. Açık olan .restorm dosyası bir git deposu içinde bulunduğu anda git yüzeyleri etkinleşir.

Restorm kendi yerel git’inizi kullanır: ne kimlik bilgisi girmeniz gerekir ne de uygulama içinde token yönetilir. Kural basittir — git push sizin terminalinizde çalışıyorsa Restorm’da da çalışır. Git, istemler devre dışı bırakılarak başlatılır: parola isteyecek bir depo, arayüzü kilitlemek yerine git’in kendi mesajıyla hemen başarısız olur.

İki düğme, Gönder ve Çek; gönderilecek bir şey ya da çekilecek daha yeni bir sürüm olduğunda her biri bir nokta işareti (bir nokta, asla bir sayı) taşır.

Başlık çubuğundaki Git menüsü aynı eylemleri ve ayrıca Yenile, Sunucu sürümüne sıfırla ve Geçmiş girdilerini sunar.

Durum çubuğunun GIT hücresi: Yenile, Gönder ve Çek — son ikisi birer nokta işareti taşıyor — ardından Geçmiş. “Depoya gönder” ipucu açık durumda.

Push kipsel penceresi, yapısal diff’ten belirlenimci biçimde üretilmiş, önceden yazılmış bir commit mesajı gösterir — hiçbir dil modeli kullanılmadan. Değişen her varlık için (istek, senaryo, klasör, değişken klasörü) bir satır; asla alan başına bir satır değil.

  • Arayüz dilinden bağımsız bir mesaj dil seçici, bunu varsayılan hâline getirmek için bir anahtarla birlikte.
  • 72 karakterde bilgilendirici bir sayaç içeren, düzenlenebilir bir başlık.
  • Çok satırlı bir gövde.

Onaylamak şunları sırayla yapar: kaydetme, git add, commit, push.

Restorm önce kaydeder, ardından çeker ve birleştirir.

Temiz birleştirme: ağaç ve açık sekmeler yerinde yenilenir.

Çakışma: dört panelli bir çözüm görünümü açılır.

Dört panelli çakışma çözüm görünümü: solda çakışmaların listesi, sizin sürümünüz, sunucunun sürümü — ayrışan URL'ler kırmızıyla çerçevelenmiş — ve kendi sürümünüzü seçtikten sonra dolan “Çözülmüş” paneli.

Panelİçeriği
Çakışma listesiÇakışan varlıklar
Sizin sürümünüzSalt okunur
Onların sürümüSalt okunur
ÇözülmüşDüzenlenebilir — yazılacak olan budur

Önemli olan nokta: her panel varlığı kendi gerçek düzenleyicisinde gösterir — bir HTTP isteğini HTTP düzenleyicisinde, bir senaryoyu senaryo düzenleyicisinde. YAML içinde <<<<<<< işaretlerini çözmüyorsunuz, iki isteği karşılaştırıyorsunuz.

Her taraf için bir “bu sürümü kullan” düğmesi bulunur ve ayrışan alanlar kırmızıyla vurgulanır — yalnızca tek bir alan farklıysa panel doğrudan ilgili sekme üzerinde açılır.

Bir değişken klasörünün API dokümantasyonu otomatik olarak çözülür (en yeni sürüm kazanır).

İptal, bir git merge --abort çalıştırır. Çözümün tam ortasında uygulamayı kapatmak, bir sonraki başlatmada birleştirmeden vazgeçmenizi önerir.

Restorm daha yeni bir sürüm olup olmadığını düzenli olarak denetler — asla kendi başına birleştirmeden. Üç tetikleyici vardır: .git içinde gözlemlenen bir değişiklik, bir dosyanın açılması ve sıklığı Ayarlar ▸ Git altında ayarlanan bir zamanlayıcı (Kapalı, 15 dk, 30 dk, 1 sa, 4 sa, 12 sa, 24 sa).

Ardından bir “Güncelleme mevcut” bildirimi Pull now eylemini sunar.

Dosya açıldığından beri diskte değişmişse kaydetme reddedilir ve Restorm size Yeniden yükle ya da Kendi sürümünüzü koru seçeneklerini sorar.

Biçimin, .restorm projeleri ve dosyaları sayfasında anlatılan iki özelliği sayesinde: kanonik bir anahtar sırası ve kararlı biçimde türetilen tanımlayıcılar.

Sonuç: hiçbir şeyi değiştirmeden açıp yeniden kaydetmek hiçbir diff üretmez ve aynı yere aynı isteği ekleyen iki kişi, birleştirmenin eşleştirmeyi bildiği varlıklar üretir.

Git ▸ Geçmiş, iki bölmeli bir görünüm açar: bir dal oluğuyla birlikte commit’lerin listesi ve sağda ayrıntı. Bir commit’in bağlam menüsü, o sürümü geri almanızı sağlar.

Pro sürümünde dört araç: git_commit_push (2 adımdan 1’incisi — bir inceleme token’ı, başlığı, gövdeyi ve varlık başına diff’i döndürür, hiçbir şey yazmadan), git_confirm_push (2 adımdan 2’ncisi — proje inceleme sonrasında değiştiyse reddedilir), git_pull ve git_resolve_conflicts.

İki adıma bölme kasıtlıdır: bir ajan, önce bir diff sunulmadan push yapamaz.