কীভাবে এসভিএন, শাখা ব্যবহার করবেন? ট্যাগ? ট্রাঙ্ক?


163

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

আমি নীচের বিষয়গুলি পরিষ্কার করতে চাই:

  • আপনি কতবার প্রতিশ্রুতিবদ্ধ? প্রায়শই কেউ Ctrl+ টিপবে s?
  • একটি শাখা কী এবং একটি ট্যাগ কী এবং আপনি কীভাবে এগুলি নিয়ন্ত্রণ করেন?
  • এসভিএন-এ কী যায়? কেবল উত্স কোড বা আপনি এখানে অন্য ফাইলগুলি ভাগ করে নিচ্ছেন? (সংস্করণযুক্ত ফাইল হিসাবে বিবেচনা করা হয় না ..)

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


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

উত্তর:


60

বৈধরূপে প্রতিষ্ঠিত সরকারকে উত্খাত বই আপনার সংগ্রহস্থলের আউট ডিম্বপ্রসর, শাখাবিন্যাস এবং ট্যাগিং জন্য কৌশল উপর তথ্য একটি চমৎকার উৎস।

আরো দেখুন:

আপনি কি কোনও শাখায় বা ট্রাঙ্কে বিকাশ চালিয়ে যান?

শাখা কৌশল


2
বিশেষভাবে দেখুন: svnbook.red-bean.com/en/1.5/…
Morechilli

86

আমরা এখানে সাবভার্সন বাস্তবায়ন করতে এসে যখন আমার কাছে একই প্রশ্নগুলি জিজ্ঞাসা করি - প্রায় 20 বিকাশকারী 4 - 6 টি প্রকল্প জুড়ে ছড়িয়ে পড়ে। '' উত্তর '' সহ কোনও ভাল উত্স আমি পাইনি। গত 3 বছরে আমাদের উত্তর কীভাবে বিকশিত হয়েছে তার কয়েকটি অংশ এখানে রইল:

- যতবার দরকারী হিসাবে প্রতিশ্রুতিবদ্ধ; আমাদের থাম্বের নিয়মটি প্রতিশ্রুতিবদ্ধ হয় যখনই আপনি পর্যাপ্ত কাজ করেন তবে পরিবর্তনগুলি হারিয়ে গেলে এটি পুনরায় কাজ করতে সমস্যা হবে; কখনও কখনও আমি প্রতি 15 মিনিট বা তারপরে কমিট করি, অন্য সময় এটি দিন হতে পারে (হ্যাঁ, কখনও কখনও কোডের 1 লাইন লিখতে আমার একটি দিন লাগে)

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

- আমরা খুব কমই ট্যাগগুলি ব্যবহার করি, যদিও আমরা মনে করি উত্পাদনের ক্ষেত্রে প্রকাশগুলি সনাক্ত করতে তাদের ব্যবহার করা উচিত;

একক পথ ধরে অগ্রসর হওয়ার কথা ভাবুন। কিছু সময় বা উন্নয়নের বিপণনের রাজ্যে পণ্যটির প্রথম সংস্করণ প্রকাশের সিদ্ধান্ত নেওয়া হয়, সুতরাং আপনি '1' (বা '১.০' বা আপনার কী আছে) লেবেলযুক্ত পথে একটি পতাকা লাগান। অন্য কোনও সময়ে কিছু উজ্জ্বল স্ফুলিঙ্গটি প্রোগ্রামটির সমান্তরাল করার সিদ্ধান্ত নিয়েছে তবে সিদ্ধান্ত নিয়েছে যে এতে কয়েক সপ্তাহ লাগবে এবং এর মধ্যে লোকেরা মূল পথে যেতে থাকবে। সুতরাং আপনি পথে একটি কাঁটাচামচ তৈরি করেন এবং বিভিন্ন লোক বিভিন্ন কাঁটাচামচায় ঘুরে বেড়ায়।

রাস্তার পতাকাগুলিকে 'ট্যাগ' বলা হয় এবং রাস্তার কাঁটাচামচগুলি যেখানে 'শাখা' বিভক্ত হয়। মাঝে মাঝে, এছাড়াও, শাখাগুলি আবার একসাথে ফিরে আসে।

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

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

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


18
* How often do you commit? As often as one would press ctrl + s?

যতবার সম্ভব সম্ভব। কোডটি সোর্স নিয়ন্ত্রণে না থাকলে অস্তিত্ব নেই :)

