এসভিএন সেরা অনুশীলন - একটি দলে কাজ করা


98

আমি এসভিএন দিয়ে শুরু করছি। আমি বেসিক কমান্ড জানি এবং বেস নীতিগুলি বুঝতে। আমি ভাবছিলাম যে টিমের পরিবেশে সাবভার্সনের সাথে কাজ করার জন্য কারও কাছে কোনও টিপস বা সেরা অনুশীলন রয়েছে কিনা।

কোড করার সময় যুক্তিসঙ্গত ভার্বোজ বার্তা যুক্ত করার সুবিধাটি আমি দেখতে পাচ্ছি, তবে আমার মনে রাখা উচিত এমন আরও কিছু জিনিস রয়েছে?

সমস্ত দুর্দান্ত উত্তরের জন্য ধন্যবাদ - তারা অনেক সাহায্য করেছে।

উত্তর:


76

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

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

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


4
ব্রাঞ্চিং এবং মার্জ করা এসভিএন-এ একটি ব্যথার বিষয়। অন্যান্য ভিসিএসগুলি এটিকে আরও ভালভাবে পরিচালনা করে তবে এসভিএন এর জন্য আমি কখনই কোনও শাখা-ভারী প্রক্রিয়াটির পক্ষে পরামর্শ দেব না।
ব্রানান

7
@ ব্রানান ভুল এটি কারণ আপনি কীভাবে উত্স নিয়ন্ত্রণটি সঠিকভাবে ব্যবহার করবেন তা জানেন না। আপনি যখন শাখা করবেন, আপনি আপনার কাজটি করার জন্য এবং আপনার শাখাটি ট্রাঙ্ক থেকে আপডেট করার জন্য এবং ট্রাঙ্ক থেকে আপনার শাখায় ডেইলি বা একাধিকবার এক দিন (আপনার পছন্দ) সর্বশেষ পরিবর্তনগুলি মার্জ করার জন্য একটি ভাল দেব হিসাবে প্রত্যাশা করা হয় যাতে শেষ পর্যন্ত আপনি না পাইলড নরকে মার্জ করে দিয়েছে। আমার পিসিতে সর্বদা স্থানীয়ভাবে কমপক্ষে 4-5 টি শাখা চলছে এবং এই দুঃস্বপ্নের লোকেরা এর আগে কখনও কথা বলে না কারণ আমি এটি সঠিকভাবে করছি ... এটি প্রায়শই আপডেট করা হয় যাতে লোকেরা ট্রাঙ্কে যাচাই করে থাকে এবং কাজ করছে এবং সম্পর্কিত কোড যুক্ত
PositiveGuy

66

কোড পরিবর্তনগুলির সাথে ফর্ম্যাট পরিবর্তন পরিবর্তন করবেন না

আপনি যদি কোনও দৈত্য ফাইলের সাদা স্থান ( Control+ K+ D) পুনর্গঠন করতে চান তবে ঠিক আছে। প্রকৃত যৌক্তিক পরিবর্তন থেকে আলাদা করে ফর্ম্যাটিং পরিবর্তনটি প্রতিশ্রুতিবদ্ধ। আপনি যদি ফাইলগুলিতে চারপাশে ফাংশনগুলি সরিয়ে নিতে চান তবে একই যায়। আসল সম্পাদনা থেকে পৃথক করে চলার প্রতিশ্রুতি দিন।


4
তাই আমি সারাদিন একটি ফাইল সম্পাদনা করি এবং এখন এটি সম্পাদন করার সময় এসেছে, আমি কীভাবে বিন্যাসকে আলাদা করব?
ডাস্টিন গেটেজ

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

4
+1 প্রাসঙ্গিক পরিবর্তনগুলি প্রাসঙ্গিক পরিবর্তনগুলি পর্যালোচনা করতে লাগে এমন প্রচেষ্টাটিকে বাড়িয়ে তোলে। এছাড়াও মার্জ / পোর্ট পরিবর্তনগুলি (শক্তভাবে বলা, একটি ভিন্ন শাখা) তৈরি করা আরও শক্ত করে তোলে।
এটেস গোলাল

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

