উত্স নিয়ন্ত্রণে বাইনারি


30

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

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


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

উত্তর:


28

সংস্করণ নিয়ন্ত্রণ (মিসনোমার: উত্স নিয়ন্ত্রণ) এর ধারণা হ'ল আপনাকে ইতিহাসের মধ্য দিয়ে ফিরে যেতে, পরিবর্তনের প্রভাবটি পুনরুদ্ধার করতে, পরিবর্তনগুলি এবং কেন তৈরি হয়েছে তা দেখার অনুমতি দেওয়া। এটি প্রয়োজনীয়তাগুলির একটি ব্যাপ্তি, যার মধ্যে কয়েকটি বাইনারি জিনিসপত্রের প্রয়োজন, যার মধ্যে কিছু নেই।

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

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

আমি কয়েক বছর ধরে খুঁজে পেয়েছি যে এটি করার সবচেয়ে সহজ পদ্ধতিটি হ'ল ইনস্টলেশন সিডির একটি জিপ বা আইএসও চিত্র তৈরি করে এটি পরীক্ষা করে দেখুন The যদি জিসিসি বা অনুরূপ হয়, তবে আপনি যা ব্যবহার করছেন তা বড় আকারের জিপতে বান্ডিল করুন এবং একই কাজ করুন।

উইন্ডোজ এক্সপি এম্বেড থাকা সর্বাধিক চূড়ান্ত কেসটি হ'ল "টুলচেইন" একটি চলমান উইন্ডোজ এক্সপি ভিএম, যেখানে এসকিউএল সার্ভার এবং কয়েকশত প্যাচ ফাইলের সাথে কনফিগারেশন ফাইলের স্ট্যাক অন্তর্ভুক্ত ছিল। পুরো লটটি ইনস্টল করা এবং এটি আপডেট হতে প্রায় ২-৩ দিন সময় লাগে। উত্তরসূরির জন্য এটি সংরক্ষণ করা মানে সংস্করণ নিয়ন্ত্রণে পুরো ভিএম পরীক্ষা করা। ভার্চুয়াল ডিস্কটি প্রায় 6 x 2 গিগাবাইট চিত্রের তৈরি হিসাবে দেখে আসলে এটি বেশ ভাল। শীর্ষে শোনাচ্ছে, তবে আমার পরে আসা ব্যক্তিটির পক্ষে এটি জীবনটি খুব সহজ করে তুলেছিল - 5 বছর পরে।

সংক্ষিপ্তসার: সংস্করণ নিয়ন্ত্রণ একটি সরঞ্জাম। এটি কার্যকর হওয়ার জন্য ব্যবহার করুন, শব্দের অর্থের মতো জিনিসগুলির সম্পর্কে ঝাঁকুনি দেবেন না এবং এটিকে "উত্স নিয়ন্ত্রণ" বলবেন না কারণ এটি এর চেয়ে বড় its


1
এবং যখন ভিএম আপনার রেপো বেলুনগুলি 12 গিগাবাইটে আপডেট করতে হবে? আপনার যদি এখনও বাইনারি আলাদা হয় তবে আপনি এখনও 10 জিবি + রেপো কথা বলছেন
TheLQ

3
ভাল, না। আপনি যদি ভিএমওয়্যার ব্যবহার করেন তবে আপনি ডিস্ক স্ন্যাপশট ব্যবহার করতে পারেন। এগুলি মূল বেসলাইন ডিস্ক চিত্র সংরক্ষণ করে এবং কেবলমাত্র ছোট্ট যা ডেল্টাস যুক্ত নতুন ফাইল যুক্ত করে। আপনাকে কেবল নতুন তৈরি করা ফাইলগুলি পরীক্ষা করতে হবে তা মনে রাখা দরকার। সর্বশেষে আমি এটি দেখেছি, একটি আপডেট প্রায় 250 কে - মুরগির ফিড যুক্ত করেছে। তদতিরিক্ত, রেপো আকার সম্পর্কে উদ্বেগ করা অর্থহীন - ডিস্ক সস্তা।
দ্রুত

আপনার এমবেডেড সরঞ্জাম চেইন কোনও নেটওয়ার্ক লাইসেন্সের উপর নির্ভর করে তখন কী হবে :)
ড্যান

18

নিল ফোর্ড প্রোডাকটিভ প্রোগ্রামারটিতে যুক্তি দেয় যে আপনার বাইনারিগুলি উত্স নিয়ন্ত্রণে রাখা উচিত :

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

আমি আর একমত হতে পারি না; যদিও এটি বিতর্কিতভাবে কোনও কাজের জন্য ভিসিএসটি বিভক্ত করছে যা এটি (বাইনারি রাখার জন্য) ডিজাইন করা হয়নি, আমি মনে করি সুবিধাগুলি সম্ভাব্য ত্রুটিগুলি ছাড়িয়ে যায়। তবে, যেমনটি পরে লেখক নোট করেছেন, কখনও কখনও ভিসিএসে বাইনারিগুলি রাখা কোনও ব্যবহারিক সমাধান নাও হতে পারে, তাই অন্যান্য বিকল্পগুলি বিবেচনা করা উচিত - যেমন ম্যাপযুক্ত নেটওয়ার্ক ড্রাইভে রাখা।

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

