8 साल की खोज के बाद मुझे Marco R. Gazzetta द्वारा SVNFS मिला (जो कि जॉन मैडेन [जो अलग-अलग चीजें करता है] द्वारा इसी नाम के साथ पुराने प्रोजेक्ट से अलग है)। यह SVNFS r / w संचालन में पारदर्शी रूप से svn का उपयोग करता है :
एक फ़ाइल सिस्टम बनाने के बजाय जो अपना स्वयं का संस्करण बनाता है, मैंने एक मौजूदा संस्करण उपकरण का उपयोग किया, तोड़फोड़ की, और इसके उपयोग को पारदर्शी बनाया। लाभ यह है कि इस फाइल सिस्टम को आपको एक नया टूल सीखने की आवश्यकता नहीं है, यदि आप तोड़फोड़ जानते हैं
यह पायथन में लिखा गया है और FUSE का उपयोग करता है:
अब आप स्क्रिप्ट संलग्न करके संस्करण फ़ाइल सिस्टम शुरू करते हैं:
python svnfs.py -o svnroot=/home/marco/svnfiles /home/marco/myfiles
एक बार जब सब कुछ ठीक हो जाता है, तो आपको दोनों निर्देशिकाओं की एक सूची प्राप्त करने में सक्षम होना चाहिए और देखना चाहिए कि सामग्री समान हैं।
अब, यदि आप किसी भी डायरेक्टरी में कोई फाइल बनाते हैं, तो यह फेंस के दूसरी तरफ भी दिखाई देगा। बड़ा अंतर यह है कि यदि आप myfiles निर्देशिका में एक फ़ाइल बनाते हैं, तो यह स्वचालित रूप से संस्करण नियंत्रण के तहत रखा जाएगा (विपरीत सच नहीं है)।
उदाहरण में SVNFS रेपो के लिए अलग निर्देशिका का उपयोग करता है। हालांकि मैंने इसका परीक्षण नहीं किया है। अपनी जरूरतों के लिए मैं अपने कामकाजी डायर में रिपॉजिटरी अधिकार रखना चाहता हूं।
मुझे 4 साल पहले Reiser4 की संस्करण क्षमताओं का संदर्भ मिला है :
देखें Reiser 4. फाइलें निर्देशिका हैं।
उदाहरण के लिए: diff -u main.C main.C/r/123
या गुणों तक पहुँचने के लिए
cat main.C/p/svn-eolstyle
echo "foobar" > main.C/p/my-property
ऐसा लगता है कि उस मॉडल का पालन करना सबसे अच्छा होगा, क्योंकि एक प्रमुख फाइल सिस्टम पहले से ही उस मार्ग पर जा रहा है।
-पुल क्वर्ना
लेकिन मैंने इसे भी चेक नहीं किया है।
दो साल पहले मैं आगे की खोज के लिए गया, स्टैकेबल फाइल सिस्टम बनाने के लिए प्रोजेक्ट FiST पाया और प्रोफेसर से संपर्क किया। Erez सादोक के स्टोनी ब्रुक विश्वविद्यालय कौन था सलाहकार / संरक्षक परियोजना कहा जाता है के लिए versionfs बहुत पहले। का हवाला देते हुए:
http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/
http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs.pdf
उपयोगकर्ताओं को आसानी से और कुशलता से अपने स्वयं के संस्करणों का प्रबंधन करने की अनुमति देता है। वर्जनफोर्स यह कार्यक्षमता प्रदान करता है जिसमें विशिष्ट उपयोगकर्ता जैसे वर्कलोड के लिए 4% से अधिक ओवरहेड नहीं होता है। वर्जनफोर्स उपयोगकर्ताओं को यह चुनने की अनुमति देता है कि दोनों संस्करणों को क्या रखा गया है और उन्हें क्रमशः अवधारण नीतियों और भंडारण नीतियों के माध्यम से कैसे संग्रहीत किया जाता है। उपयोगकर्ता स्थान और प्रदर्शन के बीच व्यापार-बंद का चयन कर सकते हैं जो उनकी व्यक्तिगत जरूरतों को पूरा करता है: पूर्ण प्रतियां, संपीड़ित प्रतियां या ब्लॉक डेल्टा। यद्यपि उपयोगकर्ता अपने संस्करणों को नियंत्रित कर सकते हैं, प्रशासक न्यूनतम और अधिकतम मूल्यों को लागू कर सकता है, और उपयोगकर्ताओं को समझदार चूक प्रदान कर सकता है।
इसके अतिरिक्त, libversionfs के उपयोग के माध्यम से, अनमॉडिफाइड एप्लिकेशन संस्करणों की जांच, हेरफेर और पुनर्प्राप्त कर सकते हैं। उपयोगकर्ताओं को केवल अलग-अलग कमांड सीखने के लिए उपयोगकर्ताओं की आवश्यकता के बजाय पिछले फ़ाइल संस्करणों तक पहुंचने के लिए परिचित उपकरण चला सकते हैं, या सिस्टम व्यवस्थापक से फ़ाइल सिस्टम को हटाने के लिए कह सकते हैं। Libversionfs के बिना, पिछले संस्करण पूरी तरह से उपयोगकर्ताओं से छिपे हुए हैं।
अंत में, वर्जनफॉफ अतीत के सिस्टम द्वारा नियोजित साधारण कॉपी-ऑन-राइट से आगे निकल जाता है: हम कॉपी-ऑन-परिवर्तन को लागू करते हैं। हालाँकि पहले हमें उम्मीद थी कि पुराने और नए पन्नों के बीच तुलना बहुत महंगी होगी, हमने पाया कि सिस्टम समय में वृद्धि अपरिवर्तित ब्लॉक लिखने के साथ जुड़े I / O और CPU समय की तुलना में अधिक है। जब अधिक महंगी भंडारण नीतियों का उपयोग किया जाता है (जैसे, संपीड़न), तो कॉपी-ऑन-परिवर्तन और भी अधिक उपयोगी होता है।
यह मुझे बहुत दिलचस्प लगा, लेकिन इस परियोजना पर काम करने वाले लोगों से संपर्क करने पर पता चला कि सिंहासन इसका स्रोत कोड नहीं है। प्रोफेसर ने खुद कहा मेल:
वर्जनफोर्स कोड अब बहुत पुराना है, और यह केवल कर्नेल 2.4 में काम करता है। यदि आप अभी भी एक स्टैकेबल वर्जनिंग एफ / एस चाहते हैं, तो किसी को इसे स्क्रैच से लिखना होगा - संभवतः रैपफ्स के आधार पर (देखें। wrafs.filesystems.org/)।
इसलिए यहां कोई काम करने वाली परियोजना नहीं है, हालांकि स्टैकेबल फाइल सिस्टम की अवधारणा मुझे बहुत अच्छी लगती है। क्या कोई भी ओफ़्फ़ रफ़्फ़्स पर आधारित प्रोजेक्ट शुरू करना चाहेगा , कृपया मुझे सूचित करें :)