বিভিন্ন হোস্টে গিট সংগ্রহস্থল সিঙ্কে রাখা


34

আমি একটি ছোট প্রকল্প শুরু করার বিষয়ে ভাবছি এবং আমি গিট দিয়ে এর সংস্করণ তৈরি করতে চাই।

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

এখন আমার প্রশ্ন, দুটি পৃথক হোস্টে একটি সংগ্রহশালা তৈরি করা এবং সেগুলি সমন্বয় করে রাখা সম্ভব কিনা? উদাহরণস্বরূপ, ধরুন আমি প্রতি সপ্তাহে একবার বিটবকেটের সাথে মিলিত করতে আমার এনএএস-এ সংগ্রহস্থল আপডেট করি। তারপরে, বিটবকেটের সাথে যদি কিছু ঘটে থাকে তবে আমার স্থানীয় এনএএস স্টোরেজে বিকাশের সম্পূর্ণ ইতিহাস সহ আমার কাছে সম্পূর্ণ সংগ্রহস্থল থাকবে।

এবং অন্য ইতিহাস-পরিষেবাতে সম্পূর্ণ ইতিহাস সহ বিদ্যমান সংগ্রহস্থলটি আমদানির কোনও উপায় আছে কি?


আমি মনে করি যে মিররিং আমার প্রয়োজন। এই নিবন্ধটি আমার যা প্রয়োজন ঠিক তা বর্ণনা করে বলে মনে হচ্ছে। আর এই এক হিসাবে ভাল।

আমি বিশ্বাস করি যে এটি সম্পূর্ণ ইতিহাসের সাথে সম্পূর্ণ অনুলিপি তৈরি করবে এবং এমনকি স্বয়ংক্রিয়ভাবে উভয় হোস্টের ভান্ডারগুলিতে নতুন সংস্করণ প্রতিশ্রুতিবদ্ধ।

আমি কি সঠিক?


আমি এক্সপিডিভ ব্যবহার করছি আপনার 2 সিস্টেমের পরিস্থিতিতে আমি আশ্চর্য হয়েছি যে আপনার ক্ষেত্রে বেনিফিটটি কীভাবে গিটকে ধড়ায়। প্রতিটি চূড়ান্ত বিল্ড থেকে কেবল নিশ্চিত হতে আমি একটি ইউএসবি ব্যাকআপ করি। তবে মূলত সংস্করণটি হোয়াইটিন এক্সপিডে হ্যান্ডেল করা হয় যাতে এটির আসল প্রয়োজন হয় না। বিটিডাব্লু আপনি যদি একটি বোকা প্রমাণ ন্যাস রাইড 1 এর মালিক হন বা তাই আপনার নিজের সংস্করণ সিস্টেম চালানো বিবেচনা করতে পারে সেখানে কিছু ফ্রিওন রয়েছে
user613326

তবে আমি 2 জায়গায় পুরো সংস্করণ পেতে চাই। যদি তৃতীয় পক্ষের হোস্টিং মারা যায়, বা সংস্থাটি এটি চালাচ্ছে, কেবল অদৃশ্য হয়ে যায়, আমি সমস্ত সংস্করণ ইতিহাসের সাথে এখনও একই অভিজ্ঞতা পেতে চাই ...
বার্তোনাজ

এর অর্থ হল যে আমার কাছে 99.9% সুরক্ষার জন্য আরামের জন্য বিটবকেট এবং NAS এ গিট থাকবে।
বার্তোনাজ

এক্সপি-ডেভের ক্ষেত্রে এর সম্ভাব্য সংস্থার মৃত্যু হয়, তারা কোড হোস্টিং পরিকল্পনা, দাম ইত্যাদি পরিবর্তন করতে পারে বা অন্য সংস্থার সাথে একত্রী হতে পারে। তবে এটি তাদের জন্য অর্থের দুধের কাজ। এবং তারা মূল্যবান ডেটা ব্যাকআপ করবে। এটি তাদের স্থানে থাকা ব্যবসা। আমি এটি 3 বিকাশকারীদের সাথে ব্যবহার করি এবং আমাদের কোডটি 5 টি বিভিন্ন মেশিনে উপস্থিত রয়েছে, যেখানে সর্বদা স্থানীয় উত্স অনুলিপি থাকে যা এক্সপি ডেভেল সিঙ্ক হয়। আপনার কাছে কয়েকটি প্রকল্প থাকলে এক্সপি দেব বিনামূল্যে।
ব্যবহারকারী 613326

1
অবশ্যই, এটি অসম্ভব। তবে তবুও, আপনি কখনই 100% নিশ্চিত হতে পারবেন না ...
বার্তোনাজ

উত্তর:


19

হ্যাঁ, এটি হ'ল গিটের মতো ডিভিসিএসের সৌন্দর্য। আপনি বিটবাকেট বা গিথুব হিসাবে একই রাজ্যের সাথে বিভিন্ন সংখ্যক রেপো ব্যবহার করতে পারেন।

এমনকি আপনি স্থানীয় অনুলিপি (আপনার কম্পিউটারে সংগ্রহস্থল) সাধারণত দূরবর্তী রেপোর সম্পূর্ণ ক্লোন।

একাধিক রেপগুলি সিঙ্কে রাখার জন্য আপনাকে কেবলমাত্র যা করতে হবে তা হ'ল একটিকে (সাধারণত উত্স বা উতস্রোত বলা হয়) অনুসন্ধান করা এবং ব্যাকআপ কপিগুলিতে চাপ দেওয়া।


