উত্স নিয়ন্ত্রণে কতবার পরিবর্তন করা যায়? [বন্ধ]


204

উত্স নিয়ন্ত্রণে আমার কতবার পরিবর্তন করা উচিত? প্রতিটি ছোট বৈশিষ্ট্য পরে, বা শুধুমাত্র বড় বৈশিষ্ট্য জন্য?

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

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


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

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

উত্তর:


196

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

আমি "অত্যধিক" কমিট / চেক-ইনগুলি তৈরির বিষয়ে চিন্তা করব না। আপনার যখন নতুন কিছু লিখতে হয় তখন এটি সত্যিই স্তন্যপান হয় এবং কেবলমাত্র ক্ষেত্রে যদি ছোট বর্ধনে রোলব্যাক করতে সক্ষম হয় তবে খুব ভাল nice


3
এই জাতীয় পদ্ধতির সাথে বিল্ড ভাঙার সম্ভাবনা নাটকীয়ভাবে বৃদ্ধি পায়। সতর্কতা অবলম্বন করুন, যদি আপনার চেকইনকে বৈধতা দেয় এমন অটোমেশন পরীক্ষা না করে - লোকেরা আপনাকে আটকে দিয়েছে বলে আপনি আপনার দরজায় কড়া নাড়বেন।
অ্যালেক্স ওয়েইনস্টেইন

57
আপনি যদি বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করেন তবে এ জাতীয় পদ্ধতির সাহায্যে বিল্ড ভাঙার সম্ভাবনা বৃদ্ধি পায় না।
skiphoppy

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

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

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

82

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

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


1
আমি আপনার বিবৃতি পছন্দ। যদি আপনি প্রায়শই দশবার প্রতিশ্রুতিবদ্ধ হন তবে মোটেই কোনও সমস্যা হবে না (তবে আপনি যে সময়টি করেন তার 1-10/9 কমিট করলেই সম্ভবত তা ঘটবে)।
কামিলো মার্টিন


24

সমাপ্ত / স্থিতিশীল / সংকলনযুক্ত কোডের প্রতিটি যৌক্তিক গোষ্ঠী আমি ব্যক্তিগতভাবে প্রতিশ্রুতিবদ্ধ এবং সেদিন আমি যা করেছি তা প্রতিশ্রুতি না দিয়ে দিনটি ছাড়ার চেষ্টা করব না।


20

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


12

আমি প্রতিবারই প্রতিশ্রুতিবদ্ধ যে আমি একটি কাজ দিয়ে এসেছি। এটি সাধারণত 30 মিনিট থেকে 1 ঘন্টা সময় নেয়।


12

যদি আপনার সংস্করণ নিয়ন্ত্রণের মন্তব্যটি এক বা দুটি বাক্যের চেয়ে দীর্ঘ হয় তবে আপনি সম্ভবত যথেষ্ট পরিমাণে প্রতিশ্রুতি দিচ্ছেন না।


7
এবং যদি এটি কম হয় তবে আপনি সম্ভবত সঠিক মন্তব্য করছেন না।
জেডি আইজ্যাকস

11

আমি মুক্ত-উত্স মন্ত্রটি অনুসরণ করি (প্যারাফ্রেসড) - তাড়াতাড়ি কমিট করি, প্রায়শই কমিট করি।

মূলত যখনই আমি মনে করি আমি অন্যান্য দলের সদস্যদের জন্য সমস্যা প্রবর্তন না করে দরকারী কার্যকারিতা (তবে ছোট) যুক্ত করেছি।

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


10

এমন কোড কমিট করবেন না যা আসলে কাজ করে না। ব্যাকআপ সমাধান হিসাবে আপনার ভাণ্ডার ব্যবহার করবেন না।

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


25
অথবা একটি শাখা তৈরি করুন। এটাই তারা সেখানে আছে।
ব্রায়ান কার্লটন

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

8

থাম্বের নিয়ম, যা আমি ব্যবহার করি তা চেক ইন হয় যখন ফাইলগুলির চেক-ইন করা গ্রুপটি একক চেক-ইন মন্তব্যে byাকা যায়।

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

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


7

আমার মনে হয় না আপনার কতবার চিন্তা করা উচিত। এখানে গুরুত্বপূর্ণ বিষয়টি কী, কখন এবং কেন। আপনাকে প্রতি 3 ঘন্টা বা 24 ঘন্টা প্রতি প্রতিশ্রুতিবদ্ধ হতে হবে তা বলার অর্থ নেই। প্রতিশ্রুতিবদ্ধ কিছু আছে যখন প্রতিশ্রুতিবদ্ধ, আপনি না করেন না।

সংস্করণ নিয়ন্ত্রণের জন্য আমার প্রস্তাবিত সেরা অনুশীলনগুলির থেকে এখানে একটি নির্যাস দেওয়া হয়েছে :

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

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


6

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


6

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

এখানে সম্পর্কিত ব্লগ পোস্ট: কোডিং হরর: তাড়াতাড়ি চেক ইন করুন, প্রায়শই চেক ইন করুন


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

4

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

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

আমি বলছি না যে এটি অনুসরণ করা ভাল প্যাটার্ন; আমি কেবল ইঙ্গিত করছি যে কীভাবে "সম্পন্ন" করা হয় তা আপনার দলের / কোম্পানির নীতিগুলির উপর নির্ভর করে।