4
দলের সদস্যদের কোড পর্যালোচনা এবং শিক্ষার মাধ্যমে এটি প্রয়োগ করা যেতে পারে। আমি মনে করি না যে কোড পরিবর্তনগুলি থেকে যৌক্তিক পরিবর্তনগুলি পৃথক করা পর্যালোচনাকারীর বোঝা উচিত। এটি প্রয়োগকারীদের দায়িত্ব হওয়া উচিত।
মার্কেজ

43

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


4
এটি +1। আপনি যখন প্রতিশ্রুতি দিচ্ছেন তখন এমন ব্যথার মতো মনে হয়। আপনি যখন পুরানো কোডটি পর্যালোচনা করছেন তখন পারমাণবিক চুক্তিতে পূর্ণ একটি রেপো অমূল্য।
গর্ডন উইলসন

4
বৈশিষ্ট্য শাখার জন্য এটি নয় ... বৈশিষ্ট্য শাখায় যতগুলি কমিট প্রয়োজন ততটুকু করুন, তারপরে আপনি যখন প্রস্তুত হন তখন এটি ট্রাঙ্কে মিশে যান ... রোলব্যাকগুলি কেবল মার্জ করা কমিট সরিয়ে দেওয়ার অর্থ। সম্পর্কিত কোড একসাথে রাখার জন্য +1 ...
farinspace

16

ইতিমধ্যে অনেক কিছুই উল্লেখ করা হয়েছে, এবং এখানে আরও কিছু রয়েছে:

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

  2. প্রতিশ্রুতিবদ্ধ পরিবর্তন এবং আদর্শভাবে এর জন্য প্যাচ সম্পর্কিত আপনার বিকাশকারী মেলিং তালিকায় (বা এই লক্ষ্যটির জন্য নির্দিষ্ট একটি) কোনও ইমেল প্রেরণ করবে এমন একটি পোস্ট কমিট ইভেন্ট যুক্ত করুন

  3. আপনার বাগ ট্র্যাকারের সাথে একীভূত করুন যাতে কমিটের রেফারেন্সগুলি ডিফের লিঙ্কগুলির সাথে বাগ / বৈশিষ্ট্য অনুরোধগুলিতে প্রদর্শিত হয়। ম্যান্টিসবিটির মতো বাগ ট্র্যাকাররা এটি সমর্থন করে।

  4. সঙ্গে একীভূত বিবেচনা একটানা ইন্টিগ্রেশন (যেমন CruiseControl.NET ), NAnt বিল্ড জন্য, এবং NUnit ইউনিট পরীক্ষার জন্য / বনাম। এইভাবে একবার ব্যবহারকারী চেক-ইন কোড বা একটি নির্ধারিত বিরতিতে কোডটি সংকলিত হয়ে যায়, ইউনিট পরীক্ষাগুলি চালানো হয় এবং বিকাশকারী প্রক্রিয়াটির প্রতিক্রিয়া পান। ভান্ডারটি ভাঙ্গা থাকলে (যেমন তৈরি না করে) এটি দলের বাকি সদস্যদেরও সতর্ক করবে।


আমরা যে অনুশীলনটি ব্যবহার করি তা হ'ল সমস্ত কনফিগারেশন ফাইলের কনফিগারেশন ফাইলগুলি কনফিগারেশন হিসাবে পরিবর্তিত হয়েছে যেমন কনফিগারেশন ফাইলগুলি সার্ভারে রাখা হয় তবে প্রতিটি দলের সদস্যের নিজস্ব থাকে। কনফিগ ফাইলে যখন কিছু বড় পরিবর্তন হয় তার চেয়ে আমরা কপি ফর্ম
এসএনএন

15

ঠিক আছে, বেসিকগুলি:

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

7
আমি আমার শাখা এবং ট্যাগগুলির সাথে বিপরীতটি করি। শাখাগুলি ট্রাঙ্কের কাঁটাচামচগুলির জন্য, যা শেষ পর্যন্ত ট্রাঙ্কের সাথে মিশে যায়। ট্যাগগুলি কোড জমা করার জন্য।
স্টিভ_সি

