আমি বিতরণিত সংস্করণ নিয়ন্ত্রণের টাওতে নিজেকে পুনরায় শিক্ষিত করার জন্য লড়াই করা আমি এখনও অন্য সাবভার্সন ব্যবহারকারী।
সাবভারশনটি ব্যবহার করার সময়, আমি প্রকল্প-গৌণ পদ্ধতির একটি বড় অনুরাগী ছিলাম এবং আমার বেশিরভাগ প্রাক্তন নিয়োগকর্তার সাথে আমরা আমাদের ভাণ্ডার শাখাগুলি গঠন করতাম; ট্যাগ এবং ট্রাঙ্ক নীচে:
branches-+
+-personal-+
| +-alice-+
| | +-shinyNewFeature
| | +-AUTOMATED-+
| | +-shinyNewFeature
| +-bob-+
| +-AUTOMATED-+
| +-bespokeCustomerProject
+-project-+
+-shinyNewFeature
+-fixStinkyBug
tags-+
+-m20110401_releaseCandidate_0_1
+-m20110505_release_0_1
+-m20110602_milestone
trunk
প্রকৃত উত্স গাছের মধ্যেই আমরা নিম্নলিখিত কাঠামোটি ব্যবহার করব (এর মতো কিছু):
(src)-+
+-developmentAutomation-+
| +-testAutomation
| +-deploymentAutomation
| +-docGeneration
| +-staticAnalysis
| +-systemTest
| +-performanceMeasurement
| +-configurationManagement
| +-utilities
+-libraries-+
| +-log-+
| | +-build
| | +-doc
| | +-test
| +-statistics-+
| | +-build
| | +-doc
| | +-test
| +-charting-+
| | +-build
| | +-doc
| | +-test
| +-distributedComputing-+
| | +-build
| | +-doc
| | +-test
| +-widgets-+
| +-build
| +-doc
| +-test
+-productLines-+
| +-flagshipProduct-+
| | +-coolFeature
| | +-anotherCoolFeature
| | +-build
| | +-doc
| | +-test
| +-coolNewProduct
+-project-+
+-bigImportantCustomer-+
| +-bespokeProjectOne
| +-bespokeProjectTwo
+-anotherImportantCustomer-+
+-anotherBespokeProject
ইঞ্জিনিয়ারিং দলের মধ্যে কাঠামো যোগাযোগের ক্ষেত্রে সাহায্যের জন্য সংগ্রহস্থলের কাঠামোটি ব্যবহার করার (এবং এখনও রয়েছে) ধারণাটি ছিল; ব্যবসায়ের গ্রাহক-মুখোমুখি অংশ এবং অন্যান্য বিভিন্ন স্টেকহোল্ডার এবং ডোমেন বিশেষজ্ঞ
বুদ্ধিমান হতে: উত্স নথি যা "প্রকল্প" ডিরেক্টরিগুলির মধ্যে একটিতে বসে থাকে কেবল একবার একবার ব্যবহার হয়ে যায় (এবং অর্থ উপার্জন করে)। "প্রোডাক্টলাইনস" ডিরেক্টরিগুলির মধ্যে যে কোনও একটি দস্তাবেজগুলি সেই নির্দিষ্ট লাইন থেকে পণ্য বিক্রি হওয়ার পরে বহুগুণ অর্থ উপার্জন করে। "লাইব্রেরি" ডিরেক্টরিগুলির মধ্যে যে কোনও একটি দস্তাবেজগুলি যে সমস্ত পণ্য ব্যবহার করে সেগুলি বিক্রি হয়ে যায় তার থেকে বহুগুণ বেশি অর্থ উপার্জন করে।
এটি ব্যয়গুলির সূক্ষ্মকরণের ধারণাটি সুস্পষ্ট করে তোলে এবং ব্যবসায়ের পুরো উত্স নথির পুনরায় ব্যবহারের জন্য সমর্থন তৈরি করতে সহায়তা করে build
এর অর্থ হ'ল এখানে একটি সাধারণ কাঠামো রয়েছে যার উপরে আমাদের বিল্ড অটোমেশন সরঞ্জামগুলি পরিচালনা করতে পারে। (আমাদের বিল্ড স্ক্রিপ্টগুলি "বিল্ড" ফোল্ডারগুলির সন্ধানকারী উত্স গাছের পথে হাঁটে যার মধ্যে তারা কনফিগারেশন ফাইলগুলি সন্ধান করে যা প্রতিটি উপাদান কীভাবে তৈরি করা যায় তা উল্লেখ করে; ডকুমেন্টেশন জেনারেশন এবং পরীক্ষার জন্য অনুরূপ প্রক্রিয়া ঘটে)।
তাত্পর্যপূর্ণভাবে, আমি যে পণ্যগুলিতে আমি কাজ করি সেগুলি কার্য সম্পাদন পরিমাপ এবং বৈশিষ্ট্য পরীক্ষা চালাতে দীর্ঘ সময় নেয়; 20 থেকে 200 ঘন্টা পর্যন্ত; প্রক্রিয়াজাত পরীক্ষার ফলাফল / ইন্টারমিডিয়েট ডেটা (যা অবশ্যই নির্দিষ্ট সিস্টেমের কনফিগারেশনের সাথে সঞ্চয় করতে হবে এবং বেঁধে রাখতে হবে তাই সময়ের সাথে সাথে পারফরম্যান্সের উন্নতি পরিমাপ করা যেতে পারে) থেকে বেশ কয়েকটি জিবি-র মধ্যে কোথাও উত্পাদন করা। এই সমস্যাটি কনফিগারেশন পরিচালনকে একটি গুরুত্বপূর্ণ বিবেচনা করে তোলে এবং কেন্দ্রীয়ীকরণের জন্য কিছু প্রয়োজনীয়তা আরোপ করে, সাধারণত পারফরম্যান্স পরিমাপ এবং চরিত্রায়ন পরীক্ষা চালানোর জন্য প্রয়োজনীয় গণ্য সংস্থানগুলি সীমিত; (64-128 কোরের একটি ছোট ক্লাস্টার)।
একটি চূড়ান্ত নোট হিসাবে; অবিচ্ছিন্ন ইন্টিগ্রেশন সিস্টেম জানে যে এটি একটি বিল্ড ট্রিগার করা প্রয়োজন; স্থির বিশ্লেষণ; প্রতিবার ট্রাঙ্কটি সংশোধন করা হলে প্রতিটি ধোঁয়া পরীক্ষা ও ইউনিট পরীক্ষা চালানো হয়, প্রতিবার কোনও "ট্যাগ" শাখা সংশোধন করা হয় এবং প্রতিবার কোনও "স্বয়ংক্রিয়" শাখা শাখা সংশোধন করা হয়। এইভাবে, পৃথক বিকাশকারীরা তাদের ব্যক্তিগত শাখা, একটি গুরুত্বপূর্ণ সামর্থ্য, আইএমএইচও সহ সিআই সিস্টেমটি ব্যবহার করতে পারে।
এখন, এখানে আমার প্রশ্ন: আমি কীভাবে উপরের সমস্তগুলি (এবং সম্ভব হলে এটির উন্নতি), মুরচুরিয়ালের সাথে প্রতিলিপি করতে পারি।
--edit:
আমার বর্তমান চিন্তাভাবনার লাইনটি সামগ্রিক কাঠামোটি সংজ্ঞায়িত করার জন্য একটি কেন্দ্রীয় সাবভার্সন রিপোজিটরি ব্যবহার করা, তবে ক্লায়েন্ট হিসাবে এইচজি ব্যবহারের অনুমতি দেওয়া যাতে বিকাশকারীরা স্থানীয়ভাবে রেপো উপলব্ধ করতে পারে।