সকল ত্যাগ করুন এবং সর্বশেষ সংশোধনীর পরিষ্কার কপি পাবেন?


159

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

সব কিছু ফেলে দেওয়ার এবং সর্বশেষতম সংশোধন রয়েছে এমন একটি ক্লিন ওয়ার্কিং ডিরেক্টরি পাওয়ার সহজ উপায় কী?

বর্তমানে আমি এটি করছি:

hg revert --all
<build command here to delete the contents of the working directory, except the .hg folder.>
hg pull
hg update -r MY_BRANCH

তবে মনে হচ্ছে একটি সহজ উপায় থাকা উচিত।

আমি রেপো মোছার সমতুল্য করতে চাই, একটি নতুন ক্লোন তৈরি করেছি এবং একটি আপডেট করব। তবে রেপো যথেষ্ট দ্রুত হওয়ার জন্য এটি খুব বড়।


1
"রিভার্ট - সমস্ত" কমান্ড বা আপনি যে পদক্ষেপটি সম্পাদন করেছেন তার কোনও মন্তব্য কি "(সামগ্রীগুলি মুছুন ...)"? আমি জিজ্ঞাসা করছি কারণ "এইচজি আপডেট" কেবলমাত্র সেই ফাইলগুলিকে আপডেট করবে যা পরিবর্তিত হয়েছিল। আপনি যদি আপডেট করার আগে অন্য ফাইলগুলি সরিয়ে ফেলেন তবে আপনি নাল-রিভিশন ( hg update 00) এবং পুনরায় টিপ-আপ-এ ব্যাক আপ না করে আপনি সেগুলি পাবেন না। কেন hg revert --allটানা এবং আপডেট করার আগে একটি সামঞ্জস্যপূর্ণ কার্যকারী ফোল্ডার অবস্থায় ফিরে যেতে যথেষ্ট নয় ?
লাসে ভি কার্লসেন

এটি আমার বিল্ড সফ্টওয়্যারটির সাথে একটি পৃথক পদক্ষেপ। (আমি সবেমাত্র একটি কমান্ড-লাইন মুছে
ররি

1
আপনি archiveভবিষ্যতে কমান্ডটি কার্যকর হতে পারে। উদাহরণস্বরূপ, আপনি করতে পারেন hg archive ../newbuild, এবং আপনার সংগ্রহস্থলের একটি স্ন্যাপশট সর্বশেষে hg updateসেখানে রাখা হবে। আমি সাধারণত রাতারাতি কেবল এটির জন্য করি যাতে আমি আমার রেপোকে গোলমাল করার ঝুঁকি না করি। যখন আপনার আর প্রয়োজন হবে না কেবল বিল্ড ডিরেক্টরিটি মুছুন।
টিম পোস্ট

উত্তর:


212

এই পদক্ষেপগুলি নীচে সংক্ষিপ্ত করতে সক্ষম হওয়া উচিত :

hg pull
hg update -r MY_BRANCH -C

-Cপতাকা আপডেট কমান্ড বলে আপডেট করার আগে সমস্ত স্থানীয় পরিবর্তনগুলি পরিত্যাগ করতে।

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

hg pull
hg update -r MY_BRANCH -C
hg purge

যাইহোক, কোনও একক কমান্ড নেই যা আপনি মার্চুরিয়ালকে এখানে সম্পাদন করতে বলতে বলতে পারেন যা আপনি এখানে যা করতে চান তা করতে পারবেন, আপনি যদি প্রক্রিয়াটিকে সেই "সম্পূর্ণ ক্লোন" পদ্ধতিতে পরিবর্তন করেন যা আপনি বলেন যে আপনি করতে পারবেন না।


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

4
আপনি শুদ্ধ করার জন্যও টার্টোইজএইচজি ব্যবহার করতে পারেন। আপনাকে কেবল ওয়ার্কবেঞ্চের সেটিংসে (বা মুরুরিয়াল.আইআই সম্পাদনা করুন) এক্সটেনশনটি চালু করতে হবে।
ডেভ

18
শুদ্ধ প্রসারণটি যদি সক্রিয় না হয় তবে আপনি কমান্ডটিও এর মতো ব্যবহার করতে পারেন: hg --config "extensions.purge=" purge --all
স্যামুয়েল ডিলিসেল

5
@ csharptest.net hg purge --allকেবল আমাকে একটি ভাল মাথা ব্যাথা দিয়েছে, কারণ এটি আমার স্থানীয় কনফিগারগুলিও মুছে ফেলে, যেমন: ডাটাবেস ব্যবহারকারী / পাসওয়ার্ড ইত্যাদি :)
ভিএমসি