4
শাখাগুলি এমন অনুলিপি যা পরিবর্তন করতে পারে। ট্যাগগুলি এমন অনুলিপি যা পরিবর্তন করা উচিত নয়। svnbook.red-bean.com/en/1.2/svn.branch
डर.

আমিও একই কাজ করি। আমি যখন QA বা উত্পাদনে কোড প্রকাশ করি তখন আমি ট্যাগ এবং শাখা করি এই রিলিজের জন্য বাগ ফিক্সগুলি সম্বোধন করার জন্য আমাদের কেবল পঠনযোগ্য মার্কার পাশাপাশি একটি শাখা রয়েছে যা ট্রাঙ্কে সংঘটিত নতুন বৈশিষ্ট্য বিকাশের উপর প্রভাব ফেলবে না।
জেমস এগার্স 19

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

কোড জমা করার জন্য "ট্যাগ" ব্যবহার করা উচিত। আপনি যদি "ট্যাগ" শাখাটি পরিবর্তন করার চেষ্টা করেন, আপনার এসভিএন ক্লায়েন্ট এমনকি আপনাকে সতর্কও করে।
দানিজেল

12

লোকেরা যে উত্তর দিচ্ছে তা দুর্দান্ত। এসভিএন-এর সর্বোত্তম অনুশীলনের জন্য এর বেশিরভাগ সংক্ষিপ্তসার এসএনএন ব্যবহারকারী দস্তাবেজে ।
পুনরাবৃত্তি করতে:

  1. আপনার সংগ্রহস্থল কাঠামো সেট আপ করুন (আপনার ট্রাঙ্ক, শাখা এবং নীচে ট্যাগগুলির সাথে প্রকল্পের মূল থাকা উচিত)
  2. আপনার নীতি পুনরায় শাখা চয়ন করুন (ব্যক্তিগত শাখা, মাইলফলক / রিলিজ / বাগ ইত্যাদি প্রতি শাখা) এবং এটিতে আটকে থাকুন - আমি কমের চেয়ে আরও বেশি শাখা প্রশস্ত করার পরামর্শ দিচ্ছি, তবে ব্যক্তিগত শাখার প্রয়োজন নেই
  3. আপনার পলিসি পুনরায় ট্যাগিং চয়ন করুন - আরও বেশি বেশি ট্যাগ আরও ভাল, তবে আপনার ট্যাগ নামকরণের কনভেনশনগুলি সর্বাধিক গুরুত্বপূর্ণ decide
  4. আপনার নীতিটি ট্রাঙ্কের প্রতিশ্রুতিবদ্ধতা চয়ন করুন - ট্রাঙ্কটিকে "পরিষ্কার" হিসাবে যথাসম্ভব রাখুন, এটি যে কোনও সময় মুক্তি পেতে সক্ষম হওয়া উচিত

এটি বেশ পুরানো সেরা অনুশীলন, সুতরাং আমি মনে করি না যে কোলাবনেট তাদের আর কোনও প্রস্তাব দেয়। কোন নতুন সেরা অনুশীলন উপলব্ধ আছে? আপনি
যেটির

4
@ মিলিবেল্ট - আমি অ্যাপাচি সংস্করণে লিঙ্কটি আপডেট করেছি। বয়সের নির্বিশেষে আপনার রেপো কাঠামো, আপনার ব্রাঞ্চিং নীতি, আপনার ট্যাগিং নীতি এবং আপনার ট্রাঙ্ক কমিট নীতিগুলির সাথে উপরের সত্যিকারের ভাল উত্তরের সাথে সম্পর্কিত ধারণাগুলি এখনও দৃ are়।
hromanko

যদিও "শাখা-যখন প্রয়োজনীয় সিস্টেম" বর্ণনাটি বেশ বাদাম pretty অফিসের শ্যুটিংয়ের রেসিপিটির মতো শোনাচ্ছে।
nnot101

10

