OS X kaynak çatalları, normal dosyalara eklenen alternatif veri akışlarıdır. Dosyanın özel simgesini, renkli etiketini, anahtar kelimelerini veya kullanıcı veya uygulamalar tarafından ayarlanan diğer meta verileri içerebilir.
Bunlar doğal olarak OS X'in HFS + dosya sistemi tarafından desteklenen, ancak OS X onlar sözde "dotbar" dosyalarında saklanır (NFS, SMB) uzak (FAT32) yerel veya ister başka dosya sistemi, bağlar zaman vardır: normal dosyanın kaynak çatalı name.ext
olan başka bir normal ama gizli dosyada saklanır ._name.ext
. ( .DS_Store
Simge, sütun görünümü veya penceresinin konumu gibi bir dizinin görünüm ayarlarını saklayan dosyalarla karıştırılmamalıdır .)
Dotbar ._
dosyaları ile ilgili sorun , hedef dosya sisteminde, orijinal dosya ile aynı uzantıya sahip gerçek normal dosyalar olmalarıdır, bu nedenle çeşitli yollarla tahribat yaratır. Örneğin, Ant ve Maven ._MyClass.java
derlenecek başka bir Java dosyası olarak görecekler .
OS X'in kaynak çatallarını SMB adlı akışlarda depolamak üzere yapılandırılabileceğini ve Samba'nın adlandırılmış akışları POSIX genişletilmiş özniteliklerinde veya alternatif olarak başka bir yerde bir depo dizininde depolamak için yapılandırılabileceğini görüyorum .
Her iki çözüm de hedef dosya sistemini kirleten dotbar dosyaları sorununu çözecektir, ancak ikisini de çalıştıramıyorum.
xattr
İlk önce xattr ile denedim:
vfs objects = streams_xattr
kernel oplocks = no
İkinci seçenek bu hatadan kaynaklanmaktadır . OS X'e, bunu paylaşmadan önce bunu paylaşımın kökünde yaparak kullanmasını söyledim:
touch .com.apple.smb.streams.on
Ama bir dosyayı Finder ile kopyalamaya çalıştığımda şu hatayı aldım:
Finder işlemi tamamlayamıyor çünkü “hello.java” daki bazı veriler okunamıyor veya yazılamıyor.
(Hata kodu -36)
Depo
Sonra depo ile denedim:
vfs objects = streams_depot
.com.apple.smb.streams.on
paylaşımın kökünde bırakarak . Aynı dosyayı Finder ile kopyalamaya çalışırken başka bir hata aldım:
Beklenmedik bir hata oluştuğu için işlem tamamlanamıyor
(hata kodu -50)
OS X'in bu iki seçenekten biriyle nasıl çalışmasını sağlayabilirim? Amacım bu iğrençleri ._
paylaşılan dizinlerden çıkarmak.
Ben sadece dotbar dosyalarını veto'lama denedim:
veto files = /._*/
delete veto files = yes
Ancak bu, bazı uygulamaların başarısız olmasına neden olur, örneğin, takılı bir SMB paylaşımı üzerinden OS X'ten çalıştırıldığında Mercurial .
İstemci olarak OS X 10.9.5 kullanıyorum; Sunucu olarak Debian Wheezy'den Samba 3.6.6.
Düzenleme: İşte yapılandırmam istendiği gibi:
[global]
security = user
invalid users = root
workgroup = COMPANY_NAME
encrypt passwords = true
panic action = /usr/share/samba/panic-action %d
syslog = yes
syslog only = yes
# PERFORMANCE TUNING
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
read raw = true
write raw = true
use sendfile = true
min receivefile size = 16384
aio read size = 16384
aio write size = 16384
max xmit = 131072
getwd cache = true
# DEFAULT OPTIONS FOR ALL SHARES
writeable = true
force group = company_group
create mask = 664
security mask = 664
force create mode = 664
force security mode = 664
directory mask = 2775
directory security mask = 2775
force directory mode = 2775
force directory security mode = 2775
# solve problem where OS X clients remove mode 0100
map archive = no
[homes]
browseable = no
unix extensions
yönergeyi[global]
oturuma değiştirmeye çalıştınız mı? Sorunuzutestparm
komuttan gelen çıktı ile güncelleyebilir misiniz ?