মার্চুরিয়াল (এইচজি) কেবলমাত্র কিছু নির্দিষ্ট ফাইল প্রতিশ্রুতিবদ্ধ


119

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

এখানে

hg commit -I thefile.foo

তবে এটি কেবল একটি ফাইলের জন্য। আমার পক্ষে আরও ভাল উপায় যদি আমি গিটের মতো অটো-অ্যাড বন্ধ করতে পারি। এটা কি সম্ভব?


5
রেকর্ড এক্সটেনশন ব্যবহার করবেন? অথবা আপনি কমান্ড লাইনে ফাইলগুলি নির্দিষ্ট করতে পারেনhg ci foo bar baz
টোনফা

4
@ টোনফা, উত্তর হিসাবে আপনার মন্তব্য পোস্ট করুন
আন্দ্রে ডিজিয়াহেল

আপনার পোস্ট ভাংচুর করবেন না দয়া করে।
গ্লোরফাইন্ডেল

আপনি কেন এত সুন্দর প্রশ্ন ডাবকে ভাঙচুর করছেন?
প্রবীণ কুমার পুরুষোথমন

উত্তর:


155

টোনফা লিখেছেন বলে আপনি কমান্ড লাইনে ফাইলগুলি নির্দিষ্ট করতে পারেন:

$ hg commit foo.c foo.h dir/

এটি ঠিক কাজ করে এবং আমি সারাজীবন যা করি। আপনি --includeযে পতাকাটি পেয়েছেন তাও আপনি ব্যবহার করতে পারেন এবং আপনি এটির মতো কয়েকবার ব্যবহার করতে পারেন:

$ hg commit -I foo.c -I "**/*.h"

আপনি যে ফাইলগুলি প্রতিশ্রুতিবদ্ধ করতে চান তা নির্বাচন করতে আপনি একটি ফাইলসেট ব্যবহার করতে পারেন:

$ hg commit "set:size(1k - 1MB) and not binary()"

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

$ hg qnew feature-x     # create new patch
$ hg qrefresh -s foo.c  # add a file to the current patch
$ hg qrefresh -s bar.c  # add another file to the patch
$ hg qfinish -a         # convert applied patches to normal changesets

আমি নিজেই এই উদ্দেশ্যে এমকিউ ব্যবহার করি না, যদিও, যেহেতু আমি মনে করি এটি কমান্ড লাইনে কেবল ফাইলের নাম উল্লেখ করা যথেষ্ট।


"স্বতঃ-যুক্ত আচরণ" আচরণ কী? এইচজি ফাইলগুলি স্বয়ংক্রিয়ভাবে যুক্ত করতে ব্যবহৃত হয়েছিল? কারণ এখন আপনাকে স্পষ্টভাবে এটি করতে হবে বা সেগুলিকে অনুসরণ করা যাবে না।
এমপেন

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

24

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

আপনি যদি অনেকগুলি ফাইল প্রতিশ্রুতিবদ্ধ করতে চান এবং কেবল কয়েকটি ফাইল বাদ দেন -Xতবে আরও সুবিধাজনক।

উদাহরণস্বরূপ "ফাইল_1", "ফাইল_2" এবং "ফাইল_3" সম্বলিত একটি সংগ্রহস্থল দেওয়া হয়েছে, নিম্নলিখিতটি সমতুল্য, তবে পরবর্তীটি টাইপ করা সহজ / দ্রুত হয়:

hg commit file_1 file_2
hg commit -X file_3

8

৩.৮ হিসাবে আপনি hg commit --interactiveফাইলগুলি নির্বাচন করতেও ব্যবহার করতে পারেন (৩.৮ এর আগে আপনি অনুরূপ কার্যকারিতার জন্য ক্রেকার্ড এক্সটেনশন ব্যবহার করতে পারেন )। --interactive(বা শুধু -i) পতাকা আপনি যে ফাইলগুলি অন্তর্ভুক্ত করা কমিট চান করার জন্য আপনাকে অনুরোধ জানানো HG কারণ হবে। একটি অতিরিক্ত বোনাস হিসাবে আপনি এমনকি ফাইলের মধ্যে অংশ অন্তর্ভুক্ত / বাদ দিতে পারেন।

ইন্টারফেসটি দেখতে কেমন তার একটি উদাহরণ এখানে। নোট করুন এটি একটি পুরাতন স্ক্রিনশট (আসলে ক্রেকার্ডের) তাই ইন্টারফেসটি কিছুটা পরিবর্তিত হয়েছে (তবে মূল বিষয়গুলি একই) crecord স্ক্রিনশট

এই ইন্টারফেসটি পেতে নোট করুন আপনার অভিশাপ ইন্টারফেস সক্ষম করা দরকার। আপনার সাথে hg commit --config ui.interface=curses --interactiveনিম্নলিখিতগুলি যুক্ত করে এককভাবে চালানোর জন্য বা এটি করতে পারেন .hgrc:

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