আমি যে স্টাডিগুলিতে আঁকছি তার সর্বোত্তম অভ্যাসগুলির সংক্ষিপ্ত বিবরণ দিতে চাই:

  1. বাইনারি কমিট করবেন না । বাইনারিগুলির জন্য পৃথক সংগ্রহস্থল থাকতে হবে, যেমন নেক্সাস , আইভি বা আর্টিফ্যাক্টরি
  2. ভান্ডার কাঠামো থাকতে হবে । ব্যক্তিগতভাবে আমি নিম্নলিখিত সংগ্রহস্থল কাঠামো ব্যবহার করি:

    /trunk
    /tags
        /builds
            /PA
            /A
            /B
        /releases
            /AR
            /BR
            /RC
            /ST
    /branches
        /experimental
        /maintenance
            /versions
            /platforms
        /releases
    
  3. শাখার ধরণের নির্দিষ্ট তালিকা ব্যবহার করুন । আমার তালিকাটি নিম্নলিখিত: পরীক্ষামূলক , রক্ষণাবেক্ষণ , সংস্করণ , প্ল্যাটফর্ম , রিলিজ
  4. নির্দিষ্ট ধরণের ট্যাগ ব্যবহার করুন : PA(প্রাক-আলফা), A(আলফা), B(বিটা), AR(আলফা-রিলিজ), BR(বিটা-রিলিজ), RC(প্রকাশের প্রার্থী), ST(স্থিতিশীল)।
  5. মার্জ করার প্রয়োজনীয়তা হ্রাস করুন । যখন মার্জ করা সম্ভব / উত্সাহিত হয় এবং কখন তা হয় না সেগুলি সম্পর্কে নিয়ম থাকতে হবে।
  6. সংস্করণ নম্বর । আটকে থাকার জন্য ভার্সন সংখ্যায়ন পদ্ধতির প্রতিষ্ঠিত হওয়া উচিত। সাধারণত এটি সফ্টওয়্যার কনফিগারেশন ম্যানেজমেন্ট প্ল্যানের মতো নথিতে বর্ণিত হয়, এটি উচ্চ-স্তরের প্রকল্পের ডকুমেন্টেশনের একটি অংশ। ব্যক্তিগতভাবে আমি জটিল সংস্করণ নম্বর পদ্ধতি ব্যবহার করি। : এই পদ্ধতির মতে, সংস্করণ নিদর্শন নিম্নলিখিত আছে Nxx (রক্ষণাবেক্ষণ / সমর্থন শাখা), NMx (মুক্তি শাখা), NxK (বিল্ড), NMK (মুক্তি)।
  7. যতটা সম্ভব ঘন ঘন প্রতিশ্রুতিবদ্ধ । যদি এটি কঠিন হতে থাকে (উদাহরণস্বরূপ, যখন বৈশিষ্ট্যটি প্রয়োগ করতে এবং এমনকি কোডটি সংকলন করার জন্য খুব বেশি পরিবর্তন আনতে হবে), পরীক্ষামূলক শাখা ব্যবহার করা উচিত should
  8. ট্রাঙ্কে সর্বশেষতম উন্নয়ন থাকতে হবে । উদাহরণস্বরূপ, যখন ট্র্যাঙ্কে বা শাখায় অ্যাপ্লিকেশনটির নতুন প্রধান সংস্করণ ( এনএক্সএক্স ) বিকাশ করার উপায় থাকে , সিদ্ধান্তটি সর্বদা ট্রাঙ্কের পক্ষে নেওয়া উচিত । পুরানো সংস্করণটি রক্ষণাবেক্ষণ / সমর্থন শাখায় ব্রাঞ্চ করা উচিত। এটি ধরে নেওয়া হয় যে প্রধান সংস্করণগুলির মধ্যে একটি স্পষ্ট পার্থক্য রয়েছে এবং তাদের নির্দিষ্টকরণ (আর্কিটেকচার, সামঞ্জস্য) যত তাড়াতাড়ি সম্ভব উদ্ভূত হয়েছিল
  9. কঠোর মুক্তি শাখা উপর নীতি 'বিল্ড ভঙ্গ করবেন না' । ইতিমধ্যে এটি ট্রাঙ্কের জন্য কঠোর হওয়া উচিত নয় যতক্ষণ না এটির পরীক্ষামূলক বিকাশ বা কোডবেস থাকতে পারে যার সমাধানের জন্য মার্জ ইস্যুগুলির প্রয়োজন।
  10. এসএনএন ব্যবহার করুন : বহিরাগত । এটি আপনার প্রকল্পকে মডুলারিকরণ, স্বচ্ছ মুক্তি ব্যবস্থাপনার পদ্ধতি স্থাপন, বিভাজন এবং বিভিন্ন কার্যকারিতার উপর বিজয়ী করার অনুমতি দেবে।
  11. ইস্যু ট্র্যাকিং ব্যবহার করুন । আপনি প্রতিশ্রুতিবদ্ধ বার্তার ভিতরে ইস্যুটির উল্লেখটি উল্লেখ করতে সক্ষম হবেন।
  12. খালি প্রতিশ্রুতি বার্তা অক্ষম করুন । এটি প্রাক-কমিট হুক ব্যবহার করে করা যেতে পারে।
  13. আপনি কোন শাখাটি অবিচ্ছিন্নভাবে সংহত করতে চান তা নির্ধারণ করুন । উদাহরণস্বরূপ আমি ট্রাঙ্ক , রক্ষণাবেক্ষণ এবং মুক্তির শাখাগুলির জন্য অবিচ্ছিন্ন একীকরণ ব্যবহার করতে পছন্দ করি ।
  14. বিভিন্ন ধরণের শাখার জন্য অবিচ্ছিন্ন একীকরণ নীতি প্রতিষ্ঠা করুন । যেমনটি আমি আগে উল্লেখ করেছি, সর্বাধিক কঠোর "বিল্ডটি ভাঙ্গবেন না" নিয়মগুলি শাখাগুলি প্রকাশের জন্য প্রযোজ্য , যখন ট্রাঙ্ক এবং রক্ষণাবেক্ষণ শাখাগুলি কখনও কখনও ভেঙে যেতে পারে। এছাড়াও ট্রাঙ্ক / রক্ষণাবেক্ষণ এবং প্রকাশের শাখাগুলিতে পরিচালিত পরিদর্শনগুলির তালিকার মধ্যে পার্থক্য রয়েছে ।

