আর্গুমেন্টগুলি আবার বাইনারি ফাইলগুলি এসসিএমগুলিতে চেক ইন করে


10

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

তারা জানে যে এটি একটি খারাপ অনুশীলন তবে তারা মনে করে যে এটি "এটি কাজ করে" এবং অনেকেই পিঁপড়া ছাড়াও মাভেন এবং অন্যান্য বিল্ডিংয়ের সরঞ্জামগুলি সম্পর্কে জানলেও এটি কোনও সমস্যা নয়। প্রধানমন্ত্রী এবং প্রোগ্রামার উভয়ই (প্রায় ৫০ জন) এর বিরুদ্ধে যে কোনও যুক্তি শুনতে এবং এমনকি স্বীকার করতেও প্রস্তুত যে এটি ব্যাকআপের জায়গার অপচয় হ'ল তবে আমি সত্যিই দৃ .় বিশ্বাসী হতে চাই কারণ অভ্যাসের পরিবর্তনটি প্রচুর প্রচেষ্টার সাথে জড়িত। কোন পরিবর্তনকে সমর্থন করার জন্য আপনি কোন যুক্তি ব্যবহার করেন?

সম্পাদনা: ঠিক আছে, নির্ভরতা এবং উত্পন্ন ফাইলগুলির মতো প্রায় পরিবর্তন হয় না এমন ফাইলগুলির মধ্যে পার্থক্য তৈরি করে বোঝা যায়। তবুও, আমি পরবর্তীগুলির বিরুদ্ধে কারণগুলিতে আগ্রহী।

উত্তর:


7

স্টোরেজ স্পেসটি সস্তা, সুতরাং আপনার ফাইলগুলিতে কেন চেক করা উচিত বা করা উচিত নয় এটির জন্য এটি খুব দৃ .়প্রত্যয়ী যুক্তি নয়।

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

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

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

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

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

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


10

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


2

এসসিএম ব্যবহারের অন্যতম প্রধান সুবিধা হ'ল আপনি অতীতে যে কোনও সময় থেকে আপনার সিস্টেমটিকে পুনর্গঠন করতে পারেন। সুতরাং আপনার এসসিএম এ আপনার চূড়ান্ত বিল্ডটি সংরক্ষণ করার কোনও অর্থ নেই কারণ আপনি কেবল পুনর্বিবেচনা নম্বরটি পরীক্ষা করে এটি তৈরি করতে পারেন।

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

এটি প্রায় কেউই করেন না।


ঠিক আছে, আমি সম্মত: নির্ভরতা খুব কমই পরিবর্তিত হয়। তবে উত্স কোডের এক লাইনের পরিবর্তিত একটি 20Mb WAR ফাইলটি চেক-ইন করার যোগ্য নয়।
ইথার

3
কেন না? আপনি কি ডিস্কের জায়গার বাইরে চলে যাচ্ছেন? যদি আপনার কাছে উত্স না থাকে এবং এটি প্রয়োজনীয় নির্ভরতা হয় তবে আপনার কোনও পছন্দ নেই, যদি আপনি এটি করেন তবে এটি বাইনারি হিসাবে গণনা করা হয় না এবং আপনার যখন প্রয়োজন হয় আপনি এটি তৈরি করতে পারেন।
হেনরি

0

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

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