ডিভিসিএসে কেন সকলের আপত্তিহীন পরিবর্তনের অযৌক্তিক ফোবিয়া আছে বলে মনে হয়?


10

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

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

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

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

এমন কোনও প্রযুক্তিগত কারণ রয়েছে যা অনির্দিষ্ট পরিবর্তনের প্রতি এই দৃষ্টিভঙ্গিকে ন্যায্যতা দেয়? এবং যদি তা হয় তবে কেন কেবল প্রশ্নে সমস্যাটি ডিভিসিএসে উপস্থিত রয়েছে?


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

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

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

সত্যি? "মূল থেকে মার্জ হওয়ার জন্য স্থিতিশীল এক্সওয়াইজেড" কিছু বোঝা, বা অত্যধিক ভদ্র ইতিহাসে যাচ্ছে?
টেলাস্টিন

1
স্বচ্ছতার জন্য কমপক্ষে সম্পাদনা না করে আপনি কি প্রকাশের জন্য একটি কাগজ জমা দেবেন? তারপরে প্রকাশের জন্য আপনার প্রথম খসড়া কমিট সিরিজটি জমা করবেন না। যারা আপনার কোডটি পড়বেন তাদের পক্ষে একটি বড় অনুগ্রহ করুন: ফিরে যান এবং আপনি যে কমিট সিরিজটি লিখেছিলেন তা তৈরি করুন যদি আপনি দূরদর্শীতাটি প্রথম স্থানে এটি করতে চান তবে। ইন্টারেক্টিভ রিবেস কঠিন নয় ..
jthill

উত্তর:


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

জীবনবৃত্তান্ত

এটা একটা বিতৃষ্ণা নয়, এটা (কখনও কখনও কঠোর) প্রয়োগকারী ভাল আচরণ নিম্নলিখিত থেকে "প্রায়ই কমিট" (SVN ব্যবহারকারীদের মাঝে মাঝে এই শৈলী ভয় পায়)

এবং, hg qnew|qpop|qpushপরিশেষে, ঝরঝরে এবং শৃঙ্খলার জন্য ছোট ন্যায্য দাম


1

আপনি যখন মার্জ বা চেরি-পিক ইন করবেন git, আপনি অবিলম্বে একটি প্রতিশ্রুতি তৈরি করছেন। সেই প্রতিশ্রুতি শেষ না হওয়া এবং ইতিহাসের অংশ না হওয়া পর্যন্ত অপারেশন সম্পূর্ণ নয়।

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

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

git stash
git pull
git stash pop

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

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