Ana içeriğe geç

kule home

Bir görevin komutlarının ev dizininize yazdıklarını (~/.zshrc, ~/.config, ~ dizininin en üstündeki yeni dosyalar) inceleyin; sonra uygulayın, atın ya da bir uygulamayı geri alın.

Kullanım​

kule home [OPTIONS] <TASK> [COMMAND]
Alt komutNe yapar
listİnceleme için yakalanan yazmaları listeler (varsayılan).
diffBir değişikliğin dosyanıza ne yapacağını satır satır gösterir.
applyDeğişiklikleri gerçek ev dizininize uygular.
discardDeğişiklikleri atar.
undoSon uygulamayı geri alır.

Sıraya dikkat edin: görev, alt komuttan önce gelir (kule home 1046fb30 diff ~/.zshrc).

Açıklama​

Ajanlar ve araçlar ev dizininize sık sık yazar: git config --global, ~/.zshrc'ye eklenen bir satır, ~/.config altındaki bir aracın ayarları. Kule'de bu yazmalar reddedilmez, ama ev dizininize de ulaşmaz. Bir görevin komutları HOME olarak bir ev katmanı (home layer, <task>/home) görür: ev dizininizin en üstündeki küçük dosyalar ve ~/.config orada kopyadır, geri kalan her şey sizinkine giden bir bağlantıdır. Bir komutun katmana yazdığı şey inceleme için yakalanır. Bkz. Ev katmanı.

  • Ev dizinindeki bir değişiklik hiçbir zaman bir kule commit'in parçası olmaz. Onun hakkındaki kararı burada verirsiniz.
  • apply, önce dosyanızın katman oluşturulduğu andaki hâlinde durup durmadığını denetler ve yerine geçtiği şeyi görevin home-kept/ klasöründe saklar.
  • Kabukların ve araçların açılırken okuyup çalıştırdığı dosyalar (.zshrc, .profile, .gitconfig, ~/.config/fish, ~/.config/autostart, systemd kullanıcı birimleri, …) runs every time a shell or tool starts (bir kabuk ya da araç her açıldığında çalışır) olarak işaretlenir. Bunları uygulamadan önce diff'lerine bakın.
  • Değişiklikler beklerken katman, bir çalıştırmadan diğerine olduğu gibi kalır. Bekleyen değişiklik kalmayınca bir sonraki çalıştırma ev dizininizin o anki hâlinden başlar.
  • Katmandaki gizli değere benzeyen ayarlar (export GITHUB_TOKEN=…) görevin komutlarına maskelenmiş görünür; bir uygulama sizin değerinizi geri koyar.

Yolları yazmak​

Yolları list'in yazdığı gibi verin: ~/.zshrc ya da ~/.config/demo/conf gibi. Aşağıdakilerin hepsi aynı dosyayı gösterir: kabuk ~'yi ev dizininizin tam yoluna çevirebilir, Kule onu da kabul eder. Ev dizininizin dışındaki ya da içinde .. geçen bir yol reddedilir.

kule home 1046fb30 diff ~/.zshrc # kabuk ~'yi açar; sorun değil
kule home 1046fb30 diff '~/.zshrc' # tırnaklı; sorun değil
kule home 1046fb30 diff .zshrc # ev dizininize göre; sorun değil
kule home 1046fb30 diff /Users/you/.zshrc # ev dizininizin tam yolu; sorun değil

