এন্টারপ্রাইজে গিট-ভিত্তিক উত্স নিয়ন্ত্রণ: প্রস্তাবিত সরঞ্জাম এবং অনুশীলনগুলি?


120

আমি ব্যক্তিগত প্রকল্পগুলির জন্য গিট ব্যবহার করি এবং মনে করি এটি দুর্দান্ত। এটি দ্রুত, নমনীয়, শক্তিশালী এবং দূরবর্তী বিকাশের জন্য দুর্দান্ত কাজ করে।

তবে এখন এটি কর্মক্ষেত্রে বাধ্যতামূলক এবং সত্যি বলতে আমাদের সমস্যা হচ্ছে।

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

তবে - রাজনৈতিক কারণে - আমরা গিটের সাথে আটকে আছি, এমনকি যদি এটির সাথে আমরা যা করার চেষ্টা করছি তার জন্য এটি ব্যর্থ হয়।

এখানে আমরা কিছু জিনিস দেখছি:

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

তবে, আমি শুনেছি যে লোকেরা বড় উন্নয়ন সংস্থাতে গিটটি সফলভাবে ব্যবহার করছে।

যদি আপনি সেই পরিস্থিতিতে থাকেন - বা যদি আপনার কাছে সাধারণত কোনও বৃহত প্রতিষ্ঠানে গিট ব্যবহার করা আরও সহজ এবং আরও উত্পাদনশীল করার জন্য সরঞ্জাম, টিপস এবং কৌশল থাকে তবে কিছু লোকেরা কমান্ড লাইন ভক্ত না হন - আপনার কাছে যা শুনতে শুনতে আমি পছন্দ করব সুপারিশ.

বিটিডাব্লু, আমি ইতিমধ্যে লিংকডইনে এই প্রশ্নের একটি সংস্করণ জিজ্ঞাসা করেছি, এবং এর সত্যিকারের কোনও উত্তর পাওয়া যায়নি তবে প্রচুর "গোশ, আমিও এটি জানতে আগ্রহী!"

আপডেট: আমাকে স্পষ্ট করতে দিন ...

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

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


ঠিক এই কারণেই স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 2262799/ why- not-use-git প্রাসঙ্গিক। রাজনীতি কি আসলেই কোনও স্টার্টআপে সমস্যা হয়?
পাস্কেল থিভেন্ট

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

4
এটি খুব ভাল প্রশ্ন। আমাকে বলতে হবে, যদিও আমি কিছুটা alousর্ষা করি। আমি আশা করি কাজে গিটের সাথে "আটকে" ছিলাম। : |
ড্যান মোল্ডিং

2
"হ্যাঁ, আমি জানি, লিনাস কখনই এটির জন্য উদ্দেশ্য করে নি" "এহম, তিনি এটি লিনাক্স বিকাশের জন্য ব্যবহার করেন যা দু'দুজনের সঠিকভাবে হয় না। আমার অনুমান যে আপনি যা হারিয়েছেন তা হ'ল সরঞ্জামগুলি নয় বরং আক্রমণাত্মক পরিকল্পনা বা আমরা যেমন এটি ডাকি, a process... (আমি এই শব্দটিকে ঘৃণা করি)
স্টিফানবি

@ স্টেফানবি: সত্য, কার্নেলটি ঠিক দু'দুই দের নয়, তবে এটি কর্পোরেট স্টার্টআপও নয় যেখানে কারও পক্ষেই দানশীল স্বৈরশাসকের ভূমিকা পূরণ করার ব্যান্ডউইথ নেই। :-)
বব মারফি

উত্তর:


65

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

এন্টারপ্রাইজ প্রসঙ্গে ডিভিসিএস বনাম সিভিসিএস:

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

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

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

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

কর্মপ্রবাহ:

ল্যারি ওস্টারম্যান (উইন্ডোজ টিমে কাজ করা একটি মাইক্রোসফ্ট ডেভ) এর উইন্ডোজ দলে কর্মরত প্রবাহের সম্পর্কে একটি দুর্দান্ত ব্লগ পোস্ট রয়েছে । উল্লেখযোগ্যভাবে তাদের রয়েছে:

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

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

হায়ারাকিকাল রিপোজিটরিগুলি

(ছবিটি জোল স্পলস্কির hginit.com থেকে চুরি হয়েছে ))

একটা জিনিষ দেহাবশেষ এই বিন্দু যদিও বলেন করা: - যদিও DVCS মহান মার্জ ক্ষমতা প্রদান করে, এই হল না ক্রমাগত ইন্টিগ্রেশন ব্যবহার করার জন্য একটি প্রতিস্থাপন। এমনকি সেই মুহুর্তে আপনার কাছে নমনীয়তা রয়েছে: ট্রাঙ্ক রেপোর জন্য সিআই, টিম রেপোর জন্য সিআই, প্রশ্নোত্তর সংস্থাগুলি ইত্যাদি etc.

