বিদ্যুৎ চলে গেলে গিট কতটা দৃits় প্রতিজ্ঞ?


24

একদিন আমি গিট ব্যবহার করছিলাম (আমি এখনও এটি ব্যবহার করছি) এবং প্রতিশ্রুতি দেওয়ার সময় বিদ্যুৎ নেমে যায়।

আমি যখন (আসলে, বিদ্যুত) ফিরে এসেছি, গিট রেপো দুর্নীতিগ্রস্থ ছিল। আমি সঠিক নামটি মনে করি না তবে এটি "অবৈধ রেফ" বা এর মতো কিছু ছিল।

এটি সহজেই অনুমান করা যায় যে কমান্ডটি অপারেশনের মাঝামাঝি সময়ে ভেঙে গেছে (আমি ইন্টেলিজিজের মাধ্যমে প্রতিশ্রুতি দিচ্ছিলাম যা সূচী সংযোজনগুলি স্বয়ংক্রিয়ভাবে সম্পাদন করে)। এটি অনুমান করাও সহজ ছিল যে, 'কমিট' একই নামে ডিবিএমএস অপারেশন হিসাবে এসিডি নয়।

প্রশ্ন : পারমাণবিকতার প্রতি শ্রদ্ধা-পরিবর্তনকারী অপারেশনগুলি নিশ্চিত করার কোনও উপায় আছে কি? অর্থাত্ যদি বিদ্যুৎ আবার নেমে আসে এবং আমি প্রতিশ্রুতিবদ্ধ হয় তবে আমি চাই আমার ফাইল সিস্টেমটি কোনও দুর্নীতিগ্রস্থ অবস্থায় না পড়ে।


10
একটি ইউপিএস কিনবেন? .....
রবার্ট হার্ভে

একটি দৈনিক ব্যাকআপ করতে?
র‌্যাচেট ফ্রিক

এটি সমস্যার সমাধান করে না - কল্পনা করুন যে গিট রেপো একটি সার্ভারে আছে এবং আমি স্থানীয় রেপো থেকে পুশ করি এবং সার্ভারে কমিটকে সংমিশ্রিত করার সময়, শক্তিটি আবারও নীচে নেমে আসে। একই সমস্যা তবে এবার মানুষের উপস্থিতি ছাড়াই।
লুইস মাসুয়েলি

উত্তর:


10

আমি জানি না যে গিট কমিটসকে পুরোপুরি সময়োপযোগী পাওয়ার ব্যর্থতা থেকে বেঁচে থাকার কোনও উপায় আছে কিনা তবে আপনি নিজের সংগ্রহস্থলটি ঠিক করতে সক্ষম হতে পারেন।

গিট অবজেক্টগুলি অপরিবর্তনীয় বলে মনে করা হয়, সুতরাং আপনার সমস্ত পুরানো কমিটগুলি এখনও বৈধ হওয়া উচিত। এই উত্তর অনুসারে , আপনি .git/refs/heads/<branch-name>যে শাখার উপর পূর্ববর্তী প্রতিশ্রুতি নিয়ে কাজ করছিলেন তার মাথা পরিবর্তন করতে আপনি হ্যাশ পরিবর্তন করতে পারেন (আপনি এগুলিতে দেখতে পারেন .git/logs/HEAD)।

উত্তরের মন্তব্যে বলা হয়েছে যে এই পদ্ধতিটি "এখনও ভাঙ্গা অবস্থায় ভাণ্ডার ফেলেছে, তবে এটি এটি পুনরুদ্ধার করতে দেয়"। আমি এটি পরীক্ষা করিনি (কীভাবে আপনার পরিস্থিতির প্রতিলিপি তৈরি করা যায় তা ধারণা নেই), তবে আমি ধরে নিই যে পুনরুদ্ধারটি সম্পন্ন হয়েছে git gc, এটি দুর্নীতিগ্রস্ত প্রতিশ্রুতি মুছে ফেলবে।


6
"আপনার অবস্থার প্রতিলিপি কীভাবে করবেন না" প্লাগটি টানুন? ;)
ইয়ানিস

3
@ ইয়ানিসরিজোস হয়তো এটি যদি এসভিএন হত তবে গিট কমিট করার সময়সীমা মানবিক সময়ের জন্য খুব দ্রুত ...
ইদান আরে

5
গিট ওপেন সোর্স, তাই না? সুতরাং সমস্যাটি পুনরুত্পাদন করতে কোডটি তৈরি করুন, ডিস্কে ডেটা সংরক্ষণ করার আগে একটি ব্রেকপয়েন্ট সেট করুন - এবং তারপরে প্লাগটি টানুন।
জন স্যান্ডার্স

10