আমি ব্যবহার করি এমন সফ্টওয়্যার কনফিগারেশন পরিচালনার পদ্ধতির মূল নীতিগুলি চিত্রিত করে ডায়াগ্রাম আকারে আমার বিবর্তনের সেরা অনুশীলনের রূপরেখা খুঁজে পেতে পারেন।


তো, হো আপনি দলে কাজ করেন? বিভিন্ন লোকেরা কি বিভিন্ন শাখা ব্যবহার করে? কীভাবে দ্বন্দ্ব এড়ানো যায়? আপনার জবাব
টিমের কাজটি

4
প্রশ্ন: কোন্দল এড়ানো যায় কীভাবে? উত্তর: সংযুক্তির প্রয়োজনীয়তা হ্রাস করুন , ট্রাঙ্কের সর্বশেষ বিকাশ থাকা উচিত , যত ঘন ঘন ঘন ঘন কমিট করা প্রশ্ন: বিভিন্ন ব্যক্তিরা কি বিভিন্ন শাখা ব্যবহার করেন? উত্তর: প্রতিটি শাখা এক বা একাধিক লোক ব্যবহার করতে পারে। এটি পৃথক শাখার প্রকারের জন্যও গুরুত্বপূর্ণ: পরীক্ষামূলক, রক্ষণাবেক্ষণ এবং মুক্তি, এটি দ্বন্দ্ব এড়াতে সহায়তা করে প্রশ্ন: আপনি উত্তর দেন যে টিম ওয়ার্ক কভার করে না A: এটি প্রথম নজরে থেকে মনে হতে পারে। সংস্করণ নিয়ন্ত্রণ ব্যবহারের অর্থ স্বয়ংক্রিয়ভাবে দলের কাজ। আমি নিয়মের সেট (রাস্তার নিয়ম হিসাবে) বর্ণনা করেছি যা আরও কার্যকরভাবে সহযোগিতা করতে সহায়তা করে
বিকল্প

