আমি কীভাবে মার্শুরিয়ালে আমার ওয়ার্কিং ডিরেক্টরি থেকে সমস্ত চিহ্নবিহীন ফাইল মুছতে পারি?


207

আমার ওয়ার্কিং ডিরেক্টরি থেকে সমস্ত লাইনচিহ্নবিহীন ফাইল মুছা সম্ভব? ধরা যাক যে আমি আমার ওয়ার্কিং ডিরেক্টরিতে একগুচ্ছ ফাইল যুক্ত করেছি, সেগুলিকে 'এইচজি অ্যাড' এর মাধ্যমে যুক্ত করিনি এবং এখন এই নতুন ফাইলগুলি পুরোপুরি পরিত্রাণ পেতে চাই?

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

উত্তর:


286

Mercurial এক্সটেনশন নামক যোগ রেচক পদার্থ । এটি মার্চুরিয়াল দ্বারা বিতরণ করা হয়।

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

hg purge

এটি ডিফল্টরূপে সক্ষম করা নেই, হতে পারে দুর্ঘটনাক্রমে যে ফাইলগুলি আপনি যুক্ত করতে ভুলে গিয়েছিলেন সেগুলি অপসারণ এড়াতে।

এই এক্সটেনশানটি ইনস্টল করতে, এটি আপনার মার্উরিয়াল সেটিংস ফাইলে যুক্ত করুন (উইন্ডোজ-এর ইউনিক্সে .hgrc, উইন্ডোতে মার্চুরিয়াল.ইএনআই)

[extensions]
purge = 

এই এক্সটেনশনটি সাময়িকভাবে সক্ষম করতে আপনি ব্যবহার করতে পারেন

hg purge --config extensions.purge= 

26
hg purge --allসমস্ত অ-ট্র্যাক এবং উপেক্ষা করা ফাইল মুছবে। এটি ইন-উত্স বিল্ডগুলি পরিষ্কার করার জন্য দরকারী
টাকাসওয়েল

22
অস্থায়ীভাবে এক্সট্রা সক্ষম করতে আপনি ব্যবহার করতে পারেনhg purge --config extensions.purge=
পাইক্লার

121

শুদ্ধি ছাড়াই সঠিক উপায়:

hg st -un0 | xargs -0 rm

1
@ সিম্প্লিহার্সস এইভাবে ভাল বা আপনি কি এক্সটেনশন যুক্ত করার চেয়ে কম কাজ খুঁজে পেয়েছেন?
ইয়াকভ কুপর্ম্যান

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

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

1
@ জাভাওয়াইজার্ড: এটি একটি দুর্দান্ত বিষয় যা আমাকে এইচজি কীভাবে কাজ করে তা পুনর্বিবেচনা করতে বাধ্য করে। তবে এটি কেবলমাত্র কাজ করে কারণ rm -rf *ডট ফাইল এবং ডট ডিরেক্টরিগুলি সহ এড়িয়ে যায় .hg/। একই টোকেন দ্বারা, অন্য যে কোনও ডটফাইল (বলুন evশ্বর-সেটিংস )ও বেঁচে থাকবে এবং শুদ্ধি আরও ভাল।
dirkjot

2
সচেতন থাকুন যে 'hg st -u' এবং 'hg purge' কী খুঁজে পায় তার মধ্যে আচরণের মধ্যে পার্থক্য রয়েছে। 'hg st -u' চিহ্নবিহীন খালি ডিরেক্টরিগুলি খুঁজে পাবে না, যখন 'এইচজি শুদ্ধি' তাদের সন্ধান করবে (এবং মুছে ফেলবে)। এটি আপনার পক্ষে গুরুত্বপূর্ণ বা নাও হতে পারে।
মাইকেল কেন্ট

19

ধন্যবাদ! এটি পাওয়ারশেলের ক্ষেত্রেও আমার পক্ষে কাজ করেছিল:

hg st -un | rm

2
xargs পাওয়ারশেলের কাজ করে না - "উইন্ডোজ বন্ধুত্বপূর্ণ" বাক্সের বাইরে এই একমাত্র উত্তর
নিকোস আতানাসিয়ো

একমত ... এক্সার্গ্সের উপর দ্বিতীয়টি পাওয়ারশেলে কাজ করছে না ... শুদ্ধি এখনও একটি কার্যকর বিকল্প, যদিও
beauXjames

আমার জন্য কাজ করেছেন :)
নবীন কুমার ভি

4
rm $(hg st -u)

... যেখানে আপনি "অপ্রকাশিত" হিসাবে দাঁড়িয়েছেন আপনি অন্য একটি রাষ্ট্রও চয়ন করতে পারেন।


4

তুমি ব্যবহার করতে পার

hg purge --all

সমস্ত অবহেলিত এবং চিহ্নবিহীন ফাইলগুলি সরাতে

(প্রথমে আপনাকে কিছু উত্তরে বর্ণিত হিসাবে খাঁটি এক্সটেনশনটি ইনস্টল করতে হবে)




2

আপনি যদি শুদ্ধি ব্যবহার করতে না চান:

rm $(hg st | grep ^? | awk '{print $2}')

0

ধরে নিই যে আপনি একটি * নিক্স সিস্টেম ব্যবহার করছেন আপনি এরকম কিছু চালাতে পারেন:

rm `hg st | awk '/\?/ {print $2}'`

পারদর্শী সংগ্রহস্থলের মূল থেকে।

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

দয়া করে এই আদেশটি সতর্কতার সাথে ব্যবহার করুন কারণ এটির পুরোপুরি পরীক্ষা করা হয়নি।

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