11
দুর্ভাগ্যক্রমে সমস্ত চকচকে নয়। বিপর্যয়ের কাছাকাছি সতর্কতা অবলম্বন দেখুন । অর্থাৎ, নিশ্চিত ব্যাকআপ করে না ডিলিট জিনিষ (শাখা, ভান্ডার, ইত্যাদি) যে ব্যাক আপ সার্ভারে মোছা হয়েছে।
জান হুডেক

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

2
দূরবর্তী সংগ্রহস্থলটিকে ক্লোন করুন, তারপরে নিয়মিত বিরতিতে সমস্ত আপডেট (সমস্ত শাখা) এ টানুন। গিট ক্লোনটিতে ইতিহাস রয়েছে এটি কোনও এসএনএন চেকআউটের মতো নয় যেখানে কেবল সর্বশেষতম সংস্করণ রয়েছে।
উইলবার্ট

11

সমস্যাটির জন্য এখানে একটি পরীক্ষিত সমাধান রয়েছে: স্বয়ংক্রিয় সিঙ্ক 2 রিমোট গিট সংগ্রহস্থল

2 রিমোট গিট সংগ্রহস্থল সিঙ্ক করার জন্য একটি সাধারণ স্ক্রিপ্ট

আমি একটি সাধারণ স্ক্রিপ্টের জন্য ওয়েব অনুসন্ধান করেছি যা সিঙ্ক হবে। 2 রিমোট রিপোজিটরিগুলি কিন্তু আমি এমন স্ক্রিপ্টটিও পাইনি যে অনেকের জন্য এটি সন্ধান করার মতো মনে হয়! সুতরাং আমি 2 টি সাধারণ পরীক্ষার সংগ্রহাগুলি তৈরি করেছি এবং এই জাতীয় স্ক্রিপ্ট পরীক্ষা ও বিল্ডিং শুরু করেছি।

এই ধরনের স্ক্রিপ্ট কি করা উচিত?

ঠিক আছে, সাধারণভাবে এটি করার পদক্ষেপগুলি সহজ: 1. প্রথম সংগ্রহস্থলটি ক্লোন করুন 1. দ্বিতীয়টিকে অতিরিক্ত দূরবর্তী সংগ্রহস্থল হিসাবে যুক্ত করুন 1. দ্বিতীয় সংগ্রহস্থলটিতে যা আছে তা আনুন 1. আপডেট হওয়া স্থানীয় সংগ্রহস্থলটিকে 2 এর দিকে চাপ দিন দূরবর্তী সংগ্রহস্থল।

অবশেষ ইস্যুটি হ'ল - উপরের সমস্ত গিট কমান্ডের সঠিক সুইচগুলি কী কী?

সুতরাং এটি এখানে ...

2repos-sync.sh জিপ স্ক্রিপ্ট

# Clear the folder first - please use this carefully
rm -rf $REPO_NAME  
# clone the reposotory
git clone --bare $ORIGIN_URL

# add a remote repository
cd $REPO_NAME
git remote add --mirror=fetch repo1 $REPO1_URL

# update the local copy from the first repository
git fetch origin --tags

# update the local copy with the second repository
git fetch repo1 --tags

# sync back the 2 repositories
git push origin --all
git push origin --tags
git push repo1 --all
git push repo1 --tags

দ্রষ্টব্য - এই স্ক্রিপ্টটি সংগ্রহস্থল সামগ্রীর মধ্যে বিরোধের মামলাগুলি সমাধান করছে না!


আপনি নিজের উত্তরে উল্লেখ করতে চাইতে পারেন যে আপনি প্রথম কাজটি হ'ল local REPO_NAME দিয়ে একটি বিদ্যমান স্থানীয় ডিরেক্টরি মুছুন। এটি গুরুত্বপূর্ণ বলে মনে হচ্ছে এবং আপনার সমাধানটি অনুলিপি করে এমন লোকদের ডেটা ক্ষতি রোধ করতে পারে।
উইলবার্ট

এটির সাথে যেতে, LibGit2 এই জাতীয় জিনিসটির জন্য দরকারী।
রাবারডাক

0

আমি আমার সমস্ত সংগ্রহস্থলগুলি সংরক্ষণ করার জন্য একটি ব্যক্তিগত গিটল্যাব ব্যবহার করি, তাই আমি প্রতিদিনের বিকাশ করার সময় আমার কেবল একটি উত্স রয়েছে যা আমি ধাক্কা দিয়ে টানছি।

তবে, ওপেন সোর্স প্রকল্পগুলির জন্য, গিটহাব অনেক বেশি প্রাণবন্ত সম্প্রদায়, সুতরাং আমি যদি আমার প্রকল্পগুলিতে সম্প্রদায়ের অবদানগুলি গ্রহণ করতে চাই, তবে আমি চালিত একটি সার্ভার পিং করার জন্য ওয়েব গিটল্যাবের ওয়েব হুক সিস্টেমটি ব্যবহার করি যা গিটহাবের উপর আমার পাবলিক রেপো আপডেট করে।

এটি আমাকে গিটারহাবকে অন্য যে কোনও রিমোট হিসাবে টানতে পারে সে হিসাবে বিবেচনা করতে সহায়তা করে - তবে আমি স্থানীয়ভাবে --no-ff একীভূত করি এবং আমার সমস্ত প্রাথমিক এবং পাবলিক ভান্ডারগুলি কীভাবে পরিবর্তনগুলি বিতরণ করে তা নিয়ে একটি প্রবাহ রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.