একটি এন্টারপ্রাইজ প্রসঙ্গে গিট:

গিট সম্ভবত কোনও উদ্যোগের প্রসঙ্গের জন্য আদর্শ সমাধান নয় যেমন আপনি ইতিমধ্যে উল্লেখ করেছেন। আপনার কিছু উদ্বেগ পুনরাবৃত্তি করে আমি মনে করি সবচেয়ে উল্লেখযোগ্যভাবে তারা হ'ল:

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

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

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

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


ঘর্ষণ হ্রাস:

ঠিক আছে, যেহেতু আপনি পরিস্থিতির সাথে সত্যই আটকে আছেন বলে মনে হচ্ছে, আইএমএইচও দুটি উপায় আছে options গিটকে কম জটিল করার কোনও সরঞ্জাম নেই; Git হয় জটিল। হয় আপনি এটির মুখোমুখি হন বা গিট নিয়ে কাজ করেন: -

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

সত্যি কথা বলতে, আমি মনে করি একটি সরঞ্জাম সমস্যার চেয়ে আপনার সত্যিই একটি লোক সমস্যা আছে। এই পরিস্থিতির উন্নতি করার জন্য কী করা যেতে পারে?

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

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

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

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

27

আমি যুক্তিসঙ্গতভাবে বড় উন্নয়ন সংস্থার জন্য এসসিএম ইঞ্জিনিয়ার, এবং আমরা গত এক বছর ধরে এসএনএন থেকে গিটে রূপান্তরিত করেছি। আমরা এটি একটি কেন্দ্রীয় ফ্যাশনে ব্যবহার করি।

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

আপনার নির্দিষ্ট কিছু উদ্বেগ হিসাবে:

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

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


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

আমাদের কোডগুলির বেশিরভাগটি জাভা হয়, এবং আমরা মেকেনকে আমাদের বিল্ড সিস্টেম হিসাবে ব্যবহার করি, তাই আমরা আন্তঃ-প্রকল্পের নির্ভরতা এবং সংস্করণ পরিচালনা করতে মেভেন ব্যবহার করি। আমরা ট্যাগগুলির ব্যাপক ব্যবহারও করি - প্রতিটি রিলিজ বিল্ডের একটি ট্যাগ থাকে।
ebneter

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

26

হ্যাঁ, আমি জানি, লিনাস কখনই এটির জন্য উদ্দেশ্য করে নি।

প্রকৃতপক্ষে, লিনাস যুক্তি দেখিয়েছেন যে কেন্দ্রিয়ায়িত সিস্টেমগুলি কেবল কাজ করতে পারে না।

এবং, স্বৈরশাসক এবং লেফটেন্যান্ট ওয়ার্কফ্লোতে কী সমস্যা?

নকশা

মনে রাখবেন, গিট একটি বিতরণ সিস্টেম; এটি কেন্দ্রীয়ের মতো ব্যবহার করার চেষ্টা করবেন না।

(আপডেট করা হয়েছে)

যদি আপনি গিটটি "স্টেরয়েডগুলিতে এসএনএন" হিসাবে ব্যবহার করার চেষ্টা না করেন তবে আপনার বেশিরভাগ সমস্যা চলে যাবে (কারণ এটি নেই)।

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

সাধারণত এই লোকদের দলের নেতৃত্ব হওয়া উচিত: প্রতিটি নেতা তার নিজের দলের কাজ সংহত করে এবং আশীর্বাদী ভান্ডারটিতে ঠেলে দেন।

আরও ভাল, অন্য কেউ (অর্থাত্ স্বৈরশাসক) দলের নেতাদের কাছ থেকে টানেন এবং তাদের পরিবর্তনকে আশীর্বাদী ভাণ্ডারে সংহত করে।

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

যদি সংহতদের কোড পর্যালোচনা করার জন্য সময় না থাকে তবে তা ঠিক আছে, তবে আপনার এখনও এমন লোকদের থাকা দরকার যা প্রত্যেকের কাছ থেকে মার্জগুলিকে সংহত করে।

গিট টান করতে এত বেশি সময় লাগে না।

git pull A
git pull B
git pull C

গিট মানুষের সময় এবং মনোযোগের বিকল্প দেয় ; এ কারণেই এটি প্রথম স্থানে লেখা হয়েছিল।

  • জিইউআই সরঞ্জামগুলি পরিপক্ক নয়