7

একটি জিনিস যা আমি খুব দরকারী খুঁজে পেয়েছি তা হ'ল এসএনএন: বাহ্যিক সম্পত্তি যার অর্থ আপনি অন্য সংগ্রহস্থল থেকে ডিরেক্টরিগুলি নিজের নিজের মধ্যে রেফারেন্স করতে পারেন। এটি আপনার কোড এবং ডেটা সংগঠিত করার জন্য দুর্দান্ত উপায় দেয়। কিছু উদাহরণ হ'ল:

  1. কোড ব্যবহারের জন্য আলাদা মডিউল / লাইব্রেরি এবং আপনি যেটি ব্যবহার করছেন সেগুলির রেফারেন্সের জন্য যদি আপনার পৃথক সংগ্রহস্থল থাকে। এর অর্থ হ'ল প্রতিটি এক্সিকিউটেবলের জন্য আপনার কাছে একটি মেটা সংগ্রহস্থল থাকতে পারে have যদি এটি একটি ছোট এক্সিকিউটেবল যা কেবলমাত্র কয়েকটি মডিউল ব্যবহার করে তবে আপনাকে পুরো গাছটি চেকআউট করার প্রয়োজন হবে না। এর একটি প্রভাব হ'ল আপনি প্রতি মডিউলে এসভিএন সংশোধন নম্বর পাবেন।
  2. কোড সংগ্রহস্থলে লাইব্রেরির সংকলিত সংস্করণগুলির মতো বৃহত বাইনারি ডেটা যুক্ত করা সাধারণত একটি খারাপ অভ্যাস হিসাবে বিবেচিত হয় তবে এটি সত্যিই সুবিধাজনক হতে পারে। আপনি যদি কেবলমাত্র সমস্ত লাইব্রেরির সমস্ত সংস্করণ আলাদা আলাদা ভাণ্ডারে যুক্ত করেন তবে আপনি দুটি বিশ্বের সেরা পেতে পারেন। আপনি আপনার কোড ভাণ্ডারগুলিতে যে লাইব্রেরি ব্যবহার করেন সেগুলির সংস্করণগুলিতে উল্লেখ করুন। আপনার কোড সংগ্রহস্থলটি পরীক্ষা করার সময় আপনি কোড এবং বাইনারি উভয়ই পাবেন। তবে বাইনারিগুলি একটি বৃহৎ সংগ্রহস্থলীতে সঞ্চিত রয়েছে যা আপনার উত্স কোডের মতো কঠোরভাবে ব্যাকআপের দরকার নেই এবং উত্স কোড সংগ্রহস্থলটি ছোট থাকে এবং কেবলমাত্র পাঠ্য থাকে।

4
আমি 2 পয়েন্টটি পছন্দ করি যেহেতু আপনি svn: বহিরাগত ব্যবহারের সময় আপনি একটি সংশোধন নম্বর নির্দিষ্ট করতে পারেন বা না করতে পারেন, অন্যকে সর্বশেষ সংস্করণটিকে "ট্র্যাক" করার অনুমতি দেওয়ার সময় এটি আপনাকে কিছু সংস্করণগুলিকে নির্দিষ্ট সংস্করণে "পিন" করতে দেয়।
j_random_hacker

"এসএনএন: বাহ্যিক" গুলি ব্যবহার করা সর্বাধিক পাওয়ারফুল এবং আমি এসভিএন-এর বেশিরভাগ মৌলিক বৈশিষ্ট্যগুলি বলব। এটি একটি আবশ্যক.
দানিজেল

5

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


ট্র্যাকটিতে বাগ ট্র্যাকিংয়ের জন্য ভাল এসএনএন সংহতকরণ, টাইমলাইন, কমিট ডিফস, উইকি ইত্যাদি রয়েছে
ডগ কুরি 18

জীরা সমস্যা সম্পর্কিত কমিটগুলিও ট্র্যাক করে
ড্যান সোপ