গিটের স্টোরেজ সিস্টেমটি লেনদেনের নয়, তাই সম্ভবত একটি সম্ভাবনা রয়েছে যে কোনও হার্ডওয়্যার সমস্যা জিনিসগুলি অসম্পূর্ণ অবস্থায় ফেলে দিতে পারে। অন্যদিকে, গিটটিও সত্যই দ্রুতগতির তাই আপনাকে "বিদ্যুৎ ব্যর্থতা" ধরণের সমস্যা (ডিস্কের সাথে সিস্টেমেটিক সমস্যাগুলি অন্য কিছু) দ্বারা আক্রান্ত হওয়ার জন্য সত্যিই দুর্ভাগ্য হতে হবে। গতিকে এই অংশটি স্পষ্টভাবে আসে যে এটি লেনদেনের নয়; লেনদেনগুলি সত্যই বেশ ব্যয়বহুল যেহেতু ডিস্ক থেকে এটি নিশ্চিত করার জন্য অপেক্ষা করতে হয় যে এটি ডেটা লিখেছিল। (এই ব্যয়টি গোপন করার চেষ্টা করার জন্য ডেটাবেসগুলি বিভিন্ন ধরণের কাজ করে, তবে শেষ পর্যন্ত তারা এখনও দাম দেয় the প্রতিযোগী ডিভিসিএসের কিছু লেনদেন হয়, এবং হ্যাঁ, তারা গিট হিসাবে একই হার্ডওয়্যারটিতে বেশ খানিকটা ধীর গতির হয়))

সবচেয়ে খারাপ ক্ষেত্রে - মোট বিপর্যয়কর ডিস্ক ব্যর্থতা (যা আমি ঘটতে দেখেছি) - কোনও ডিভিসিএসের পুনরুদ্ধারের একমাত্র উপায় হ'ল এটি বিতরণ করা হয়েছে এমন সত্যটি ব্যবহার করা। যদি আপনি খুব শীঘ্রই অন্য সিস্টেমে আপনার পরিবর্তনগুলি ধাক্কা দিয়ে থাকেন এবং তারা সেগুলি অনেকগুলি পৃথক হোস্টে ভাগ করে নিয়ে থাকেন তবে পুনরুদ্ধার হ'ল এই শাখাগুলি উত্স হিসাবে অন্য একটি জায়গা ব্যবহার করার বিষয়, আপনার শাখাগুলি থেকে টানানোর জায়গা ( এমনকি সাময়িকভাবে হলেও) এর মতো আপনি আকর্ষণীয় শাখাগুলির ইতিহাস আবার টেনে আনবেন এবং আপনি খুব দ্রুত আবার কাজ করতে সক্ষম হবেন; আপনার রেপোগুলির প্রচুর বিতরণ কপিগুলি একবারে মুছে ফেলা এমন কিছু হ'ল হয় সেই ধরণের একটি বিপর্যয় যেখানে আপনি পরে প্রোগ্রামিংয়ের বিষয়ে চিন্তা করবেন না (প্রধান উল্কাপাত প্রভাবটি ভাবেন) বা সরাসরি শত্রু ক্রিয়াকলাপ। (এই জাতীয় শত্রু না করার চেষ্টা করুন ...) এটি সম্পূর্ণ বিতরণবিহীন সিস্টেমগুলির সম্পূর্ণ বিপরীতে, যেখানে কেন্দ্রীয় সার্ভারকে হারিয়ে সমস্ত কিছু হ'ল মারাত্মক আঘাত।


5
আপনি যদি আপনার শাখাগুলি ঠেলাঠেলি না করেন, ব্যাকআপ রাখবেন না এবং কোনও ইউপিএস রাখবেন না, তবে হার্ডওয়্যার সমস্যাগুলি সমস্ত মুছলে আপনি কেবল নিজেকেই দোষারোপ করতে পারেন। আপনি সরঞ্জামগুলি পেয়েছেন ...
ডোনাল ফেলো

1
গিট অপারেশনগুলি লেনদেনযোগ্য তা নিশ্চিত করার কোনও উপায় বা প্লাগইন কী নয়? যদি এই জাতীয় বিকল্প বা প্লাগইন-বিদ্যমান থাকে তবে আমি সেগুলির (অর্থাত্ অপারেশন) ধীর হওয়ার বিষয়ে চিন্তা করব না। ভাগ্যক্রমে আমার কোনও হার্ডওয়ার সমস্যা নেই। দুর্ভাগ্যক্রমে এই বিল্ডিংয়ে শক্তি প্রায়শই বন্ধ হয়ে যায় (প্রতি দুই সপ্তাহে একবার বলে তার নিজস্ব উপস্থিতি পাওয়া যায়), এবং আমি পুরো সময়টি কোডিং করছি এবং ইউপিএস নেই। ভাগ্যক্রমে আমি এটি গিথুবে সরিয়েছি (ক্লোনড / ধাক্কা দিয়ে)। দুর্ভাগ্যক্রমে আমি কিছুটা হারিয়ে ফেলেছি যখন সমস্ত কিছু পিছনে ফেলে আবার প্রকল্পটির প্রতিলিপি তৈরি করতে হয়।
লুইস মাসুয়ালি

2
কাজ করার সময় ঘন ঘন বিদ্যুৎ বিভক্ত হওয়ার অর্থ আপনি যদি হার্ডওয়ারকে ক্ষতিকারক না করে থাকেন তবে আপনি প্রকৃতপক্ষে ফাইল সিস্টেমের দুর্নীতির ঝুঁকি বাড়িয়ে তুলছেন। আমি ভাবব কেন আপনি ইউপিএস পাওয়ার ধারণাটি বিনোদন দিচ্ছেন না, যা আপনার বর্ণিত বেশিরভাগ সমস্যার সমাধান করবে এবং সম্ভবত সেরা উত্তর হবে।
বার্ট সিলভারস্ট্রিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.