मैं मानता हूं कि आपके लैपटॉप पर सभी फाइलों की एक प्रति रखना एक विकल्प नहीं है। अन्यथा, यह बहुत आसान होगा।
यहाँ सही उपकरण एक संस्करण नियंत्रण उपकरण है। लेकिन मुझे एहसास है कि जब तक सभी उपयोगकर्ताओं के पास तकनीकी परिष्कार की एक न्यूनतम मात्रा नहीं होती है, तब तक उन्हें संस्करण नियंत्रण उपकरण का उपयोग करना एक यथार्थवादी सुझाव नहीं है। और फिर भी आपको अपने लैपटॉप पर जो भी चेक आउट करना है उसे सावधानी से करना होगा।
आप अभी भी संस्करण नियंत्रण का उपयोग कर सकते हैं। साझा मशीन पर, अपनी सभी फ़ाइलों में जांचें, और अन्य लोगों की फ़ाइलों को अकेला छोड़ दें। अपने लैपटॉप पर एक अलग चेकआउट रखें। जब भी आप मशीनों को स्विच करते हैं, तो कमिट करें और देखें। जितना अधिक मैं इसके बारे में सोचता हूं, उतना ही अधिक मैं इस विकल्प को पसंद करता हूं: इसके लिए किसी कोडिंग या किसी भी नाजुक स्क्रिप्टिंग की आवश्यकता नहीं है।
आप दो तरफा सिंक्रनाइज़ेशन करते हैं। रुपीक्स इस पर अच्छा नहीं है: यदि आप इसे चलाना भूल जाते हैं, या गलती से इसे गलत दिशा में चलाते हैं, तो आपको बिना किसी चेतावनी के काम खो देने की संभावना है। यूनिसन दो-तरफा सिंक्रनाइज़ेशन के लिए एक अच्छा उपकरण है: यह हमेशा द्विदिश रूप से सिंक्रनाइज़ करता है, और यह शिकायत करता है कि क्या दोनों पक्षों में एक फ़ाइल बदल गई है। यह खुला स्रोत है, और अच्छी तरह से यूनिक्स और विंडोज दोनों प्लेटफार्मों में एकीकृत है।
दुर्भाग्य से, यूनिसन के पास स्वामी द्वारा फ़ाइलों को अनदेखा करने का कोई विकल्प नहीं है, rsync से अधिक कोई भी करता है। आप के साथ एक अनदेखा सूची उत्पन्न कर सकते हैं find -user
, लेकिन यह गड़बड़ हो जाता है, और दौड़ की स्थिति है अगर कोई और जोड़ता है या चलाने के बीच फ़ाइलों को हटाता find
है unison
या rsync
।
आप मेटाडेटा के आधार पर फ़ाइलों को अनदेखा करने के लिए विकल्प जोड़ने के लिए rsync या unison पैच कर सकते हैं। मेरे पास स्रोत पर एक त्वरित नज़र थी, और दोनों ही मामलों में बहिष्करण कोड स्ट्रिंग्स से दृढ़ता से बंधा हुआ है, निर्देशिका प्रविष्टियों के लिए नहीं। यह देखने योग्य लगता है, लेकिन यह एक तुच्छ पैच नहीं है।
आप फाइल सिस्टम का एक दृश्य बना सकते हैं जिसमें केवल आपकी फाइलें हैं। मेरे पास पूर्ण, निर्बाध समाधान नहीं है, लेकिन यहां कुछ विचार आरंभ करने के लिए हैं।
यदि साझा मशीन हार्ड लिंक का समर्थन करती है (सभी यूनियन्स करते हैं, और जब तक आप NTFS का उपयोग करते हैं, तो NT4 से विंडोज करता है), यह रिपॉजिटरी की एक कॉपी बनाने के लिए काफी आसान है जिसमें आपकी फ़ाइलों के केवल हार्ड लिंक होते हैं:
cd /shared/repository
find . -user "$USER" -exec sh -c 'mkdir -p "/my/view/${0%/*}" &&
ln "$0" "/my/view/$0"' {} \;
या zsh के साथ:
autoload zmv
zmv -L -Q '/shared/repository/(**/)(*)(u$UID)' "/my/view/$1$2"
आपको सावधान रहना होगा कि एडिटिंग या सिंक्रोनाइज़ करते समय हार्ड लिंक को न तोड़ें। मुझे नहीं पता कि rsync और यूनिसन कैसे सामना करेंगे। प्रारंभिक निर्माण के बाद, साझा रिपॉजिटरी में एक फ़ाइल जो आपके स्वामित्व में है और 1 की लिंक गणना को हटाना है, और 1 के लिंक काउंट के साथ आपके विचार में एक फाइल को साझा रिपॉजिटरी में जोड़ा जाना है। यह सब काफी अनाड़ी है, और मैं सुधार के लिए सुझावों का स्वागत करूंगा।
यदि साझा मशीन FUSE का समर्थन करती है , तो आप इसका उपयोग केवल अपनी फ़ाइलों वाले साझा भंडार के लाइव दृश्य को बनाने के लिए कर सकते हैं। मैं किसी भी मौजूदा FUSE फाइल सिस्टम के बारे में नहीं जानता, जो यह कर सकता है, लेकिन बाइंडफॉफ़ करीब आता है (मैंने कोडिंग कठिनाई का मूल्यांकन करने के लिए कोड को नहीं देखा है)।
आप rsync या unison चलाते समय LD_PRELOAD
ओवरराइड readdir
(या विंडोज समतुल्य) का उपयोग कर सकते हैं , ताकि यह केवल आपके द्वारा स्वामित्व वाली फ़ाइलों को लौटाए।