Ana içeriğe geç

Görevler ve kopyalar

Görev nedir​

Görev (task), tek bir klasör üzerindeki tek bir iştir. Bir görev açtığınızda Kule:

  1. ona 1a2b3c4d gibi 8 onaltılık (hex) karakterlik bir kimlik verir;
  2. klasörün (çalışma klasörünün) bir kopyasını Kule'nin ev klasörü altında oluşturur;
  3. kopyanın yanında görevin ihtiyaç duyduğu her şeyi tutar: geçici dosyalar, paket önbellekleri, bir ev katmanı, adımlar ve kontrol noktaları.

Ajan yalnızca kopyada çalışır. Çalışma klasörü, siz commit, sync ya da undo yapana kadar yalnızca okunur.

kule new ~/code/app
task 1a2b3c4d · copy at ~/.kule/tasks/1a2b3c4d/w/app

Uygulamada: New task… (Mod+N) ve bir klasör seçin.

Kule'nin git'e ihtiyacı yoktur. Her klasör olur: kod, bir Markdown ya da Obsidian kasası (vault), fotoğraflar, indirilenler, CSV dosyaları, henüz güvenmediğiniz bir kurulum programı. Klasör bir git deposuysa Kule ayrıca .git'i de anlar (bkz. Git depoları).

Kopya nasıl oluşturulur​

NeredeNasılDisk alanı
macOS (APFS)Klasörün tek bir APFS klonuDosyalar değişene kadar neredeyse hiç
Linux, reflink destekli Btrfs ya da XFSDosya dosya, reflink ile (FICLONE)Yalnızca değişenler
Linux, ext4 ve reflink'i olmayan diğerleriDüz bir kopyaKlasörün tam boyutu, .git ve node_modules dahil
Disk araçları klonları tam boyutuyla sayar

Finder, du ve disk kullanım araçları her klonu tam boyutuyla sayar; bu yüzden ~/.kule gigabaytlarca yer kaplıyormuş gibi görünebilir. Gerçekte ne kadar kullanıldığını görmek için boş alana bakın (df -h ya da System Settings → General → Storage). Btrfs'te btrfs filesystem du doğruyu söyler.

Klonlar yalnızca aynı birimde oluşturulur. Başka bir diskteki bir klasör tamamen kopyalanır.

Görev neleri tutar​

Her şey ~/.kule/tasks/<id>/ altındadır:

KlasörNedir
w/<folder name>Ajanın çalıştığı kopya.
base/Klasörün son eşitlemedeki (sync) hâli; birleştirmek için kullanılır.
tmp/Görevin geçici dosyaları. tmp/caches/, görevin kendi paket önbelleklerini (npm, cargo, pip, Go ve diğerleri) tutar.
home/Ev katmanı: görevin komutlarının ev dizininiz olarak gördüğü yer.
steps-store/, checkpoints/Bir adıma geri dönmek ve undo için gerekenler.

macOS'ta görevin npm ve cargo önbellekleri sizinkilerin klonu olarak başlar; böylece bir görevin ilk kurulumu yeniden indirmez. Linux'ta boş başlarlar.

Gerçekten yer kaplayanlar: ajanın değiştirdiği ya da oluşturduğu dosyalar (derleme çıktıları da), bir görevin indirdiği paketler ve adımlarla kontrol noktalarının sakladığı eski içerikler.

Yok sayılan yollar​

Çalışma klasörünün .gitignore'unun dışarıda bıraktığı yollar (derleme çıktıları, önbellekler, .env) kopyada kalır. Siz istemedikçe bir commit onları geride bırakır: kule commit --include-ignored ya da uygulamada Also commit these. Yok sayma kuralları kopyadan değil, her zaman çalışma klasöründen gelir.

Birden çok görev​

Bir görevde aynı anda tek bir ajan çalışır. Ajanları yan yana çalıştırmak için, aynı klasör ya da başka klasörler üzerinde daha fazla görev açın.

Aynı klasör üzerindeki görevler birbirlerinin işini asla görmez. Kule, ikisi de hâlâ sürerken size nerede kesiştiklerini söyler: aynı fonksiyon, bölüm ya da anahtar; içine bakamadığında da aynı dosya. kule status bunu listeler (task 5e6f7a8b changes them too: task.rs · method Task::commit), uygulama da görevi işaretleyip Review altında gösterir. İkisi de commit ettiğinde ne olduğu için Eşitleme ve birleştirme sayfasına bakın.

Görevleri düzenleme​

NeKomut satırıUygulama
Görevleri uygulamadaki sırasıyla listelemekkule listTasks paneli
Bir göreve ad vermek (Downloads – march invoices)kule name⋮ menüsü → Rename… (F2)
Bir görevi renklendirmekkule color⋮ menüsü → renk örnekleri
Bir görevi listede taşımak–Sürükleyin ya da Alt+Shift+↑/↓
Bir görevi bir gruba koymakkule group putBir grubun üzerine sürükleyin ya da Group…
Bir görevi çatallamak (fork)–⋮ menüsü → Fork task (Mod+Shift+D) ya da Timeline → Fork from here
Bir görevi silmekkule rm⋮ menüsü → Delete

Çatallamak (fork), aynı klasör üzerinde, bu görevin kopyasından (şu anki hâlinden ya da bir adımdan sonraki hâlinden) başlayan yeni bir görev oluşturur. Çatal, görevin adını "(fork)" ekiyle, rengini, grubunu, bütçesini ve gizli değer yer tutucularını alır; kendine ait hiçbir adımı ya da commit'i olmaz. Bunu, mevcut yönü kaybetmeden başka bir yön denemek için kullanın.

Silmek klasörünüze asla dokunmaz. Görev ~/.kule/trash'e taşınır; Kule orayı arka planda boşaltır ve görevin kapladığı yer geri gelir.

İlgili​