@ সামুয়েলডেলিসেল আপনাকে ধন্যবাদ স্যার, আমি আমার স্ক্রিপ্টে এই ওয়ানটাইম কমান্ডের জন্য কোনও কনফিগার পরিবর্তন করতে চাইনি!
junas.fi

113
hg up -C

এটি সমস্ত পরিবর্তনগুলি সরিয়ে ফেলবে এবং বর্তমান শাখায় সর্বশেষ শিরোনামে আপডেট হবে।

এবং সমস্ত পাল্টানো ফাইলগুলিও সরাতে সক্ষম হতে আপনি খাঁটি এক্সটেনশানটি চালু করতে পারেন ।


এর মধ্যে কি অ-ট্র্যাক করা ফাইল অন্তর্ভুক্ত রয়েছে? অন্যান্য কমান্ডগুলির মধ্যে যাদের আমি চেষ্টা করেছিলাম তাদের সাথে আমার কিছু সমস্যা হয়েছিল। আমি এখনই এটি দিয়ে চেষ্টা করব ...
ররি

7
@ ররি: না, hg purgeএটি রূপান্তরিত ফাইলগুলির জন্য।
zerkms

10

শুকানো এক্সটেনশনটি ছাড়াই অন্যাক্র্যাকড * নিক্সে মুছতে আপনি ব্যবহার করতে পারেন

hg pull
hg update -r MY_BRANCH -C
hg status -un|xargs rm

যা ব্যবহার করছে

আপডেট -r --rev REV সংশোধন

আপডেট-সি - বিজ্ঞান ছাড়াই পরিবর্তনগুলি বাতিল (ব্যাকআপ নেই)

স্থিতি -u - অজানা শুধুমাত্র অজানা (ট্র্যাক নয়) ফাইলগুলি দেখায়

স্থিতি -n - কোন স্থিতি লুকানোর স্থিতি উপসর্গ


4

আপনি যদি এমন কোনও পদ্ধতির সন্ধান করেন যা সহজ , তবে আপনি এটি চেষ্টা করতে পারেন।

আমি নিজের জন্য আমার সমস্ত সরঞ্জামের কমান্ডলাইনগুলি খুব কমই মনে করতে পারি, তাই আমি এটি ইউআই ব্যবহার করে করার চেষ্টা করি:


1. প্রথমে "কমিট" নির্বাচন করুন

সমর্পণ করা

2. তারপরে, উপেক্ষা করা ফাইলগুলি প্রদর্শন করুন। যদি আপনার বিনা অনুমতিতে পরিবর্তন হয় তবে সেগুলি আড়াল করুন।

উপেক্ষা করা ফাইলগুলি দেখান

৩. এখন, তাদের সবগুলি নির্বাচন করুন এবং "বিপরীত মুছুন" ক্লিক করুন।

এগুলি মুছুন

সম্পন্ন. এটি এমন একটি পদ্ধতি যা কমান্ডলাইন স্টাফের চেয়ে মনে রাখা আরও সহজ।


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

3

এইচজি স্থিতি আপনাকে সমস্ত নতুন ফাইল প্রদর্শন করবে এবং তারপরে আপনি কেবল সেগুলি আরএম করতে পারবেন ।

সাধারণত আমি উপেক্ষিত এবং রূপান্তরিত ফাইলগুলি থেকে মুক্তি পেতে চাই, তাই:

hg status -iu                          # to show 
hg status -iun0 | xargs -r0 rm         # to destroy

এবং তারপরে এটি অনুসরণ করুন:

hg update -C -r xxxxx

যা সমস্ত সংস্করণযুক্ত ফাইলগুলি পুনর্বিবেচনার জন্য xxxx এর জন্য সঠিক অবস্থায় রাখে


আপনি এটি করতে চান না এমনটি বলার স্ট্যাক ওভারফ্লো traditionতিহ্য অনুসরণ করতে, আমি প্রায়শই দেখতে পাই যে এই "পারমাণবিক বিকল্প" আমার পছন্দসই জিনিসগুলি ধ্বংস করেছে has

এটি করার সঠিক উপায় হ'ল আপনার বিল্ড প্রক্রিয়ায় একটি 'মেক ক্লিন' বিকল্প থাকা এবং সম্ভবত একটি 'সত্যিকার অর্থে পরিষ্কার করুন' এবং 'মেক ডিসটিক্যাল'ও করা উচিত।

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