ঘন ঘন কমিট (এরপরে আরও ছোট পরিবর্তন সেট) আপনাকে সহজেই আপনার পরিবর্তনগুলি সংহত করতে এবং কিছু না ভাঙার সম্ভাবনা বাড়িয়ে দেয়।

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

আমি যখন আমার নিজের শাখায় কাজ করি তখন আমি যতটা সম্ভব কমিটিকে বেশি পছন্দ করি (আক্ষরিক যতবার আমি সিআরটিএল + গুলি টিপব)।

* What is a Branch and what is a Tag and how do you control them?

এসভিএন বই পড়ুন - এসভিএন শেখার সময় এটি আপনার শুরু করা উচিত:

* What goes into the SVN?

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


11

প্রতিশ্রুতিবদ্ধ ফ্রিকোয়েন্সি, প্রতিশ্রুতিবদ্ধ বার্তা, প্রকল্পের কাঠামো, উত্স নিয়ন্ত্রণ এবং অন্যান্য সাধারণ নির্দেশিকাতে কী রাখা উচিত সে সম্পর্কে এখানে কয়েকটি সংস্থান রয়েছে:

এই স্ট্যাক ওভারফ্লো প্রশ্নগুলিতে কিছু দরকারী তথ্য রয়েছে যা আগ্রহী হতে পারে:

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

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

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


8

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

শাখাগুলি দুটি উপায়ে একটিতে ব্যবহার করা যেতে পারে, সাধারণত: 1) উন্নয়নের জন্য একটি সক্রিয় শাখা (এবং ট্রাঙ্ক স্থিতিশীল থাকে) বা 2) বিকল্প দেব পাথের জন্য শাখা branches

ট্যাগগুলি সাধারণত প্রকাশগুলি সনাক্ত করার জন্য ব্যবহৃত হয়, তাই তারা মিশ্রণে হারিয়ে যায় না। 'মুক্তি' এর সংজ্ঞাটি আপনার উপর নির্ভর করে।


সম্মত: যতক্ষণ না আপনি বিল্ডটি ভাঙবেন না ততদিন প্রতিশ্রুতিবদ্ধ!
ব্র্যান্ডন মন্টগোমেরি

7

আমি মনে করি মূল সমস্যাটি হ'ল উত্স নিয়ন্ত্রণের মানসিক চিত্রটি বিভ্রান্ত। আমাদের সাধারণত ট্রাঙ্ক এবং শাখা থাকে, তবে তারপরে আমরা ট্যাগ / রিলিজ বা এর সাথে প্রভাবিত এমন কোনও বিষয়ে সম্পর্কিত নয় ideas

আপনি যদি কোনও গাছের ধারণাটি আরও সম্পূর্ণ ব্যবহার করেন তবে এটি পরিষ্কার হয়ে যায়, কমপক্ষে আমার পক্ষে এটি it

আমরা ট্রাঙ্কটি পাই -> শাখাগুলি ফর্ম করে -> ফল দেয় (ট্যাগ / প্রকাশ)।

ধারণাটি হ'ল আপনি একটি ট্রাঙ্ক থেকে প্রকল্পটি বাড়ান, যা ট্রাঙ্কটি শাখার পক্ষে পর্যাপ্ত স্থিতিশীল হয়ে যাওয়ার পরে শাখা তৈরি করে। তারপরে যখন শাখাটি কোনও ফল উত্পন্ন করবে তখন আপনি এটি শাখা থেকে এড়িয়ে একটি ট্যাগ হিসাবে প্রকাশ করবেন।

ট্যাগগুলি মূলত বিতরণযোগ্য। যেখানে ট্রাঙ্ক এবং শাখা তাদের উত্পাদন করে।


4

অন্যরা যেমন বলেছে, এসভিএন বুক শুরু করার সেরা জায়গা এবং আপনার সমুদ্রের পাটি অর্জন করার পরে একটি দুর্দান্ত রেফারেন্স। এখন, আপনার প্রশ্নের ...

আপনি কতবার প্রতিশ্রুতিবদ্ধ? যতবারই কেউ সিটিআরএল + এস টিপবে?

প্রায়শই, তবে আপনি প্রায়শই সিটিআরএল + এস টিপেন না। এটি ব্যক্তিগত স্বাদ এবং / বা দল নীতি বিষয়। ব্যক্তিগতভাবে আমি বলতে চাই যে আপনি কোডের কোনও কার্যকরী টুকরা সম্পূর্ণ করলেই কমিট করুন।

