মার্উরিয়াল সহ কোড রিভিউগুলির জন্য প্রস্তাবিত প্রক্রিয়া


18

আমরা সাধারণত পারফোর্স এবং স্মার্টবার কোড কোড সহযোগী ব্যবহার করেছি Big Corpএবং এখন আমরা কিছু প্রকল্পের জন্য মার্চুরিয়ালও ব্যবহার করব।

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

ধন্যবাদ


আপনার সম্ভবত দুটি প্রশ্ন আলাদা করা উচিত। (ক) এখানে অন্তর্ভুক্ত, তবে (খ) সম্ভবত স্ট্যাকওভারফ্লো বা সার্ভারফল্টের উপর নির্ভর করবে
ব্লুবেরিফিল্ডস

ধন্যবাদ @ ব্লুবেরিফিল্ডস। আমি আসলে সমস্যাটি স্থির করেছি, সমস্যাটি ছিল বিন / এইচজি সিএমডি ফাইলটি পথে রয়েছে এবং কোনও এক্সাই নেই।
cbrulak

উত্তর:


22

আমরা আসলে আমার সংস্থায় প্রায় একই জিনিসটি পেরিয়েছি। আমরা যা করেছি তা এখানে:

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

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

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

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

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

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


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

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

1
কি দারুন. আমি কি আপনার জন্য কাজ আসতে পারি?
ধনী

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

2

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

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

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

খ হিসাবে) কেবলমাত্র আমি যা প্রস্তাব করব তা হ'ল সরাসরি স্মার্টবার সাপোর্ট (সমর্থন@smartbear.com) ইমেল করা। আমরা (হ্যাঁ, আমি স্মার্টবিয়ারের জন্য কাজ করি) আপনার পথ সম্পর্কিত সমস্যাগুলি সমাধানে আপনাকে সহায়তা করতে পেরে খুশি হব, তবে আপনার সমস্যা সমাধানের জন্য এই প্রশ্নে পর্যাপ্ত তথ্য নেই। সাধারণ প্রক্রিয়াটি হ'ল কেবল ইনস্টলারটি চালানো এবং সমস্ত কিছু ঠিক কাজ করে। স্পষ্টতই সেই প্রক্রিয়াতে কিছু ভুল হয়েছে।

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