3

এই মুহূর্তটি আপনি এটি সম্পর্কে চিন্তা।

(যতক্ষণ আপনি চেক ইন করেন তা নিরাপদ থাকে)


3

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


3

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

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

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


3

আমি নিয়মিত চেক ইন করতে চাই প্রতিবারই আমি আমার লক্ষ্যের দিকে একটি পদক্ষেপ নিয়েছি।

এটি সাধারণত প্রতি কয়েক ঘন্টা হয়

আমার অসুবিধাটি এমন কাউকে এতগুলি কোড পর্যালোচনা করতে সক্ষম এবং সন্ধান করছে ।

আমাদের সংস্থার নীতিমালাটি হ'ল আমাদের কোনও কোড যাচাই করার আগে একটি কোড পর্যালোচনা থাকা দরকার, যা বোঝা যায়, তবে বিভাগে এমন কোনও ব্যক্তি নেই যাঁর সাথে সাথে একটি কোড পর্যালোচনা করার সময় থাকে। সম্ভাব্য সমাধান:

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

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

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

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

2

আমি প্রতি 30-60 মিনিটের মধ্যে পরিবর্তনগুলি সম্পাদন করতে চাই, যতক্ষণ না এটি পরিষ্কারভাবে সংকলন করে এবং ইউনিট পরীক্ষায় কোনও চাপ নেই।


2

ঠিক আছে, আপনার নিজের শাখা থাকতে পারে যেখানে আপনি নিজের পছন্দ মতো কমিট করতে পারেন এবং আপনি যখন আপনার বৈশিষ্ট্যটি সম্পন্ন করেন, আপনি এটিকে মূল ট্রাঙ্কে একীভূত করতে পারেন।

কমিটের ফ্রিকোয়েন্সিতে, আমি এটি এইভাবেই ভাবি, আমার হার্ডডিস্কটি ক্র্যাশ হয়ে থাকলে এবং যদি আমি কিছু না করে থাকি তবে আমার কতটা বেদনা হবে - আমার জন্য এই জিনিসের পরিমাণ প্রায় 2 ঘন্টা কাজ।

অবশ্যই, আমি কখনই এমন কিছু করি না যা সংকলন করে না doesn't


তাহলে, মাত্র 2 ঘন্টা ব্যথা হবে .. তাই না? কেন এত খারাপ?
কেভিন কনার


2

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


2

আপনাকে একদিকে সুরক্ষা এবং পুনরুদ্ধারের মধ্যে সমঝোতা এবং অন্যদিকে পুরো প্রকল্পের পরিবর্তন পরিচালনার স্বাচ্ছন্দ্যের মধ্যে ভারসাম্য বজায় রাখতে হবে।

আমি যে সর্বোত্তম স্কিমটি ব্যবহার করেছি সেটির প্রশ্নের দুটি উত্তর ছিল।

আমরা দুটি সম্পূর্ণ পৃথক সংগ্রহস্থল ব্যবহার করেছি: একটি ছিল প্রকল্পের প্রশস্ত সংগ্রহস্থল এবং অন্যটি ছিল আমাদের নিজস্ব ব্যক্তিগত সংগ্রহশালা (আমরা তখন আরসিএস ব্যবহার করছিলাম)।

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

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

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

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


2

আপনি যদি এমন একটি শাখায় কাজ করছেন যা প্রকাশিত হবে না, একটি প্রতিশ্রুতি সর্বদা নিরাপদ।

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

আপনি যদি ইন্টিগ্রেটেড বাগ ট্র্যাকার ব্যবহার করছেন, আপনি যদি দুটি বাগ স্থির করে থাকেন তবে আলাদা কমিটগুলি করা কার্যকর হতে পারে, যাতে কমিট লগটি সঠিক বাগগুলির বিরুদ্ধে যেতে পারে। তবে তারপরে আবার কখনও কখনও একটি কোড পরিবর্তন দুটি বাগ সংশোধন করে, তাই আপনাকে কেবল এটির বিরুদ্ধে কোনটিকে বেছে নিতে হবে (যদি না আপনার সিস্টেমটি একাধিক বাগের সাথে যুক্ত হতে বাধ্য করে)


2

আমি এখনও 'প্রায়শই কমিট, তাড়াতাড়ি কমিট' শব্দবন্ধটিতে বিশ্বাস করি। আমি VCS বিকেন্দ্রীভূত পছন্দ Mercurial এবং সেখানে কয়েকটি জিনিস কমিট এবং এটি পরে মূল প্রজেক্টের ধাক্কা কোন সমস্যা নেই।

এটি সত্যিই একটি সাধারণ প্রশ্ন, তবে আসল প্রশ্নটি: আপনি কি অসম্পূর্ণ কোডটি প্রতিশ্রুতিবদ্ধ করতে পারেন?


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

2

যখনই আপনি এমন কোনও কোড শেষ করেন যা কাজ করে এবং অন্য কাউকে কোনও আপডেটে এনে তা স্ক্রু করে না।

এবং দয়া করে নিশ্চিত হন যে আপনি সঠিকভাবে মন্তব্য করেছেন।

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