একটি শাখা কী এবং একটি ট্যাগ কী এবং আপনি কীভাবে এগুলি নিয়ন্ত্রণ করেন?

প্রথমত, ট্রাঙ্কটি যেখানে আপনি নিজের সক্রিয় বিকাশ করেন। এটি আপনার কোডের মূল লাইন। একটি শাখা মূল লাইন থেকে কিছুটা বিচ্যুতি। এটি পূর্বের রিলিজের মতো একটি বড় বিচ্যুতি হতে পারে, বা আপনি চেষ্টা করতে চান এমন একটি ছোটখাটো ঝাঁকুনি। একটি ট্যাগ আপনার কোডের একটি স্ন্যাপশট। কোনও নির্দিষ্ট সংশোধনের সাথে লেবেল বা বুকমার্ক সংযুক্ত করার এটি একটি উপায়।

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

এসভিএন-এ কী যায়? কেবল উত্স কোড বা আপনি এখানে অন্য ফাইলগুলি ভাগ করে নিচ্ছেন?

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


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

4

এরিক সিঙ্ক, যিনি জানুয়ারী 2009 এ এসও পডকাস্ট # 36 এ হাজির ছিলেন, সোর্স কন্ট্রোল হাউ টু শিরোনামে নিবন্ধগুলির একটি দুর্দান্ত সিরিজ লিখেছিলেন ।

