Hg संस्करणों के बीच कौन सी फाइलें बदली हैं इसकी सूची बनाना


118

मैं एक सूची तैयार करना चाहता हूं कि मर्क्यूरियल में दी गई निर्देशिका में दो संशोधनों के बीच कौन सी फाइलें बदल गईं।

विशेष रूप से, मुझे इस बात में कोई दिलचस्पी नहीं है कि क्या बदला, लेकिन उस निर्देशिका में कौन सी फाइलें बदलीं।

जैसे, उस thenऔर के बीच otherthen, केवल 2 फाइलें बदलीं:

>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>

काल्पनिक कमांड क्या है? मैंने अलग-अलग और लॉग इन करने की कोशिश की है, लेकिन मैं यह नहीं देख सकता कि उन्हें यह करने के लिए कैसे मना किया जाए: या तो मुझे पैच (अंतर) मिलता है, या मुझे पूरे रेपो (लॉग) मिलते हैं।

जवाबों:


166
hg status --rev x:y

कहाँ xऔर yवांछित संशोधन संख्याएँ (या टैग या शाखा नाम) हैं।

यदि आप विंडो में टर्मिनल का उपयोग कर रहे हैं तो hg status --rev x:y> your-file.txtफ़ाइल में सूची को बचाने के लिए जोड़ें ।


3
केवल वर्तमान निर्देशिका में परिवर्तन देखने के लिए:hg status --rev x:y .
उपयोगकर्ता

14
नवीनतम संशोधन में बदलाव देखने के लिए: hg status --rev .^
कुनिगामी

8
सिर्फ फ़ाइल नाम की सूची प्राप्त करने के लिए (और परिवर्तन के प्रकार को इंगित करने वाला कोई उपसर्ग चरित्र), अपेंड -n, यानीhg status --rev x:y -n
चीता

1
hg status --change .परिवर्तित फ़ाइलों की .सूची - उसी सूची में जो hg status --rev .^सीधे
Metaxis

14

स्थिति वही है जो आपको चाहिए।

लेकिन, "दो संशोधनों के बीच" से आपका क्या अर्थ है, इसके आधार पर, आप " x :: y " (DAG - डायरेक्टेड एसाइक्लिक ग्राफ) श्रेणी का उपयोग करने पर भी विचार कर सकते हैं ।

समानांतर परिवर्तन को देखते हुए,

1--2---4 \---3

hg status --rev 1:4 वापसी (1,2,3,4), यानी स्थानीय और संख्यात्मक संशोधन के अनुसार, एंडपॉइंट्स के बीच और कुछ भी । यह (और शायद सबसे अधिक होगा) अन्य में अलग-अलग परिणाम लौटाएगा - हालांकि संबंधित - रिपॉजिटरी!

hg status --rev 1::4(1,2,4), यानी समापन बिंदु, और सभी परिवर्तनक जो '1' के वंशज हैं और '4' के पूर्वज हैं।

बाद का मामला, x :: y, आमतौर पर वास्तविक दुनिया के अनुप्रयोगों में अधिक उपयोगी है। यह वह है जो आपको TortoiseHg \ Visual Diff के माध्यम से मिलता है।


> एचजी मदद रिवाइसेट:

"x :: y" एक DAG श्रेणी, जिसका अर्थ है सभी परिवर्तन जो x के वंशज हैं और y के पूर्वज हैं, जिनमें x और y स्वयं शामिल हैं। यदि पहला समापन बिंदु छोड़ दिया जाता है, तो यह "पूर्वजों (y)" के बराबर है, यदि दूसरा छोड़ा गया है तो यह "वंशज (x)" के बराबर है।


1
हो सकता है कि आपको स्पष्ट रूप से कमांड शामिल करने की आवश्यकता हो ताकि आपका उत्तर अन्य और अधिक मूर्ख-प्रूफ पर निर्भर न हो। कुछ ऐसा है "हाँ, स्थिति वही है जो आपको चाहिए। उदाहरण के लिए hg status --rev x::y"।
फोनिक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.