ক্যানোনিকাল উত্তর
পোস্টটি আরডিফের বিষয়ে , লিবার্সসিঙ্ক ২.০.১ হ'ল কমান্ড কার্যকারিতা স্পষ্টকরণের জন্য একটি ভাল পঠিত তাই আমি নীচে উল্লেখ করেছি যে এই উত্তরটিতে
অন্য কিছু না থাকলে সংরক্ষণ করুন।
একটি ফাইল আপডেট করার জন্য আরডিফের তিনটি ধাপ সম্পর্কে ভালভাবে বোঝার চেষ্টা করা গুরুত্বপূর্ণ : আরডিফ ম্যান পৃষ্ঠায় কথিত হিসাবে স্বাক্ষর , ডেল্টা এবং প্যাচ । আমি rdiff
গিটহাবের একটি কমান্ড উদাহরণ স্ক্রিপ্টও পেয়েছি এটি সহায়ক যা আমি উল্লেখ করব এবং উদ্ধৃত করব।
মূলত ...
- একটি "শুরু" বা বেস ফাইল [
file1
] দিয়ে এবং আপনি এটি থেকে
একটি স্বাক্ষর ফাইল তৈরি করেন
- এটি সাধারণত বেস / মূল ফাইলের থেকে অনেক ছোট
- সঙ্গে স্বাক্ষর ফাইল আপনি এটা অন্য ফাইল [বিরুদ্ধে তুলনা
file2
] আপনার বেস ফাইল অনুরূপ কিন্তু বিভিন্ন ( যেমন সম্প্রতি আপডেট ) এবং একটি তৈরি ব-দ্বীপ ফাইল দুটি ফাইলের মধ্যে মাত্র পার্থক্য ধারণকারী
- "কেবলমাত্র পার্থক্য" বা ব-দ্বীপ ফাইলটি ব্যবহার করুন এবং এটির সাথে আপনার তুলনা করুন আপনার বেস ফাইল [
file1
] সাথে একটি নতুন ফাইল উত্পন্ন করতে অন্য ফাইল থেকে পরিবর্তনগুলি অন্তর্ভুক্ত [ file2
] দুটির সাথে মিলে।
rdiff signature file1 signature-file ## signature base file1
rdiff delta signature-file file2 delta-file ## delta differences file2
rdiff patch file1 delta-file gen-file ## compare delta to file1 to create matching file2
rdiff-example.sh
# $ rdiff --help
# Usage: rdiff [OPTIONS] signature [BASIS [SIGNATURE]]
# [OPTIONS] delta SIGNATURE [NEWFILE [DELTA]]
# [OPTIONS] patch BASIS [DELTA [NEWFILE]]
# Options:
# -v, --verbose Trace internal processing
# -V, --version Show program version
# -?, --help Show this help message
# -s, --statistics Show performance statistics
# Delta-encoding options:
# -b, --block-size=BYTES Signature block size
# -S, --sum-size=BYTES Set signature strength
# --paranoia Verify all rolling checksums
# IO options:
# -I, --input-size=BYTES Input buffer size
# -O, --output-size=BYTES Output buffer size
# create signature for old file
rdiff signature old-file signature-file
# create delta using signature file and new file
rdiff delta signature-file new-file delta-file
# generate new file using old file and delta
rdiff patch old-file delta-file gen-file
# test
diff -s gen-file new-file
# Files gen-file and new-file are identical
rdiff নেটওয়ার্ক ডেল্টাস গণনা এবং প্রয়োগ করার জন্য একটি প্রোগ্রাম is একটি আরডিফ ডেল্টা বাইনারি ফাইলগুলির মধ্যে একটি ব-দ্বীপ যা বর্ণনা করে যে কীভাবে কোনও ফলাফল (বা নতুন) ফাইল তৈরি করতে কোনও ভিত্তি (বা পুরানো) ফাইলটি স্বয়ংক্রিয়ভাবে সম্পাদনা করা যেতে পারে।
সর্বাধিক ভিন্ন প্রোগ্রামগুলির থেকে পৃথক, যখন ভিন্নতা গণনা করা হয় তখন লিবারসিঙ্ক উভয়ই ফাইলের অ্যাক্সেসের প্রয়োজন হয় না। একটি ব-দ্বীপ গণনা করার জন্য পুরানো ফাইলের একটি সংক্ষিপ্ত "স্বাক্ষর" এবং নতুন ফাইলের সম্পূর্ণ বিষয়বস্তু প্রয়োজন। স্বাক্ষরটিতে পুরানো ফাইলের ব্লকগুলির জন্য চেকসাম রয়েছে। এই চেকসামগুলি ব্যবহার করে, আরডিফ নতুন ফাইলটিতে মেলানো ব্লকগুলি সন্ধান করে এবং তারপরে ব-দ্বীপের গণনা করে।
rdiff ডেল্টাস সাধারণত কম কমপ্যাক্ট এবং এক্সডেল্টাস বা নিয়মিত পাঠ্য বিভেদের তুলনায় ধীর গতির হয়। যদি ব-দ্বীপ গণনা করার সময় পুরানো এবং নতুন উভয় ফাইল উপস্থিত থাকা সম্ভব হয়, তবে এক্সডেল্টা সাধারণত একটি খুব ছোট ফাইল তৈরি করে। ফাইলগুলির তুলনা করা যদি সরল পাঠ্য হয় তবে জিএনইউ ডিফ সাধারণত ভাল পছন্দ হয় কারণ ডিফগুলি মানুষের দ্বারা দেখা যায় এবং অক্ষত মিল হিসাবে প্রয়োগ করা যেতে পারে।
উভয় ফাইল একই সাথে উপস্থিত করা সুবিধাজনক না হলে rdiff তার নিজের মধ্যে আসে। এর একটি উদাহরণ হ'ল দুটি ফাইল পৃথক মেশিনে রয়েছে এবং আপনি কেবলমাত্র পার্থক্য স্থানান্তর করতে চান। অন্য উদাহরণটি হ'ল যখন কোনও ফাইল সংরক্ষণাগার বা ব্যাকআপ মিডিয়াতে স্থানান্তরিত হয়, কেবল তার স্বাক্ষর রেখে।
প্রতীকী
signature(basis-file) -> sig-file
delta(sig-file, new-file) -> delta-file
patch(basis-file, delta-file) -> recreated-file
নিদর্শন ব্যবহার করুন
আরএসআইএনসি অ্যালগরিদমের একটি সাধারণ অ্যাপ্লিকেশন হ'ল মেশিন এ থেকে একটি ফাইল এ 2 একটি মেশিন বিতে স্থানান্তর করা যার অনুরূপ ফাইল এ 1 রয়েছে। ইহা এভাবে করা যাবে:
- বি এ 1 এর আরডিফ স্বাক্ষর তৈরি করে। এই এস 1 কল করুন। বি এ-তে স্বাক্ষর প্রেরণ করে (স্বাক্ষরটি সাধারণত বর্ণিত ফাইলের তুলনায় অনেক ছোট)
- একটি এস 1 এবং এ 2 এর মধ্যে আরডিফ ডেল্টাকে গণনা করে। এই ব-দ্বীপটিকে কল করুন ডি এ ব-দ্বীপটি প্রেরণ করে B.
- বি এ 2 পুনরায় তৈরি করতে ব-দ্বীপ প্রয়োগ করে। যে ক্ষেত্রে এ 1 এবং এ 2 এর সাথে অভিন্ন বাইট রয়েছে, সেখানে rdiff একটি গুরুত্বপূর্ণ স্থান সাশ্রয় করে।
সূত্র