পেশাদার অ্যাপ্লিকেশন বিকাশকারীরা কীভাবে জিআইটি এবং সাবভার্সনের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করবেন?


10

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

আমার অ্যাপ্লিকেশনগুলি এত বড় নয় এবং আমি এখনও একটি দলে কাজ করছি না, সেগুলি কি আমার পক্ষে খুব সহায়ক হবে?

কীভাবে সরঞ্জামগুলি ব্যবহার করবেন সে সম্পর্কে এই সাইটে প্রশ্ন রয়েছে তবে আমার কাছে শিক্ষানবিশ সমর্থন দরকার।


5
গিট এবং সাব্ভারশন নির্দেশাবলী নিয়ে আসে; এগুলি মূলত একটি ভাণ্ডার যা একটি কাঠামোগত উপায়ে বিকাশ কোড সঞ্চয় করে। পৃথক বিকাশকারীগণ কোড পরিবর্তনের সম্পূর্ণ রেকর্ড এবং একটি শক্তিশালী ব্যাকআপ সুবিধা পেয়ে উপকৃত হন। প্রকল্পের দলগুলি ওয়ার্কস্টেশনের মধ্যে সিঙ্ক পরিবর্তন করে একই উত্স কোড সংগ্রহস্থল ভাগ করে নেওয়ার ক্ষমতা থেকে উপকৃত হয়।
রবার্ট হার্ভে

উত্তর:


13

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

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

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

সাধারণভাবে উত্স নিয়ন্ত্রণের জন্য থাম্বের কয়েকটি ভাল নিয়মের একটি ভাল ওভারভিউ এখানে দেওয়া হয়েছে: http://scottonwriting.net/sowblog/archive/2008/11/13/163320.aspx

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


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

5

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

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

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

এখানে কয়েকটি দরকারী সংস্থান রয়েছে:

ভিজ্যুয়াল স্টুডিও এবং .NET সহ সাবভারশন এবং কচ্ছপ এসভিএন প্রস্তুত এবং পরিচালনা করছে

সাবভারশন সহ সংস্করণ নিয়ন্ত্রণ


1
+1 দিচ্ছেন না, কারণ আজকাল প্রত্যেকে বিতরণকারী সিস্টেমে স্যুইচ করার সময় প্রথম সিস্টেম হিসাবে সাবভার্সন শেখা এক ধরণের বিপরীত উত্পাদনশীল।
জানু হুডেক

3

শিক্ষানবিসদের জন্য টিউটোরিয়াল

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

SVN

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

পেশাদার উত্স কন্ট্রোল পেশাদার প্রয়োজন পূরণ করে

আপনার প্রশ্ন "কীভাবে পেশাদাররা তাদের প্রকল্পের প্রয়োজনীয়তা পূরণের জন্য জিআইটি এবং সাবভার্সনের মতো সরঞ্জামগুলি ব্যবহার করবেন?" এই প্রশ্নের সাথে নিবিড়ভাবে সম্পর্কিত "টিমগুলি যত তাড়াতাড়ি সম্ভব কাজ করার পরে একে অপরের সাথে না গিয়ে কীভাবে একসাথে কাজ করবে?"

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

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

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

ঘোরাফেরা করার জন্য দুঃখিত, আশা করি এটি সোর্স নিয়ন্ত্রণ ব্যবহারের পথে আপনাকে সহায়তা করবে।


0

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

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

গীট উন্নয়নের দিকে এগিয়ে যাওয়ার পথে উন্নতি করেছে।


'গিট আইবিএম আই "নেটিভ" উত্স ফাইলগুলিতে এখনও কাজ করছে বলে মনে হয় না) - গিটের কোনও ফাইলের মধ্যে কাজ করা উচিত। এখানে সমস্যা কি?
মার্নেন লাইবো-কোসার

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

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

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

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