2012-11-25 11 views
5

मेरे पास कोड की हजारों लाइनों के साथ एक सीएसएस फ़ाइल है। मैं देखना चाहता हूं कि वापस जाने के बिना कोड की एक विशिष्ट रेखा/खंड बदल दिया गया था और प्रत्येक संशोधन को बदलने के लिए इस फ़ाइल को बदल दिया गया था (इसमें एक बहुत समय लगेगा!)Mercurial - कोड की एक विशिष्ट पंक्ति के लिए इतिहास को कैसे देखें

क्या कोई तरीका है, या तो TortoiseHg, Eclipse का उपयोग कर कोड के एक विशिष्ट टुकड़े के इतिहास को देखने के लिए एक Mercurial प्लगइन, या कमांड लाइन?

उत्तर

16

सही उत्तर hg grep (Mercurial grep page) है।

अधिक गहरा:

hg grep --all "PATTERN" FILENAME 

नमूना उत्पादन:

>hg grep --all "textdomain" functions.php 
functions.php:2:-:load_theme_textdomain('fiver', get_template_directory() . '/translation'); 
functions.php:2:+:load_theme_textdomain('fiver', get_template_directory() . '/languages'); 
functions.php:1:+:load_theme_textdomain('fiver', get_template_directory() . '/translation'); 

(क्रम में - फ़ाइल नाम, संशोधन, एक्शन, स्ट्रिंग इस संशोधन में)

+1

- यह सही ध्वज है। सब काम नहीं करता है। – Sasha

+1

मुझे नहीं लगता कि यह स्वीकार किए जाने के बावजूद यह एक सही जवाब है। यह पूरे इतिहास में फ़ाइल में एक निश्चित पैटर्न की घटना की खोज करेगा। यह आपको फ़ाइल में एक विशिष्ट रेखा का इतिहास नहीं देगा, जब तक कि केवल एक पंक्ति न हो जो पूरे इतिहास में उस पैटर्न से मेल खाती हो। 'एचजी एनोटेट' सही जानकारी देता है, हालांकि आपको घटनाओं की पूरी श्रृंखला प्राप्त करने के लिए इतिहास के माध्यम से मैन्युअल रूप से पीछे हटना होगा। – jwd

1

मुझे नहीं लगता कि फ़ाइल का एक विशिष्ट भाग देखने का विकल्प है। लेकिन कई संशोधनों पर कुल फ़ाइल के मतभेद को देखने के लिए आप hg diff उपयोग कर सकते हैं:

hg diff -r firstrevisionnumber:otherrevnumber filename 

उदाहरण के लिए, hg diff -r 0:8 screen.css

या आदेश hg log screen.css

+0

इस पता करने के लिए अच्छा है, लेकिन करता है इस विशेष परिस्थिति में मदद न करें, क्योंकि मुझे देखने के लिए संशोधन की सीमा का कोई अंदाजा नहीं है, और हमारे पास अब तक इतिहास में लगभग 3,000 संशोधन हैं। –

13

आप उपयोग कर सकते हैं:

hg annotate <file> 

पता लगाने के लिए है, जिसमें संशोधन लाइन बदल गया था और उसके बाद अंत में -r <revision> के साथ एक ही आदेश का उपयोग संशोधन के माध्यम से पीछे की ओर जाने के लिए।

+0

धन्यवाद, यह वही था जो मुझे चाहिए था! –

+1

केवल दोष दिखाएं: 1. परिवर्तन का सबसे हालिया संशोधन 2. वर्तमान में हटाए गए तारों के लिए जानकारी नहीं दिखा सकता –

+1

दुर्भाग्यवश यह एक बहुत ही मैन्युअल प्रक्रिया है ..:} – user2864740

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