একটি traditionalতিহ্যবাহী ভিসিএসে, আমি বুঝতে পারি যে আপনি কেন অমীমাংসিত ফাইল প্রতিশ্রুতিবদ্ধ করবেন না কারণ আপনি বিল্ডটি ভেঙে ফেলতে পারেন। যাইহোক, আমি বুঝতে পারি না কেন আপনি ডিভিসিএসে অমীমাংসিত ফাইল প্রতিশ্রুতিবদ্ধ করবেন না (তাদের মধ্যে কিছু আসলে আপনাকে ফাইল প্রতিরোধ করতে বাধা দেবে )।
পরিবর্তে, আমি মনে করি যে আপনার সংগ্রহস্থলটি চাপ দেওয়া এবং টানানো থেকে লক করা উচিত , তবে প্রতিশ্রুতিবদ্ধ নয়।
মার্জ প্রক্রিয়া চলাকালীন প্রতিশ্রুতিবদ্ধ করতে সক্ষম হওয়ার বিভিন্ন সুবিধা রয়েছে (যেমনটি আমি দেখছি):
- আসল মার্জ পরিবর্তনগুলি ইতিহাসে।
- যদি মার্জটি খুব বড় হয় তবে আপনি পর্যায়ক্রমে কমিট করতে পারেন।
- যদি আপনি কোনও ভুল করে থাকেন তবে ফিরে রোল করা আরও সহজ হবে (পুরো একত্রিতকরণটি আবার না করে)।
- ফাইলগুলি সমাধান হিসাবে চিহ্নিত না করা অবধি সমাধান না করা হিসাবে পতাকাঙ্কিত থাকতে পারে। এটি ঠেলা / টানাটানি প্রতিরোধ করবে।
আপনি সম্ভবত একক পরিবর্তনের পরিবর্তে মার্জ হিসাবে রূপসীতার একটি সেট সেট করতে পারেন। এটি আপনাকে এখনও যেমন সরঞ্জাম ব্যবহারের অনুমতি দেয় git rerere
।
তাহলে কেন অমীমাংসিত ফাইলগুলি দিয়ে প্রতিশ্রুতি দেওয়া / রোধ করা হচ্ছে? Traditionতিহ্য ছাড়া অন্য কোনও কারণ আছে কি?
hg 1.6
মার্জ হওয়ার পরে ফাইলগুলিকে সমাধান না করা হিসাবে চিহ্নিত করা হয়। যতক্ষণ না আপনি সেগুলি সমাধান হিসাবে চিহ্নিত করেছেন ততক্ষণ আপনাকে প্রতিশ্রুতিবদ্ধ হতে hg
দেবে না (অগত্যা এই নয় যে আপনাকে আসলে তাদের সমাধান করতে হবে, তবে আমি ধারণাটি গ্রহণ করব)।
hg
প্রকৃতপক্ষে এমন ফাইলগুলির একটি তালিকা বজায় রাখে যা "সমাধান" (ব্যবহার করে hg resolve
) হিসাবে পতাকাঙ্কিত বা না করা হয়েছে । U
এই তালিকায় যদি কোনও ফাইল থাকে তবে তা আপনাকে প্রতিশ্রুতিবদ্ধ হতে দেবে না।
hg resolve
সংঘাতের সাথে একত্রীকরণের জন্য বিশেষভাবে ব্যবহৃত হয়; দেখতে selenic.com/mercurial/hg.1.html#resolve । Note that Mercurial will not let you commit files with unresolved merge conflicts. You must use hg resolve -m ... before you can commit after a conflicting merge.