Ana içeriğe geç

kule sync

Çalışma klasörünün, görevin son sync'inden beri değiştirdiklerini kopyaya alır (sync).

Kullanım​

kule sync [OPTIONS] <TASK>

Açıklama​

Bir görevin kopyası çalışma klasörünü kendiliğinden izlemez. Ajan, klasörün görev oluşturulduğu ya da son sync yapıldığı andaki hâli üzerinde çalışır. Bu arada gerçek klasörde bir dosyayı düzenlerseniz ya da başka bir görev oraya commit ederse, kopya bunu görmez. kule status bu dosyaları the workspace changed since the task's copy (çalışma klasörü, görevin kopyasından beri değişti) altında listeler.

kule sync bunları kopyaya alır:

  • Yalnızca çalışma klasörünün değiştirdiği bir dosya olduğu gibi gelir.
  • Görevin de değiştirdiği bir dosya fonksiyon, metot, bölüm ya da anahtar düzeyinde birleştirilir ve görevin değişikliği olarak kalır (yani kule status'ta görünür).
  • Herhangi bir şey birleşmezse hiçbir şey gelmez ve Kule iki tarafın da neyi değiştirdiğini adlandırır. Kopyanız olduğu gibi kalır.
  • Klasörün git deposundaki commit'ler, dallar ve stage'lenmiş dosyalar da gelir. İki tarafın da ilerlettiği bir dal gelmez.
  • .env gibi ayar dosyaları, kopyanın geri kalanı gibi maskelenmiş olarak gelir (bkz. Gizli değerler).

Çalışma klasörü yalnızca okunur. Bir sync'ten sonra adımlar, bir commit'ten sonraki gibi baştan başlar ve ajan bir sonraki turunun başında neyin geldiğini öğrenir.

Bir ajan çalışırken sync reddedilir; görevin sandbox'ında hâlâ çalışan programlar önce durdurulur.

Birleştirmenin nasıl çalıştığı için bkz. Sync ve birleştirme.

Argümanlar​

AdZorunluAnlamı
TASKevetGörevin tam kimliği. Bkz. Bir göreve ad vermek.

Seçenekler​

SeçenekDeğerVarsayılanAnlamı
--homeyol~/.kuleKule'nin ev klasörü (ya da KULE_HOME). Bkz. genel seçenekler.

Örnekler​

Alınacak bir şey yok:

$ kule sync 3efe1ca8
the copy has everything the workspace changed

Yalnızca klasörün değiştirdiği bir dosya ve ikisinin de değiştirdiği, birleştirilen bir dosya:

$ kule status 3efe1ca8
…
the workspace changed since the task's copy (kule sync 3efe1ca8 brings it in):
README.md
src/main.rs (the task changed it too)
$ kule sync 3efe1ca8
< README.md
~ src/main.rs (merged with the task's change)

Klasörün yeni git commit'leri:

$ kule sync 3efe1ca8
< the repository (commits, branches, the index)

İkisi de aynı fonksiyonu değiştirdi:

$ kule sync 3efe1ca8
kule: the folder and the task both changed: src/main.rs (both changed function greet); nothing was brought in
hint: commit or roll back the task's changes there first, or leave the copy as it is

Çıktı​

SatırAnlamı
< pathÇalışma klasöründeki hâliyle alındı.
~ path (merged with the task's change)İkisi de değiştirdi, farklı yerlerde; birleştirildi.
< the repository (commits, branches, the index)Klasörün git durumu geldi.
= path (the task's own kept: both changed it)Görevdeki hâliyle bırakıldı.
the copy has everything the workspace changedYapılacak bir şey yok.

Hatalar ve çözümleri​

MesajNe yapmalı
kule: the folder and the task both changed: <paths>; nothing was brought inİki taraf da aynı fonksiyonu, bölümü ya da anahtarı değiştirdi. Önce görevin oradaki değişikliğini commit edin ya da atın; ya da kopyayı olduğu gibi bırakıp çakışmayı commit sırasında çözün.
kule: an agent is at work in task <id> …Çalıştırmanın bitmesini bekleyin.

Uygulamada​

Review'daki Changed in the folder (klasörde değişenler) altında Bring into the copy (kopyaya al), görevin ⋮ menüsünde ya da Mod+Shift+G. Bkz. Review.

Ayrıca bakın​