Windows için UnionFS benzeri dosya sistemi


12

Windows 7'de UnionFS gibi çalışan bir şey arıyorum. Kullanıcım: temiz kod çalışma dizini salt okunur bir dizinde olması ve derlenmiş ikili dosyaları mantıksal olarak aynı yerde, ancak fiziksel olarak depolayacak bir sendika dosya sisteminde derleme farklı dizin.

Kütüphaneler, Windows'ta UnionFS'de bir cevap olarak kabul edilmelerine rağmen, bu şekilde çalışmaz, klasörleri sanal olarak birleştirir - yalnızca üst düzey dizinleri tek bir yerde gösterirler.

Kodun kendisi çok büyük (2GB veri) ve bunu yapı sunucumdaki her derleme için kopyalamaktan kaçınmak istiyorum.


Hata! : - / Aynı problemi kendim çözmeye çalışıyorum ve neredeyse yeterince dikkatli okumadım. Yorumumu sileceğim. Windows platformuna neredeyse hiç aşinam yok. : - /
şeye kadir

Yanıtlar:


2

Bunu taklit etmek için sembolik bağlantılar kullanabilir misiniz? http://en.wikipedia.org/wiki/NTFS_symbolic_link Tam soruyu cevaplamıyor ancak bence verdiğiniz kullanım durumunu çözecek.


Nasıl yapabileceğini göremiyorum ... açıklayabilir misin?
liori

Yapı ağacınızın nasıl yapılandırıldığını bilmiyorum ama src, src / bin, src / obj gibi bir şey olduğunu varsayarsak, kodun olmasını istediğiniz yere bin ve obj sembolik bağlantılar olabilir. Yapınızın bu klasörleri tamamen silmediğinden emin olun. Alternatif olarak src'nin "salt okunur" un sembolik bağlantısı olması ve sonra salt okunur bağlantıların geri gitmesini sağlayın. Her iki durumda da çalışmasını sağlayabilirsiniz. Senaryoyu tamamen kaçırmadıkça.
MikeBaz - MSFT

İnşa prosedürünü kontrol etmiyorum ve her yere yazabiliyor.
liori

@liori: bu kullanım durumu için, dizinleri yeniden oluşturabilir ve her dosya için sembolik bağlantılar oluşturabilirsiniz ( cd SOURCE; find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +; find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;Windows benzeri bir şey gibi ).
Gilles 'SO- kötü olmayı kes

@Gilles: Beni kopyalamanın o kadar da kötü bir çözüm olmadığını düşündürüyorsun ... (ayrıca, bir cevaba dönüştürür
müsün

2

Zavallı bir adamın sembolik bağlarla birleşmesini sağlayabilirsiniz: kaynağın dizin yapısını yeniden oluşturun, ancak dosyalar için bağlar (sembolik veya sabit) yapın. Derleme sistemi kaynak dosyaları değiştirmeye çalışmadığı sürece bu amaç için uygun olmalıdır.

GNU cp ile cp -alveya kadar kolay cp -as. Ancak Windows bağlantılarını anlayan bir GNU araçları bağlantı noktası olup olmadığını bilmiyorum.

Mklink komutunu çağırmanız gerekirse, POSIX araçlarıyla yapılabilir (uyarı, doğrudan tarayıcıya yazılır):

cd SOURCE
find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +
find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;

Sanırım Powershell'i içeren yerel bir Windows yolu var, ama neye benzediğine dair hiçbir fikrim yok. Dizin ağacınızın büyük ve disklerinizin hızlı olup olmadığını araştırmaya değer olabilir, çünkü Windows altında çatallanma yavaş olma eğilimindedir ve yukarıdaki komutların çok fazla çatallanması gerekir.


Yerel yöntem for /R %BUILDDIR% %F in (*.*) do @junction X:%pnxF %F, junctionaracı sistemden gelen aracı kullanmak gibi bir şey olurdu .
MSalters

@MSalters Sembolik bağlantılar artık Windows'a özgüdür. Ve NTFS kavşakları aynı şey değildir .
Nick Whaley

@NickWhaley: Aslında, kavşaklar aslında zor bağlantılar.
MSalters


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.