4

এসভিএন এর ব্রাঞ্চিং এবং মার্জ করার সরঞ্জাম এবং কনভেনশন সম্পর্কে জানুন।

অন্যান্য দলের সদস্যদের সাথে কাজ করার সর্বোত্তম উপায় হ'ল কাজকে সম্পূর্ণ বিকাশের বৈশিষ্ট্য / সংশোধন করা, তারপরে প্রতিটি শাখায় স্বতন্ত্র পরিবর্তনগুলিতে কাজ করা। তারপরে পরিবর্তনগুলি মেইনলাইন শাখা / ট্রাঙ্কে ফিরে মার্জড / প্রস্তুত / অনুমোদিত হওয়ার পরে মেশান।

এই পদ্ধতিতে ব্যক্তিরা অন্য পরিবর্তনগুলির সাথে সংঘর্ষ না করেই একটি সাধারণ লক্ষ্যে (একই শাখায় বা পৃথক শাখায়) কাজ করতে পারে।

আপনার মাইলেজ আলাদা হতে পারে এবং এটি মাত্র দু'জন লোকের ওভারকিল হতে পারে।


3

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

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

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


3

ব্রাঞ্চিং নীতি ছাড়াও ইত্যাদি। (যেখানে একটি আকার অবশ্যই সমস্ত মানায় না) আপনার ভাল কমিট করা উচিত:

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

3

উত্স নিয়ন্ত্রণের জন্য সুবর্ণ নিয়ম: তাড়াতাড়ি চেক ইন করুন, প্রায়শই চেক ইন করুন

আপনার সংগ্রহস্থলটি কীভাবে সংগঠিত করবেন তার টিপসের জন্য:


2

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


2

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


প্রাক কমিট স্ক্রিপ্টগুলির জন্য +1 1 ভালো বুদ্ধি. আমি ভাবছি যদি আপনি চালা না করে প্রতিশ্রুতি দেওয়ার চেষ্টা করেন তবে হাতের মুঠোয় দেওয়ার গিট পাওয়ার কোনও উপায় আছে কি?
nnot101

2

বাগ-ট্র্যাকার এবং কমিট নীতি প্রয়োগের সাথে সংহতকরণের উদাহরণগুলির মধ্যে একটি হ'ল ট্র্যাকের এসএনএন প্রি / কমিট পোস্ট হুক স্ক্রিপ্ট হতে পারে , যা কমিট বার্তা যদি বাগ-ট্র্যাকারে কোনও টিকিটকে উল্লেখ না করে এবং বিদ্যমান মন্তব্যগুলিতে মন্তব্য যুক্ত করে তবে কমিট প্রত্যাখ্যান করতে পারে বার্তাগুলির সামগ্রীর উপর ভিত্তি করে টিকিটগুলি (যেমন প্রতিশ্রুতিবদ্ধ বার্তায় "ফিক্স # 1, # 2 এবং # 8" এর মতো কিছু থাকতে পারে, যেখানে # 1, # 2, # 8 টিকিটের নম্বর রয়েছে)।


2

