8 বছর অনুসন্ধানের পরে আমি মার্কো আর গ্যাজেটা (যে জন ম্যাডেনের একই নামের সাথে পুরানো প্রকল্পের চেয়ে আলাদা [যা একটি বিভিন্ন কাজ করে]) দ্বারা এসভিএনএফএসকে পেয়েছি । এই SVNFS ব্যবহারসমূহ SVN স্বচ্ছভাবে দ / W অপারেশন:
নিজস্ব সংস্করণ তৈরি করে এমন একটি ফাইল সিস্টেম তৈরি করার পরিবর্তে, আমি একটি বিদ্যমান সংস্করণ সরঞ্জাম, বিপর্যয় ব্যবহার করেছি এবং এর ব্যবহারকে স্বচ্ছ করেছি। সুবিধাটি হ'ল এই ফাইল সিস্টেমটির জন্য আপনাকে নতুন সরঞ্জাম শেখার দরকার নেই, যদি আপনি বিবর্তন জানেন
এটি পাইথনে লেখা এবং FUSE ব্যবহার করে:
এখন আপনি সংযুক্ত স্ক্রিপ্টটি চাওয়ার মাধ্যমে সংস্করণ ফাইল সিস্টেম শুরু করুন:
python svnfs.py -o svnroot=/home/marco/svnfiles /home/marco/myfiles
সবকিছু ঠিকঠাক হয়ে গেলে, আপনি উভয় ডিরেক্টরিতে একটি তালিকা পেতে সক্ষম হবেন এবং দেখুন যে বিষয়বস্তুগুলি একই।
এখন, আপনি যদি কোনও ডিরেক্টরিতে কোনও ফাইল তৈরি করেন (প্রায়) তবে এটি বেড়ার অন্যদিকেও প্রদর্শিত হবে। বড় পার্থক্য হ'ল আপনি যদি মাইফাইল ডিরেক্টরিতে একটি ফাইল তৈরি করেন তবে এটি স্বয়ংক্রিয়ভাবে সংস্করণ নিয়ন্ত্রণের অধীনে স্থাপন করা হবে (বিপরীতটি সত্য নয়)।
উদাহরণে এসভিএনএফএস রেপোর জন্য পৃথক ডিরেক্টরি ব্যবহার করে। যদিও আমি এটি পরীক্ষা করিনি। আমার প্রয়োজনের জন্য আমি আমার কার্যকরী ডিয়ারে ঠিকঠাক সংগ্রহ করতে চাই।
আমি 4 বছর আগেও রেজার 4 এর সংস্করণ সক্ষমতার রেফারেন্স পেয়েছি :
রেজাইজার 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 এবং সিপিইউয়ের সময়সীমা সময়ের চেয়ে সিস্টেমের সময়ের বৃদ্ধি অফসেটের চেয়ে বেশি। যখন আরও ব্যয়বহুল স্টোরেজ নীতিগুলি ব্যবহার করা হয় (যেমন, সংক্ষেপণ), অনুলিপি অনুলিপি আরও কার্যকর।
এটি আমার কাছে খুব আকর্ষণীয় বলে মনে হয়েছিল তবে প্রকল্পে কাজ করা লোকদের সাথে যোগাযোগ করা থেকে জানা যায় যে হুমকির কারণ এটির উত্স কোডের কোনও অজানা জায়গা নয়। অধ্যাপক নিজেই মেলে বলেছেন:
ভার্শনফেসের কোডটি এখন খুব পুরানো এবং এটি কেবল কার্নেল ২.৪-এ কাজ করেছে। আপনি যদি এখনও স্ট্যাকযোগ্য সংস্করণ f / s চান, তবে প্রথমে এটি স্ক্র্যাচ থেকে লিখতে হবে - সম্ভবত র্যাপফের উপর ভিত্তি করে (wrapfs.files systemms.org/ দেখুন)।
সুতরাং এখানে কোনও কার্যনির্বাহী প্রকল্প নেই যদিও স্ট্যাকেবল ফাইল সিস্টেমের ধারণাটি আমার কাছে খুব সুন্দর লাগছে। যে কেউ wrapfs ভিত্তিক প্রকল্প শুরু করতে চান , দয়া করে আমাকে জানান :)