গুই সরঞ্জামগুলি বেসিক স্টাফগুলি বেশ ভালভাবে পরিচালনা করতে পারে।

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

  • কমান্ড লাইন সরঞ্জামগুলি ব্যবহার করে, একত্রিত হওয়া এবং অন্য কারও পরিবর্তনগুলি মুছে ফেলা সহজ

আপনার যদি "কেন্দ্রীয় ভাণ্ডার" র সম্পূর্ণ লেখার অ্যাক্সেস সহ অনেক অযোগ্য দক্ষ বিকাশকারী না হন তবে এটি কোনও সমস্যা হবে না।

তবে, যদি আপনি আপনার কর্মপ্রবাহটি সেট আপ করেন যাতে কেবলমাত্র কয়েকজন লোক (সংহতকারী) "আশীর্বাদী" সংগ্রহস্থলে লিখেন, সমস্যা হবে না।

গিটটি মার্জগুলি আপ করা সহজ করে না।

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

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

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

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

যদি কেউ মার্জ সংঘাতের সমাধানের সময় অন্য ব্যক্তির পরিবর্তনগুলি বিলুপ্ত করে, তবে ভুল করে তা হবে না: এটি হয় কারণ বিরোধের সমাধানের জন্য এটি প্রয়োজনীয় ছিল, বা তারা কী করছেন তা তারা জানেন না বলেই হবে।

  • এটি বিশ্বব্যাপী কেবল পঠনযোগ্য বা পঠন-লেখার সুযোগ-সুবিধার বাইরে প্রতি ব্যবহারকারী সংগ্রহস্থলের অনুমতি দেয় না

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

  • "কিছু যায়" বা "উদার স্বৈরশাসক" ব্যতীত ওয়ার্কফ্লোগুলি উত্সাহ দেওয়া শক্ত, একাকী প্রয়োগ করা যাক

এই সমস্যাগুলি যখন আপনি গিট ব্যবহার করার চেষ্টা করা বন্ধ করবেন তখন মনে হবে এটি কোনও কেন্দ্রীয়ীকৃত সিস্টেম।

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

রায় রায়।

আপনার কি ধরণের প্রকল্প আছে?

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

আপনার মস্তিষ্ক ব্যবহার করা এখানে সেরা অনুশীলন use

  • একাধিক সংগ্রহস্থলের সাহায্যে, কেন্দ্রীয় সংগ্রহশালা থেকে অন্য কারও কাছে থাকা সমস্ত উত্সকে কীভাবে প্রতিলিপি করা যায় বা গতকাল বিকেল সাড়ে ৪ টা পর্যন্ত সবকিছু পাওয়ার মতো কিছু করা যায় তাও পরিষ্কার নয়।

আপনি কি বোঝাতে চাচ্ছেন তা আমি নিশ্চিত নই.


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

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

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

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

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

6

আমি এন্টারপ্রাইজ কাজের জন্য http://code.google.com/p/gerrit/ কে অত্যন্ত সুপারিশ করি । এটি আপনাকে অ্যাক্সেস নিয়ন্ত্রণ প্লাস একটি অন্তর্নির্মিত পর্যালোচনা ভিত্তিক ওয়ার্কফ্লো দেয়। এটি কোনও এলডিএপি সিস্টেমের বিরুদ্ধে প্রমাণীকরণ করে। আপনি এটিকে http://wiki.hudson-ci.org/display/HUDSON/Gerrit+ প্লাগইন দিয়ে হডসনকে আপ করতে পারেন , যখন তারা এখনও পর্যালোচনাধীন রয়েছেন তখন আপনাকে পরিবর্তনগুলি তৈরি এবং পরীক্ষা করতে দেয়; এটি একটি সত্যিই চিত্তাকর্ষক সেটআপ।

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


5

আমি একটি বড় টেলকোতে বিকাশকারী পরিচালক হিসাবে আমার অভিজ্ঞতার ভিত্তিতে এই প্রশ্নের উত্তর দিচ্ছি, যেখানে আমরা ২০১০ সালে গিটকে গ্রহণ করেছি

আপনার এখানে সমস্যার বিভিন্ন সেট রয়েছে:

  • কর্মপ্রবাহ
  • ক্লায়েন্ট সরঞ্জাম
  • সার্ভার অ্যাক্সেস নিয়ন্ত্রণ এবং একীকরণ

কর্মপ্রবাহ

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

ক্লায়েন্ট সরঞ্জাম

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

সার্ভার অ্যাক্সেস নিয়ন্ত্রণ এবং একীকরণ