এসভিএন ব্যবহারের সেরা অনুশীলন :

  1. আপনি যখন প্রথম অফিসে এসেছিলেন এবং আপনার একি্লিপস প্রকল্পটি খোলেন , প্রথম পদক্ষেপটি হ'ল আপনার প্রকল্পটি আপডেট করা।

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

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

  1. সংঘাতের ফাইলগুলি সরাসরি প্রতিশ্রুতিবদ্ধ / আপডেট করবেন না।

  2. ওভাররাইড এবং আপডেট কখন করবেন?

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

    দ্রষ্টব্য: এক দিনের বেশি আপডেট না করেই প্রকল্পটি রাখবেন না। এছাড়াও অনেক দিন ধরে প্রতিশ্রুতি না দিয়ে কোডটি রাখবেন না।

  3. যারা সকলে একই অংশে কাজ করছেন তাদের সাথে যোগাযোগ করুন এবং তারা প্রতিদিন কী পরিবর্তন করেছেন তা নিয়ে আলোচনা করুন।

  4. কোনও কারণ না থাকলে বৈশিষ্ট্য এবং কনফিগারেশন ফাইলটি প্রতিশ্রুতিবদ্ধ করবেন না। কারণ সার্ভারে এবং মেঘে সেটিংস আলাদা হবে।

  5. এসভিএন-তে লক্ষ্যযুক্ত ফোল্ডারগুলি প্রতিশ্রুতিবদ্ধ করবেন না, কেবল উত্স কোড এবং রিসোর্স ফোল্ডারগুলিকে একটি এসভিএন সংগ্রহস্থলে বজায় রাখতে হবে।

  6. আপনি যখন আপনার কোডটি হারিয়েছেন, আতঙ্কিত হবেন না! আপনি এসভিএন ইতিহাস থেকে পূর্ববর্তী অনুলিপিটি ফিরে পেতে পারেন।

  7. আপনার ডিস্কের একাধিক জায়গায় প্রকল্পটি চেকআউট করবেন না। এটি এক জায়গায় পরীক্ষা করে দেখুন এবং এটিতে কাজ করুন।



1

এসভিএন নিজেই একটি ভাল শুরু এবং অন্যান্য পোস্টারগুলির মধ্যে কয়েকটি সেরা অনুশীলনের বিষয়ে দুর্দান্ত পরামর্শ দেয়।

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

আপনার প্রক্রিয়াটি কে অনুসরণ করছে এবং কে না তা খুব তাড়াতাড়ি বলা হবে। কিছুটা ঘর্ষণ হতে পারে তবে আপনার দল দীর্ঘমেয়াদে আরও ভাল হবে।


4
সম্মত, ক্রুজ কনট্রোল আমার দলকে বহুবার বাঁচিয়েছে।
গর্ডন উইলসন

1
  • প্রতিটি প্রতিশ্রুতিবদ্ধ জন্য সঠিক মন্তব্য

  • (মূললাইন) বিল্ডটি ভাঙবেন না!

  • যৌক্তিক ইউনিট পরিবর্তনের সাথে সাথে প্রতিশ্রুতিবদ্ধ

  • ব্যাকআপ সরঞ্জাম হিসাবে সাবভারশন ব্যবহার করা এড়িয়ে চলুন

  • সামান্য শাখা / সম্ভব হিসাবে মার্জ করা mer

এসভিএন সেরা অনুশীলনে আরও বিশদ পাওয়া যাবে ।


0

শাখাগুলিতে ডিইভি কাজ করুন

  1. আপনার শাখায় ঘন ঘন প্রতিশ্রুতিবদ্ধ
  2. স্বতন্ত্র / মডুলার আপনার শাখায় অঙ্গীকার করে ( এখানে দেখুন )
  3. আপডেট / মার্জ থেকে ট্রাঙ্ক প্রায়শই। পুনরায় বেস না করে আপনার শাখায় বসে থাকবেন না

সম্প্রদায় ট্রাঙ্ক

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

মনে রাখবেন যে আপনি যত বেশি বর্ধনশীল, মডিউলার, বিচ্ছিন্ন এবং সংঘটিত হয়ে পড়েছেন তা আপনার (বা সম্ভবত অন্যদের) পক্ষে সহজতর হবে:

  • ক্রমবর্ধমান পরিবর্তনগুলি ফিরে আসবে
  • দর্শনীয়ভাবে উপলব্ধি করুন যে আপনি আসলে অনেকগুলি শ্বেত স্থান এবং পরিবর্তনশীল নাম পরিবর্তনের মাধ্যমে পরীক্ষা করে নিলেন without
  • প্রতিশ্রুতি বার্তাগুলির অর্থ যখন বার্তাটির দৈর্ঘ্যে করা কাজের অনুপাত কম হয়।

0

মন্তব্য টেমপ্লেটের জন্য এটি ব্যবহার করুন:

[টাস্ক / স্টোরি এক্সএক্সএক্সএক্স] [মাইনর / মেজর] [কমেন্ট] [ফলোআপ মন্তব্য] [বাগের ইউআরএল]

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