2010-07-27 15 views
12

मैं कुछ फ़ाइल में हटाई गई फ़ाइल को पुनर्स्थापित करना चाहता हूं, और इसे किसी भिन्न नाम के तहत पुनर्स्थापित करना चाहता हूं, ताकि यह इतिहास साझा कर सके। उपversण में, मैंMercurial: फ़ाइलों को पुनर्स्थापित करें

svn cp [email protected] dest 

यानी पेग संशोधन का उपयोग करता हूं। Mercurial में समतुल्य क्या है?

+0

मुझे विश्वास नहीं है कि एचजी सीधे नामों के बीच फ़ाइल के इतिहास को ट्रैक कर सकता है। हालांकि दिलचस्प सवाल है। –

उत्तर

7

मुझे नहीं लगता कि मरकुरियल के पास ऐसा करने का एक अंतर्निहित तरीका है। लेकिन मुझे लगता है कि आप के माध्यम से एक ही प्रभाव प्राप्त कर सकते हैं:

hg up -C REV # Update to revision containing a copy of the file 
<modify the file in question> 
hg commit # Create second head based on old revision 
hg merge # Merge two heads into one 
# Note: make sure to choose to have the file exist 
hg commit 
hg mv MYFILE MYNEWNAME 

इस फ़ाइल में अपने सभी पुराने इतिहास रखने के लिए, सबसे अच्छा के रूप में मर्क्युरियल यह ट्रैक कर सकते हैं होगा।

+1

मैंने विलय से पहले 'एमवी' किया है, नई अनाम शाखा में, लेकिन अंतिम परिणाम वही है। –

+0

यह मेरे लिए ठीक काम करता है, Ry4an की केवल उस फ़ाइल को स्थानांतरित करने की अनुशंसा के साथ जहां आपकी प्रक्रिया बताती है "<प्रश्न में फ़ाइल को संशोधित करें"। –

7

चाहेंगे न सिर्फ (यदि आप "hg remove" REV + 1 में घ src):

hg revert -rREV src 
hg status 
A src 
hg rename src dest 
hg commit -m"restored src and renamed it to dest" 

काम करता है?

संपादित: मैंने अभी इसका परीक्षण किया और यह ठीक लगता है। असल में कोई भी "hg add" स्रोत के लिए आवश्यक है क्योंकि रिवर्ट इस पर ध्यान दे रहा है। लेकिन यदि आप सिर्फ एक दो के बजाय प्रतिबद्ध है (जैसे उपरोक्त कोड में), एचजी एक चेतावनी दे देंगे:

src अभी तक प्रतिबद्ध नहीं किया गया है, इसलिए कोई प्रतिलिपि डेटा गंतव्य के लिए संग्रहीत किया जाएगा।

आशा है कि इससे मदद मिलेगी।

+0

वह फ़ाइल को पुनर्स्थापित करने के लिए काम करेगा; यह एक साथ नामकरण की अनुमति नहीं देता है (क्योंकि जोड़ा गया फ़ाइल इतिहास नहीं माना जाता है)। हालांकि, दो काम करता है, यह भी काम किया होगा। –

संबंधित मुद्दे