Saya mencari sesuatu yang berfungsi seperti UnionFS di Windows 7. Usecase saya: memiliki direktori kerja kode bersih dalam direktori read-only, dan mengompilasinya dalam sistem file gabungan yang akan menyimpan biner yang dikompilasi secara logis di tempat yang sama, tetapi secara fisik di direktori berbeda.
Perpustakaan tidak bekerja dengan cara ini, meskipun mereka diterima sebagai jawaban di UnionFS sama di windows, Hampir menggabungkan folder - mereka hanya menampilkan direktori tingkat atas di satu tempat.
Kode itu sendiri sangat besar (2GB data), dan saya ingin menghindari menyalinnya untuk setiap build di server build saya.
windows-7
filesystems
liori
sumber
sumber
Jawaban:
Bisakah Anda menggunakan tautan simbolis untuk memalsukan ini? http://en.wikipedia.org/wiki/NTFS_symbolic_link Ini tidak menjawab pertanyaan yang tepat tapi saya pikir itu akan menyelesaikan kasus penggunaan yang Anda berikan.
sumber
cd SOURCE; find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +; find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;
atau setara dengan Windows).Anda dapat membuat unionfs orang miskin dengan tautan simbolik: mereproduksi struktur direktori sumber, tetapi membuat tautan (simbolik atau keras) untuk file. Ini harus sesuai untuk tujuan Anda selama sistem build tidak mencoba untuk memodifikasi file sumber.
Dengan GNU cp, semudah
cp -al
ataucp -as
. Tapi saya tidak tahu apakah ada port alat GNU yang mengerti tautan Windows.Jika Anda perlu memanggil perintah mklink, itu bisa dilakukan dengan alat POSIX (peringatan, ketikkan langsung ke browser):
Saya kira ada cara Windows asli yang melibatkan Powershell, tapi saya tidak tahu seperti apa bentuknya. Mungkin perlu diselidiki jika pohon direktori Anda besar dan disk Anda cepat karena forking di Windows cenderung lambat, dan perintah di atas perlu banyak bercabang.
sumber
for /R %BUILDDIR% %F in (*.*) do @junction X:%pnxF %F
, menggunakanjunction
alat dari sysinternals.Ya ada di Windows versi terbaru , tapi saya tidak tahu bagaimana menggunakannya.
sumber
Saya menemukan ini, tetapi saya tidak benar-benar tahu seberapa baik kerjanya:
sumber