(এরিক হ'ল সোর্সগিয়ারের প্রতিষ্ঠাতা যিনি সোর্সসেফের প্লাগ-সামঞ্জস্যপূর্ণ সংস্করণ বাজারজাত করেন তবে ভয়ঙ্করতা ছাড়াই))


4

উত্তরগুলির আরও একটি সেট যুক্ত করতে:

  • আমি যখনই কোনও কাজ শেষ করি তখনই আমি প্রতিশ্রুতিবদ্ধ। কখনও কখনও এটি একটি ক্ষুদ্র বাগফিক্স যা কেবল একটি লাইন পরিবর্তন করেছে এবং আমাকে করতে 2 মিনিট সময় নিয়েছিল; অন্য সময় এটি দুই সপ্তাহ মূল্য ঘাম হয়। এছাড়াও, থাম্বের নিয়ম হিসাবে, আপনি এমন কোনও কিছু করবেন না যা বিল্ডটি ভেঙে দেয়। সুতরাং যদি আপনাকে কিছু করতে দীর্ঘ সময় লেগে থাকে, প্রতিশ্রুতি দেওয়ার আগে সর্বশেষতম সংস্করণ গ্রহণ করুন এবং দেখুন আপনার পরিবর্তনগুলি বিল্ডটি ভেঙে ফেলেছে কিনা। অবশ্যই, যদি আমি প্রতিশ্রুতি না দিয়ে দীর্ঘ সময় নিয়ে যাই তবে এটি আমার অস্বস্তি বোধ করে কারণ আমি সেই কাজটি looseিলা করতে চাই না। টিএফএসে আমি এই সুন্দর জিনিসটি এর জন্য "তাক" হিসাবে ব্যবহার করি। এসভিএন-এ আপনাকে অন্য উপায়ে কাজ করতে হবে। সম্ভবত আপনার নিজস্ব শাখা তৈরি করুন বা এই ফাইলগুলিকে অন্য কোনও মেশিনে ম্যানুয়ালি ব্যাকআপ করুন।
  • শাখাগুলি আপনার সম্পূর্ণ প্রকল্পের অনুলিপি। তাদের ব্যবহারের সর্বোত্তম চিত্রণ সম্ভবত পণ্যগুলির সংস্করণ। কল্পনা করুন যে আপনি একটি বড় প্রকল্পে কাজ করছেন (বলুন, লিনাক্স কার্নেল)। কয়েক মাস ঘামের পরে আপনি সর্বশেষে 1.0 সংস্করণে এসে পৌঁছেছেন যা আপনি জনসাধারণের কাছে প্রকাশ করেছেন। এর পরে আপনি আপনার পণ্যের 2.0 সংস্করণে কাজ শুরু করেন যা আরও ভাল হতে চলেছে। তবে মাঝামাঝি সময়ে সেখানে প্রচুর লোক রয়েছে যা 1.0 সংস্করণ ব্যবহার করছে। এবং এই লোকেদের আপনার ঠিক করতে হবে এমন বাগগুলি খুঁজে পান। এখন, আপনি আসন্ন 2.0 সংস্করণে বাগটি ঠিক করতে এবং এটি ক্লায়েন্টদের কাছে শিপ করতে পারবেন না - এটি মোটেই প্রস্তুত নয়। পরিবর্তে আপনাকে ১.০ উত্সের একটি পুরানো অনুলিপি বের করতে হবে, সেখানে বাগটি ঠিক করতে হবে এবং এটি লোকদের কাছে প্রেরণ করতে হবে। এই জন্য শাখা হয়। আপনি যখন মুক্তি 1। 0 সংস্করণ আপনি এসভিএন-তে একটি শাখা তৈরি করেছিলেন যা উত্সের কোডটির একটি অনুলিপি তৈরি করেছিল। এই শাখার নাম দেওয়া হয়েছিল "1.0"। তারপরে আপনি আপনার মূল উত্স অনুলিপিটির পরবর্তী সংস্করণে কাজ চালিয়ে গেছেন তবে 1.0 কপিটি প্রকাশের মুহুর্তে যেমন রয়েছে তেমনই রয়ে গেছে। এবং আপনি বাগগুলি স্থির করতে পারেন। ট্যাগগুলি হ'ল নামগুলি যা ব্যবহারের সহজলভ্যতার জন্য নির্দিষ্ট সংশোধনগুলির সাথে সংযুক্ত। আপনি "উত্স কোডের 2342 রিভিশন" বলতে পারেন, তবে এটি "প্রথম স্থিতিশীল সংশোধন" হিসাবে উল্লেখ করা সহজ। :)
  • আমি সাধারণত উত্স নিয়ন্ত্রণে এমন সব কিছু রেখেছি যা সরাসরি প্রোগ্রামিংয়ের সাথে সম্পর্কিত। উদাহরণস্বরূপ, যেহেতু আমি ওয়েবপৃষ্ঠাগুলি তৈরি করছি, আমি চিত্রগুলি এবং সিএসএস ফাইলগুলিকে উত্স নিয়ন্ত্রণেও রেখেছি, কনফিগার ফাইলগুলি উল্লেখ না করে Project প্রজেক্টের ডকুমেন্টেশন সেখানে যায় না, তবে এটি কেবল পছন্দ হিসাবে বিবেচিত।

3

অন্যরা বলেছেন যে এটি আপনার স্টাইলের উপর নির্ভর করে।

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

তবে বৃহত্তর প্রকল্পে (ভাবেন সরকার, প্রতিরক্ষা, ১০০ কে + এলওসি) আপনি কেবল অবিচ্ছিন্ন ইন্টিগ্রেশন ব্যবহার করতে পারবেন না এটি সম্ভব নয়। এই পরিস্থিতিতে শাখা প্রশাখাগুলি প্রচুর পরিমাণে কমিট করার জন্য ব্যবহার করা ভাল তবে কেবল কী কাজ করবে তা কেবল ট্রাঙ্কের মধ্যে ফিরিয়ে আনা এবং বিল্ডে সংহত হওয়ার জন্য প্রস্তুত is

যদিও শাখা প্রশাখার সাথে একটি সতর্কতা হ'ল যদি সেগুলি সঠিকভাবে পরিচালিত না হয় তবে ট্রাঙ্কে কাজ করা আপনার ভান্ডারটিতে দুঃস্বপ্ন হতে পারে, কারণ প্রত্যেকে ট্রাঙ্কের বিভিন্ন দাগ থেকে বিকশিত হচ্ছে (যা ঘটনাক্রমে সবচেয়ে বড় যুক্তিগুলির মধ্যে একটি one একটানা সমাকলান).

এই প্রশ্নের কোনও সুস্পষ্ট উত্তর নেই, সর্বোত্তম উপায় হ'ল সেরা দলের আপোস সমাধানের জন্য আপনার দলের সাথে কাজ করা।


2

সাবভার্সন সহ সংস্করণ নিয়ন্ত্রণ নতুন এবং পুরানো হাতের জন্য একইভাবে গাইড।

আমি মনে করি না আপনি কমপক্ষে এর প্রথম কয়েকটি অধ্যায় না পড়ে আপনি সাবভারশনকে কার্যকরভাবে ব্যবহার করতে পারেন।


1

প্রতিশ্রুতিবদ্ধতার জন্য, আমি নিম্নলিখিত কৌশলগুলি ব্যবহার করি:

  • যতবার সম্ভব প্রতিশ্রুতিবদ্ধ

  • প্রতিটি বৈশিষ্ট্য পরিবর্তন / বাগফিক্সের নিজস্ব প্রতিশ্রুতি গ্রহণ করা উচিত (একবারে অনেকগুলি ফাইল কমিট করবেন না কারণ এটি সেই ফাইলটির ইতিহাস অস্পষ্ট করে তুলবে - উদাহরণস্বরূপ যদি আমি লগিং মডিউল এবং একটি জিইউআই মডিউল স্বাধীনভাবে পরিবর্তন করি এবং আমি উভয়কে একবারে প্রতিশ্রুতিবদ্ধ করি, উভয় পরিবর্তন উভয় ফাইলের ইতিহাসে দৃশ্যমান হবে This এটি ফাইলের ইতিহাস পড়তে অসুবিধাজনক করে তোলে),

  • কোনও প্রতিশ্রুতি দিয়ে বিল্ডটি ভাঙ্গবেন না - সংগ্রহস্থলের কোনও সংস্করণ পুনরুদ্ধার করা এবং এটি নির্মাণ করা সম্ভব।

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


আপনার নিয়ম 1 এবং 3 কিছুটা পরস্পরবিরোধী। তবে যদি বৈশিষ্ট্য শাখাগুলিতে বড় বিকাশ করা হয়, তবে নিয়ম # 3 ছোট পরিবর্তনগুলির জন্য "ট্রাঙ্ক ভাঙ্গবেন না" যেখানে শাখাগুলি ওভারকিল হবে।
ক্রিস চারবারুক

1

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

উদাহরণস্বরূপ, এসভিএন commit . -m 'bug #201 fixed y2k bug in code'যাহারা ইতিহাসের দিকে নজর রাখে সেই ব্যক্তিকে বলবে যে এই সংশোধনটি কী ছিল।

কিছু বাগ ট্র্যাকিং সিস্টেম (যেমন ট্র্যাক) এই বার্তাগুলির জন্য সংগ্রহস্থলের সন্ধান করতে এবং টিকিটের সাথে সংযুক্ত করতে পারে। যা প্রতিটি টিকিটের সাথে কী কী পরিবর্তন যুক্ত তা কার্যকর করে তোলে।


1

আমাদের কাজের নীতিটি এটির মতো চলে (মাল্টি-ডেভেলপার টিম অবজেক্ট ওরিয়েন্টেড ফ্রেমওয়ার্কে কাজ করছে):

  • আগের দিনের পরিবর্তনগুলি পেতে প্রতিদিন এসভিএন থেকে আপডেট

  • প্রতিদিনই প্রতিশ্রুতিবদ্ধ হন যদি আপনি অসুস্থ বা পরের দিন অনুপস্থিত থাকেন তবে অন্য কেউ সহজেই আপনি যেখান থেকে ছেড়ে গিয়েছিলেন সেখান থেকে দায়িত্ব নিতে পারেন।

  • এমন কোনও কোড তৈরি করবেন না যা কোনও কিছু ভঙ্গ করে, যেহেতু এটি অন্যান্য বিকাশকারীদের উপর প্রভাব ফেলবে।

  • ছোট অংশগুলিতে কাজ করুন এবং দৈনিক অর্থপূর্ণ কমেন্টের সাথে প্রতিশ্রুতিবদ্ধ!

  • একটি দল হিসাবে: একটি উন্নয়ন শাখা রাখুন, তারপরে প্রাক-প্রকাশের কোডটি (কিউএর জন্য) একটি উত্পাদন শাখায় সরান। এই শাখায় কেবলমাত্র পুরোপুরি কার্যকরী কোড থাকা উচিত।



0

আমি মনে করি ফ্রিকোয়েন্সি প্রতিশ্রুতিবদ্ধ করার দুটি উপায় আছে:

  1. প্রতিটি বাস্তবায়িত পদ্ধতির জন্য কোডের ছোট্ট অংশ ইত্যাদির জন্য খুব প্রায়ই প্রতিশ্রুতিবদ্ধ করুন
  2. শুধুমাত্র কোডের সম্পূর্ণ অংশগুলি যেমন মডিউল ইত্যাদির প্রতিশ্রুতিবদ্ধ Commit

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

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