2011-06-08 8 views
8

प्रत्येक परिवर्तन में कितना परिवर्तन हुआ यह मापने के लिए देख रहे हैं। दो संशोधन के बीच शायद केबी diff सूची करने के लिए कोई त्वरित तरीका?Mercurial परिवर्तनों की सूची SIZE?

उत्तर

3

hg log --stat वह आदेश है जिसके बाद आप हैं। यह उदाहरण देखें:

$ hg log --stat 

changeset: 12431:56e146c7beef 
user:  flast 
date:  Wed Jun 08 16:12:54 2011 +1000 
summary:  Fix the frobulate to frob the knob correctly on tuesdays. 

path/to/src/frob/interface.py  | 29 ++++++++++++++++++++--------- 
path/to/tests/systest_frob.py  | 14 ++++++++++++++ 
2 files changed, 34 insertions(+), 9 deletions(-) 
+6

यह केबी diff नहीं दिखाता है। –

1

मेरे पास कल ही यही विचार था! मैंने a quick and dirty Python script लिखा है जो कुल फ़ाइल आकार परिवर्तन को निर्धारित करने के लिए stdin पर एक एकीकृत diff या कमांड लाइन पर फ़ाइलों के रूप में लिखा है। एक changeset के लिए यह करने के लिए, तुम सिर्फ कर सकता है:

hg diff -c <cset id> | patchsize.py 

त्वरित और इस अर्थ में कि यह शायद प्लेटफ़ॉर्म-विशिष्ट लाइन अंत के लिए खाते में नहीं है, और यह विशेष रूप से चतुराई से डिफ पार्स नहीं करता है में गंदा। लेकिन यह मेरे उद्देश्यों के लिए काफी करीब है।

+0

'एचजी लॉग --स्टैट -आर सीसेट-आईडी' – Jerub

+2

हाँ, मैं इसे हर समय उपयोग करता हूं। लेकिन यह केवल लाइन सम्मिलन और हटाने के रूप में जाता है; मैं एक पैच द्वारा प्रस्तुत फ़ाइल आकार में कुल परिवर्तन के बारे में उत्सुक था। – shambulator

3

मेरे पास कल @ शंबूलेटर जैसा ही विचार था! इसलिए मैंने somewhat long and clean patch.py उपयोगिता से --diffstat आउटपुट के हिस्से के रूप में delta size in bytes मुद्रित करने की क्षमता जोड़ा है।

wget http://python-patch.googlecode.com/svn-history/r200/trunk/patch.py 
hg diff -c tip | python patch.py --diffstat -- 
codereview/views.py | 28 ++++++++++++++++++++++++++++ 
index.yaml   | 10 ++++++++++ 
2 files changed, 38 insertions(+), 0 deletions(-), +1267 bytes 

युपीडी: धन्यवाद @Gili और @mforbes वहाँ अब के लिए मर्क्युरियल
https://bz.mercurial-scm.org/show_bug.cgi?id=4245

+0

लिपि के लिए धन्यवाद! मैंने टिकट दायर किया: http://bz.selenic.com/show_bug.cgi?id=4245 – Gili

+0

इससे मदद मिल सकती है। धन्यवाद। –

+0

बग सर्वर अब https://bz.mercurial-scm.org/show_bug.cgi?id=4245 – mforbes

1

एक टिकट शायद एक आकार की जाँच करने के hg bundle का उपयोग कर सकते है? (मैं जाँच की है नहीं कैसे लगातार इस कुल भंडार आकार की दृष्टि से है।)

function revsize() { 
    hg bundle -r $1 --base "p1($1)+p2($1)" /dev/stdout | wc -c 
} 

यह कैसे काम करता एक बंडल पैदा करने के बाद

इस आकार की गणना करता है (बाइट्स में) wc -c का उपयोग कर संशोधन REV = $1 (बैश फ़ंक्शन के लिए पहला तर्क) और its parents"p1(REV)+p2(REV)" (यदि यह विलय हो तो दो हो सकते हैं।) के रूप में /dev/stdout फ़ाइल के रूप में उपयोग करके, परिणाम मानक को भेजा जाता है जहां इसे पाइप किया जा सकता है फ़ाइल बनाने के बिना wc -c डिस्क।

+0

ध्यान दें कि डिफ़ॉल्ट रूप से, बंडल bzip2 का उपयोग करके संपीड़ित होते हैं। कोई संपीड़न के लिए, "-t none" का उपयोग करें (ऊपर जुड़े एचजी बंडल दस्तावेज़ देखें)। – Kim

+0

@ किम क्या आप जानते हैं कि अंतर डिस्क पर संकुचित किए गए हैं या नहीं? यदि नहीं, तो '' कोई भी नहीं 'शायद सबसे अच्छा है, लेकिन इसे सभी को कुछ परीक्षण (या एक आधिकारिक स्रोत) की आवश्यकता है। – mforbes

+0

इस प्राचीन [उत्तर] के अनुसार (http://stackoverflow.com/a/1270485/3387608) , प्रारंभिक फ़ाइलें संपीड़ित हैं, लेकिन diffs असंपीड़ित हैं। मैंने इसे स्वतंत्र रूप से सत्यापित नहीं किया है या हालांकि हाल ही में एक और पुष्टि मिली है। – Kim