আমি আশা করি আমি কয়েক বছর আগে এই বইটি পড়েছিলাম যখন আমি গ্রাফিক্স লাইব্রেরি (যা dll ফাইল ছিল) ব্যবহার করে একটি গেমের সাথে কাজ করছিলাম; আমি কিছুক্ষণের জন্য বিকাশকে বাধা দিয়েছি এবং যখন আমি চালিয়ে যেতে চেয়েছিলাম তখন আর dll খুঁজে পেলাম না কারণ প্রকল্পটি মারা গেল।


2
হ্যাঁ, এটি প্রায়শই ঘটে। আমার একটি শখের প্রকল্প রয়েছে যেখানে আমি একটি স্ক্যানার জেনারেটরের উপর নির্ভর করি যা তার লেখক 3-4 বছর আগে ফেলে রেখেছিলেন। ভাগ্যক্রমে এটি সর্বদা সংস্করণ নিয়ন্ত্রণে ছিল।
খ্রিস্টান ক্লাউজার

9

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

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

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

আপনার ব্যক্তিগত সংগ্রহস্থলটির পরে প্রচলিত ফাইল সিস্টেম ব্যাকআপ সরঞ্জামগুলির সাহায্যে ব্যাক আপ নেওয়া যেতে পারে।

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


8

উত্স নিয়ন্ত্রণ উত্স জন্য। উত্সগুলি যা আপনি অন্য জিনিস থেকে তৈরি করতে অক্ষম। কিছু ফাইল যা উত্স হিসাবে যোগ্যতা বাইনারি হয়ে থাকে।

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

বেশিরভাগ ভিসিএসের এমন বৈশিষ্ট্য রয়েছে যা মানব-পঠনযোগ্য উত্সকে মোকাবেলা করা সহজ এবং সংরক্ষণের জন্য আরও দক্ষ করে তোলে, তবে বাইনারিগুলি যদি নিরবচ্ছিন্নভাবে ফিরে আসে তবে তা বাইনারিগুলির পক্ষে উপযুক্ত নয় বলে সত্যই সত্য নয়। কোনও ভিসিএস অভ্যন্তরীণভাবে বাইনারিগুলির সাথে কীভাবে আচরণ করে তা পুরোপুরি নির্ভর করে তার লেখকরা কেবলমাত্র পার্থক্য রাখার চেষ্টা করা যে মূল্যবান তা ভেবেছিল on ব্যক্তিগতভাবে, আমি মনে করি যে সিসিআরটিপি বিতরণের সম্পূর্ণ কপিগুলি 600K এ একটি পপ সংরক্ষণ করা আমার অন্যান্য সমস্ত উত্সের সাথে এর সংস্করণটি ট্যাগ করার ক্ষমতা দ্বারা তৈরি করা বেশি।


4

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

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


1
আমি বিল্ড প্রক্রিয়া জটিল করার বিষয়ে উদ্বিগ্ন, কারণ দলের বেশিরভাগ অংশ গণিতবিদ এবং প্রক্রিয়াটির বিশাল ভক্ত নয়।
ড্যানিয়েল গোল্ডবার্গ

3

আপনার উত্স নিয়ন্ত্রণ আপনি যা করেন তার উত্সকে ধরে রাখে । যদি প্রদত্ত বাইনারি ব্লবটি উত্স থেকে পুনর্গঠন করা যায় তবে এটি উত্স নয় এবং উত্স কোড সংগ্রহস্থলে যাওয়া উচিত নয়। কেবলমাত্র পুনরুদ্ধারযোগ্য ব্লবগুলি উত্স নিয়ন্ত্রণে থাকা উচিত।

আপনার উত্সগুলির সময়কালে আপনি বাইনারি ব্লবগুলি তৈরি করে থাকেন তার অন্য একটি রেপোজিটরি নেটওয়ার্ক ফোল্ডার থাকে। এগুলি গ্রাহকদের কাছে স্থাপন করা বা প্রকল্পগুলিতে ব্যবহার করা যেতে পারে (প্রতিবার স্ক্র্যাচ থেকে সবকিছু তৈরি করার পরিবর্তে)।

সুতরাং, যদি এটি উত্স হয় তবে এটি রাখুন। যদি না হয়।


কে এইটা কমে যাবে ?? আকর্ষণীয় কেন: ডি

এটি আমার ছিল না, তবে আমি সন্দেহ করি যে এর উত্তরের ২ য় অর্ধের সাথে এটি দ্বিমত পোষণ করেছে।
জোয়েল কোহোর্ন

@ জোয়েলকোহুর্ন, আকর্ষণীয়, ঠিক যেমনটি ম্যাভেনের সংগ্রহস্থল।

2

লক্ষ্যটি হ'ল সাম্প্রতিক কোডটি পেতে এবং কোনও কিছু ইনস্টল / সেটআপ না করেই এটি তৈরি করতে সক্ষম (তাই "একটি" একক ক্লিক "বিল্ড)।

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

