विंडोज़ के लिए UnionFS जैसी फाइलसिस्टम


12

मैं Windows 7 में UnionFS की तरह काम करने वाली चीज़ की तलाश कर रहा हूँ। मेरा usecase: क्लीन कोड वर्किंग डायरेक्टरी को रीड-ओनली डाइरेक्टरी में रखता है, और इसे एक यूनियन फाइल सिस्टम में संकलित करता है, जो संकलित बायनेरिज़ को तार्किक रूप से एक ही स्थान पर संग्रहीत करेगा, लेकिन भौतिक रूप से अलग निर्देशिका।

लाइब्रेरी इस तरह से काम नहीं करती हैं, भले ही वे विंडोज़ पर यूनियनएफएस में एक जवाब के रूप में स्वीकार किए जाते हैं, वस्तुतः फ़ोल्डर्स को मर्ज करते हैं - वे केवल एक स्थान पर शीर्ष-स्तरीय निर्देशिका दिखाते हैं।

कोड अपने आप में बहुत बड़ा (2GB डेटा) है, और मैं इसे अपने बिल्ड सर्वर में प्रत्येक बिल्ड के लिए कॉपी करने से बचना चाहूंगा।


ओह, उफ़ : - / मैं स्वयं उसी समस्या को हल करने का प्रयास कर रहा हूं, और लगभग ध्यान से नहीं पढ़ा। मैं अपनी टिप्पणी हटा दूंगा। मेरे पास विंडोज प्लेटफॉर्म के साथ लगभग कोई परिचित नहीं है। : - /
सर्वव्यापी

जवाबों:


2

क्या आप इसे नकली करने के लिए प्रतीकात्मक लिंक का उपयोग कर सकते हैं? http://en.wikipedia.org/wiki/NTFS_symbolic_link यह सटीक प्रश्न का उत्तर नहीं दे रहा है, लेकिन मुझे लगता है कि यह आपके द्वारा दिए गए उपयोग के मामले को हल करेगा।


मैं नहीं देखता कि यह कैसे हो सकता है ... क्या आप समझा सकते हैं?
लियोरी

मैं नहीं जानता कि जिस तरह से आपके बिल्ड ट्री को संरचित किया गया है, लेकिन यह मानकर चल रहा है कि यह src, src / bin, src / obj जैसा कुछ है, तो आप बिन और obj प्रतीकात्मक लिंक हो सकते हैं जहाँ भी आप कोड होना चाहते हैं। बस सुनिश्चित करें कि आपका निर्माण उन फ़ोल्डरों को पूरी तरह से हटा नहीं रहा है। वैकल्पिक रूप से src "केवल पढ़ने के लिए" का प्रतीकात्मक लिंक होगा, फिर पढ़ने में लिंक केवल वापस जाएं। किसी भी तरह से आप इसे काम करने में सक्षम होना चाहिए। जब तक मैं अपने परिदृश्य को पूरी तरह से याद नहीं कर रहा हूं।
माइकबैज़ -

मैं निर्माण प्रक्रिया को नियंत्रित नहीं करता, और यह हर जगह लिख सकता है।
लियोरी

@liori: इस उपयोग के मामले के लिए, आप निर्देशिकाओं को पुन: पेश कर सकते हैं और हर फ़ाइल के लिए प्रतीकात्मक लिंक बना सकते हैं (जैसे cd SOURCE; find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +; find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;कुछ या कुछ विंडोज समकक्ष)।
गाइल्स 'एसओ- बुराई को रोकें' 19

@ गिल्स: आप मुझे लगता है कि नकल करना इतना बुरा समाधान नहीं है ... (इसके अलावा, क्या आप इसे एक जवाब दे सकते हैं?)
लेओरी

2

आप प्रतीकात्मक लिंक के साथ एक गरीब-आदमी के संघ बना सकते हैं: स्रोत की निर्देशिका संरचना को पुन: पेश करते हैं, लेकिन फाइलों के लिए लिंक (प्रतीकात्मक या कठोर) बनाते हैं। यह आपके उद्देश्य के लिए उपयुक्त होना चाहिए जब तक कि निर्माण प्रणाली स्रोत फ़ाइलों को संशोधित करने का प्रयास नहीं करती है।

जीएनयू सीपी के साथ, यह जितना आसान है cp -alया cp -as। लेकिन मुझे नहीं पता कि विंडोज लिंक को समझने वाले GNU टूल्स का कोई पोर्ट है या नहीं।

यदि आपको mklink कमांड को कॉल करने की आवश्यकता है, तो इसे POSIX टूल (चेतावनी, सीधे ब्राउज़र में टाइप किया गया) के साथ किया जा सकता है:

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

मुझे लगता है कि एक देशी विंडोज है जिसमें पॉवर्सशेल शामिल है, लेकिन मुझे नहीं पता कि यह कैसा दिखता है। यह जाँचने योग्य हो सकता है कि क्या आपकी निर्देशिका ट्री बड़ी है और आपके डिस्क तेज़ हैं क्योंकि विंडोज के नीचे जाली धीमी गति से चलती है, और ऊपर दिए गए आदेश बहुत अधिक कांटा करने की आवश्यकता है।


मूल तरीका कुछ ऐसा होगा for /R %BUILDDIR% %F in (*.*) do @junction X:%pnxF %F, जो कि junctionसिसिन्टर्नल्स के उपकरण का उपयोग करेगा ।
एमएसएलटर्स

@MSalters प्रतीकात्मक लिंक अब विंडोज के मूल निवासी हैं। और NTFS जंक्शन एक ही बात नहीं हैं ।
निक व्हले

@ नाइकवली: वास्तव में, जंक्शन अनिवार्य रूप से कठिन लिंक हैं।
MSalters

2

हां , विंडोज के हाल के संस्करणों में है , लेकिन मुझे नहीं पता कि इसका उपयोग कैसे करना है।


"UWF मानक 8 के लिए एक नई सुविधा है, और विंडोज 8 के भाग के रूप में उपलब्ध नहीं है।" अनलकी यह एंड-यूज़र विंडोज संस्करणों में उपलब्ध है।
डैनियल बी


अन्य मामलों के लिए उपयोगी है, लेकिन यह एक नहीं है। जानने के लिए अच्छा है और ध्यान देने योग्य है।
रॉबर्ट Wm Ruedisueli

1

मुझे यह मिल गया, लेकिन मैं वास्तव में नहीं जानता कि यह कितनी अच्छी तरह काम करता है:


Google कोड पर संग्रहीत परियोजनाएँ अस्वीकार्य हैं। आप कहीं अद्यतन संस्करण की तलाश कर सकते हैं। संभवतः एक कांटा।
रॉबर्ट Wm Riedisueli
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.