मैं इस सवाल का जवाब द्वारा जोड़ा जा रहा है, क्योंकि न दे देंगे यह स्वीकार्य उत्तर से बेहतर है, लेकिन क्योंकि यह "एचजी स्थिति" के बीच भेद को स्पष्ट करता है। और "एचजी स्थिति $ (एचजी रूट)"। जो कुछ टिप्पणीकर्ताओं को भ्रमित कर सकता है - बदतर, जो आवश्यक सामानों की जांच करना भूल सकता है।
"एचजी स्थिति।" रिश्तेदार पथों का उपयोग करके, नीचे subtree के लिए केवल स्थिति की रिपोर्ट।
"एचजी स्थिति $ (एचजी रूट)" सीडब्ल्यूडी के सापेक्ष पथों का उपयोग करके पूरे रेपो के लिए रिपोर्ट की स्थिति।
दोनों उपयोगी हैं।
(सामान्यतः, "एचजी स्थिति पथ" पथ के नीचे उपट्री के लिए स्थिति दिखाता है (पूरे रेपो यदि पथ = $ (एचजी रूट) ", लेकिन सीडब्ल्यूडी के सापेक्ष।(मुझे यह स्वीकार करना होगा कि मुझे यह भ्रमित लगता है, क्योंकि दो चीजें हो रही हैं: स्थिति प्राप्त करने के लिए subtree, और cwd से संबंधित पथ दिखाने के लिए।)
यह नीचे एम्बेड किए गए शेल सत्र के उदाहरण द्वारा दिखाया गया है।
$ bash [~/hack] 562 $> mcd hg-test
./hg-test
$ bash [~/hack/hg-test] 563 $> hg init .
$ bash [~/hack/hg-test] 564 $> mkdir subdir
$ bash [~/hack/hg-test] 565 $> touch foo
$ bash [~/hack/hg-test] 566 $> touch subdir/bar
$ bash [~/hack/hg-test] 567 $> hg status
? foo
? subdir/bar
$ bash [~/hack/hg-test] 552 $> hg status $(hg root)
? foo
? subdir/bar
$ bash [~/hack/hg-test] 552 $> cd subdir
./subdir
$ bash [~/hack/hg-test/subdir] 553 $> hg status
? foo
? subdir/bar
$ bash [~/hack/hg-test/subdir] 553 $> hg status .
? bar
$ bash [~/hack/hg-test/subdir] 513 $> hg status $(hg root)
? ../foo
? bar
$ bash [~/hack/hg-test/subdir] 523 $> hg status
? foo
? subdir/bar
इसलिए, आप क्योंकि मैं उपयोग कर रहा हूँ में जाँच के बिना, स्थानीय सबट्री में फ़ाइलों की एक बैकअप बनाने, और फिर वापस लौटने (मैं अक्सर, ऐसा करने की जरूरत है जब "एचजी लॉक" का उपयोग कर की तरह कुछ करना चाहते हैं, तो FrameMaker फ़ाइलों को diffed किये जाने वाले नहीं किया जा सकता या विलय कर दिया एचजी के भीतर (या मुश्किल से सभी)):
$ bash [~/hack/hg-test/subdir] 523 $> mkdir bak; hg status -n . | xargs cp --target-directory bak
$ bash [~/hack/hg-test/subdir] 524 $> ls bak
bar
लेकिन तुम पेड़ कि स्थिति
$ bash [~/hack/hg-test/subdir] 528 $> mkdir bak-root; hg status -n $(hg root) | xargs cp --target-directory bak-root
cp: will not overwrite just-created `bak-root/bar' with `bar'
$ bash [~/hack/hg-test/subdir] 529 $> ls bak-root
bar foo
द्वारा रिपोर्ट कर रहे हैं के द्वारा सभी फ़ाइलों का बैकअप करना चाहते हैं वा वाई, चेतावनी फाइलनामों को टकराव करने की समस्याओं को दिखाता है। मैं आम तौर पर एक छोटा सा उपकरण उपयोग करता हूं जिसे मुझे एक .bak प्रत्यय, या xargs जोड़ना है। लेकिन यह उदाहरण पर्याप्त है।
जिस तरह से^2, मैं आमतौर पर "एचजी स्थिति-एनएम" के साथ इस तरह की चीजें करता हूं, लेकिन ऊपर दिया गया उदाहरण पर्याप्त है।
मुझे लगता है कि .hgrc में एक विकल्प जोड़ा जाना चाहिए, सुविधा अनुरोध के लिए http://bz.selenic.com/show_bug.cgi?id=3835 देखें। –