বিষয়টিতে ডেরিক গ্রোরের এই ব্লগ পোস্টটি দেখুন ।


2

আমি দুটি ভিন্ন বিল্ড স্টেজ সহ একটি প্রকল্পে কাজ করছি

  • "মূল প্রোগ্রাম বিল্ড" এর কয়েক হাজার সোর্স কোড টেক্সট ফাইলের তুলনায় কয়েকটি বাইনারি প্রয়োজন, তাই বাইনারিগুলি সংগ্রহস্থলটিতে পরীক্ষা করা হয়। এটি কাজ করে।

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

উভয় কৌশলই ঠিকঠাক কাজ করে এবং "উত্স নিয়ন্ত্রণ থেকে চেক আউট করার জন্য আপনার কোডটি সংকলনের জন্য প্রয়োজনীয় সমস্ত কিছু অন্তর্ভুক্ত রয়েছে" প্রয়োজনীয়তা পূরণ করে।


1

ভবিষ্যতের কোনও সময়ে আপনাকে পণ্যটির নির্দিষ্ট সংস্করণগুলি পুনর্নির্মাণ করার জন্য আপনার যা যা প্রয়োজন তা রাখতে হবে।

তবে আপনাকে সবকিছু সোর্স কন্ট্রোলে রাখতে হবে না।

একটি সংস্থা হিমশীতল সার্ভার র‌্যাক রেখেছিল (কারণ ওএস কেবলমাত্র সেই নির্দিষ্ট হার্ডওয়্যারটিতেই চালিত হয়েছিল, এবং সরঞ্জামচেইন কেবল সেই ওএসের উপর দৌড়েছিল এবং উত্সটি সেই সরঞ্জামচেইনের উপর নির্ভরশীল ছিল)। উত্স নিয়ন্ত্রণে এটি পরীক্ষা করতে পারে না।

যদি আপনার কোনও বিল্ডের প্রয়োজনীয়তাগুলি বিভক্ত করার প্রয়োজন হয়, তবে আপনার দুটি সংস্করণ নিয়ন্ত্রণ সিস্টেম সিঙ্ক করে রাখার অ্যাকাউন্টিং সমস্যা রয়েছে। উদাহরণস্বরূপ এই পায়খানাটির হার্ডওয়্যার বাক্স, বা এই সংরক্ষিত ব্যাকআপ ভলিউমের ভিএম বা বাইনারিগুলি এই এসভিএন সোর্স কোড রিভিশন, ইত্যাদি সহ যান This এটি একা উত্স নিয়ন্ত্রণ সিস্টেম ব্যবহার করে, তবে দ্রবণযোগ্য mess


0

আমার মনে এসসিএম-তে বাইনারি চেক ইন করা খুব বিশৃঙ্খলা আমি একটি খুব জটিল প্রকল্প চালিয়েছি, যার তৃতীয় অংশের লাইব্রেরিতে অনেক বেশি নির্ভরশীলতা রয়েছে। আমরা যে নীতিগুলি গ্রহণ করেছি:

  1. সমস্ত উত্স কোড এসসিএম দিয়ে পরিচালিত হয়
  2. সমস্ত নির্ভরতা আইভির সাহায্যে পরিচালিত হয়, এতে দুর্দান্ত গ্রহগ্রহের একীকরণ রয়েছে।

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


0

ব্যক্তিগতভাবে, দার্শনিকভাবে, আমি বৃহত বাইনারি ফাইলগুলিতে পয়েন্টারগুলিতে সোর্স কন্ট্রোল চেক করতে দিতে আগ্রহী (ক্ষুদ্র বাইনারি সংস্থানগুলি ঠিক আছে), এবং ফাইলের বিষয়বস্তু নয়। এই পয়েন্টারে বাইনারি ফাইল সামগ্রীগুলির একটি হ্যাশ থাকবে।

বাইনারি ফাইল নিজেই উত্স নিয়ন্ত্রণ দ্বারা পরিচালিত হবে না। এটি এমন কোনও লাইব্রেরিতে সংরক্ষণ করা হবে যেখানে পয়েন্টার বা হ্যাশটি ব্যবহার করে এটি পুনরুদ্ধার করা যেতে পারে।

গিট এলএফএস এবং গিট অ্যানেক্স এটি করে তবে তারা বাইনারি ফাইলগুলি কিছুটা হলেও পরিচালনা করার চেষ্টা করে, আমি চাই না তারা সেগুলি করুক। আমি গিটকে কেবল চেকসামগুলি সঞ্চয় করতে এবং আমার বাইনারি ফাইলগুলি পরিবর্তন হয়েছে কিনা তা আমাকে বলতে চাই - তবে আমি এটিগুলি পরিচালনা করার চেষ্টা করতে এবং সেগুলি সঞ্চয় করতে চাই না। আমি নিজে এটি করতে চাই

আমি মনে করি যে গিট ছোট এবং মাঝারি আকারের বাইনারি ফাইলগুলি পরিচালনা করতে পারে তবে আমি নিশ্চিত নই যে এটি বড় বাইনারি ফাইলগুলি পরিচালনার জন্য সঠিক সরঞ্জাম।

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