Tüm alt komutlar --home alır (sizin değil, Kule'nin ev dizini; bkz. genel seçenekler).

kule home TASK list​

kule home <TASK> list [OPTIONS]
$ kule home 1046fb30
in your home, caught for review (3; `kule home 1046fb30 apply PATH` takes one there):
+ ~/.config/demo/
+ ~/.config/demo/conf
~ ~/.zshrc (runs every time a shell or tool starts)

+ yeni, ~ değişmiş, - silinmiş demektir. Sondaki / bir klasörü gösterir; -> yeni bir bağlantının nereyi gösterdiğini belirtir. Hiçbir şey yakalanmadıysa: nothing written in your home.

kule exec, kule status ve uygulamadaki Review aynı listeyi gösterir.

kule home TASK diff​

kule home <TASK> diff [OPTIONS] <PATH>
$ kule home 1046fb30 diff ~/.zshrc
--- ~/.zshrc (yours)
+++ ~/.zshrc (the task's)
@@ line 226 @@
export GITHUB_TOKEN=‹hidden 3fa9c2›
. "$HOME/.cargo/env"
+export FOO=1

Gizli değere benzeyen her şey iki tarafta da gizlenir: anahtar, token ya da parola gibi adlandırılmış bir ayarın değeri, Kule'nin sakladığı bir gizli değer ve token'a benzeyen her şey. Her biri ‹hidden …› olarak görünür. Aynı değer o diff'in her yerinde aynı işareti alır; böylece değişen bir gizli değer yine değişmiş olarak okunur. İşaretler bir diff'ten diğerine değişir.

Metin olmayan bir dosya için not text, so not shown, çok büyük bir dosya için too large to show yazar. Uzun bir diff (cut here: the change is longer) ile biter.

kule home TASK apply​

kule home <TASK> apply [OPTIONS] [PATHS]...
Argüman / seçenekAnlamı
PATHS...Uygulanacak yollar, listelendiği gibi.
--allBu görev için yakalanan her değişiklik.
$ kule home 1046fb30 apply '~/.config/demo' '~/.config/demo/conf'
applied ~/.config/demo
applied ~/.config/demo/conf
$ kule home 1046fb30 apply '~/.gitconfig'
applied ~/.gitconfig
what they replaced is kept in ~/.kule/tasks/1046fb30/home-kept/00000001792506123456

Son satır yalnızca uygulama sizin bir şeyinizin yerine geçtiyse ya da onu kaldırdıysa görünür. Her uygulama orada, ne zaman yapıldığına göre adlandırılmış kendi klasörünü alır.

Katman oluşturulduğundan beri dosyanız değiştiyse uygulama reddedilir; böylece sizin hiçbir şeyiniz görmeden üzerine yazılmaz.

kule home TASK discard​

kule home <TASK> discard [OPTIONS] [PATHS]...
Argüman / seçenekAnlamı
PATHS...Atılacak yollar, listelendiği gibi.
--allBu görev için yakalanan her değişiklik.
$ kule home 1046fb30 discard --all
discarded 3 changes

kule home TASK undo​

kule home <TASK> undo [OPTIONS]

Son uygulamayı, o yolları o zamandan beri değiştirmediyseniz geri alır. Değişiklikler sonra yeniden inceleme bekler.

$ kule home 1046fb30 undo
undid ~/.config/demo/conf
undid ~/.config/demo
the changes wait for review again

Hatalar ve çözümleri​

MesajNe yapmalı
kule: name the paths (as listed, like ~/.zshrc), or --allapply ve discard yollar ya da --all ister.
kule: /etc/hosts is not in your home (/Users/you)Yalnızca ev dizininizdeki yollar yakalanır. Yolu list'in yazdığı gibi verin.
kule: name a path inside your home, as listed, like ~/.zshrc (not ../x)Yol ev dizininizin dışına çıkıyor ya da ev dizininin kendisini gösteriyor.
kule: ~/.bashrc has no change waitingGörevin orada bekleyen bir yazması yok; bekleyenleri kule home TASK listeler.
nothing to apply at those pathsBu yollarda bekleyen bir değişiklik yok; kule home TASK ile bakın.
kule: nothing applied from this task's home to undoGeri alınacak bir uygulama yok.

Uygulamada​

Review, Writes in your home (ev dizininize yazılanlar) bölümünü commit'ten ayrı listeler; her birinin yanında Show (diff), Apply, Discard ve Undo vardır. Her açılışta çalışan bir dosya işaretlenir ve diff'i hemen açılır.

Ayrıca bakın​