আপনি যদি গিট ভান্ডারটি বিকাশকারীদের "জগাখিচুড়ি" এড়াতে চান তবে আপনার অবশ্যই এমন একটি সমাধান বেছে নিতে হবে যা:

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

এতগুলি প্রস্তুত-ব্যবহারযোগ্য সার্ভার সাইড সলিউশন নেই যা এটিকে সহায়তা করতে পারে, আমি আপনাকে এইগুলির মধ্যে একটি চেক করার পরামর্শ দিচ্ছি:

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

আশাকরি এটা সাহায্য করবে!


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

3

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


3

উপর টুলস , MacOS এর-এক্স ব্যবহারকারীদের GitX (http://gitx.frim.nl/) খুব সহজ এবং কার্যকরী পাবেন। খসড়াটি হ'ল গিট ক্লায়েন্ট হুকগুলি ($ GIT_ROOT / .git / hooks এর অধীন) সমর্থন করে না।

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

এই বৈশিষ্ট্যগুলির সাথে আমি সফলভাবে ব্যবহার করেছি:

  1. জেরিট কোড পর্যালোচনা (http://code.google.com/p/gerrit/)
  2. গিটএন্টারপ্রাইজ (http://gitenterprise.com)
  3. কোলাবনেট টিমফর্জ (http://www.collab.net/gotgit), পর্দার আড়ালে জেরিট ২.১.৮ ব্যবহার করে

পিএস এসওএক্স এবং সিএমএমআই সম্মতিটিকে অবমূল্যায়ন করবেন না : অনেক সময় আপনার কাছে পছন্দসই সীমিত সেট থাকে যা সুরক্ষা সম্পর্কিত আপনার সংস্থা এন্টারপ্রাইজ পলিসি দ্বারা নির্ধারিত হয়।

আশাকরি এটা সাহায্য করবে.

লুকা।


2

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

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

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

আমাদের 2'স্তর স্তরের সহায়তা ডেস্কেরও ঘোরানো ভূমিকা রয়েছে এবং কমপক্ষে আমাদের পক্ষে কাজের চাপ এমন যে উভয় ভূমিকা একই সাথে পাওয়া সম্ভব।

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

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

মার্জটি করার সময় রিলিজ ম্যানেজারটিও নিশ্চিত করে যে মার্জ কমিটের একটি বুদ্ধিমান কমিট বার্তা রয়েছে যা পণ্য মালিকের জন্য চেঞ্জলগে ব্যবহার করা যেতে পারে।

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


1

আমি একটি "আপনি কি বিবেচনা করেছেন" পোস্টে যুক্ত করব।

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

তার উপরে, দুর্দান্ত ডকুমেন্টেশন এবং এমন কিছু যা আপনার উদ্যোগকে খুশি করবে: বাণিজ্যিক সহায়তা উপলব্ধ।


1
আমি যেমন বলেছি, আমরা গিট দিয়ে আটকে আছি
বব মারফি

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

1

পয়েন্ট 3 এবং 4 সম্পর্কিত (প্রতি ব্যবহারকারী, প্রতি-বিভাগে, প্রতিটি শাখার অনুমতি), গিটোলাইটের দিকে নজর দিন (প্রো গিট বইয়ে আচ্ছাদিত: http://progit.org/book/ch4-8.html )।

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


1

জিইউআই: এই মুহুর্তে, বেশিরভাগ দৈনিক ক্রিয়াকলাপের জন্য টার্টোজাইজ ভিট ১..7..6 ভাল হওয়া উচিত। লগ, প্রতিশ্রুতি, পুশ, টান, টান, ডিফ, মার্জ, শাখা, চেরি-পিক, রিবেস, ট্যাগ, রফতানি, স্ট্যাশ, সাব-মডেল ইত্যাদি যোগ করুন ... x64 স্থানীয়ভাবেও সমর্থন করে


1

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


0

গিটোসিস বা গিটোলাইটের চেয়ে সহযোগী বিকাশের জন্য আরও উপযুক্ত তবে ওপেন সোর্স হ'ল গিটরিয়াস । এটি রেল অন রেল অ্যাপ্লিকেশন যা সংগ্রহস্থল এবং মার্জিংয়ের পরিচালনা করে hand এটি আপনার অনেক সমস্যার সমাধান করা উচিত।


0

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


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

0

এনএক্সপি commonতিহ্যবাহী সফ্টওয়্যার প্রকল্পের সাথে অ্যান্ড্রয়েড মোবাইল বিকাশকে একীভূত করে একটি সাধারণ প্ল্যাটফর্মের সাথে (এন্টারপ্রাইজ স্কেল) গিট এবং সাবসার্শন পরিচালনা করছে: http://www.youtube.com/watch?v=QX5wn0igv7Q

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