2010-11-26 8 views
11

hg log -k जब पर्याप्त नहीं है, और hg grep बस इतना धीमा है (सीसीए 100k परिवर्तन)? फिशिए (रास्ता बहुत धीमा) के साथ हमारे बहुत बुरे अनुभव हैं, और भट्ठी हमें फोगक्री साम्राज्य में थोड़ा सा बांधने लगती है।एक मर्कुरियल रिपोजिटरी को पूर्ण-पाठ अनुक्रमणिका कैसे करें?

भंडार पर पूर्ण-पाठ खोज क्षमताओं को प्रदान करने के लिए अन्य विकल्प क्या हैं?

+0

आप किस प्रकार की कार्यक्षमता की तलाश में हैं? बस प्रतिबद्ध संदेश खोज रहे हैं? –

+0

भट्ठी मानक Mercurial पर आधारित है। अगर आप किसी भी समय छोड़ना चाहते हैं, तो इसमें कोई तालाब नहीं है। आपको कोड खोज (अन्य चीजों के साथ) नहीं मिलती है। – tghw

उत्तर

2

आप एक पूर्ण-पाठ खोज में क्या ढूंढ रहे हैं? यदि आप संशोधन को जानना चाहते हैं तो पाठ को जोड़ा जाना आसान है, और यदि आप सभी संशोधनों को जानना चाहते हैं जिसमें टेक्स्ट मौजूद है तो यह बड़ा है।

आम तौर पर hg grep जितना तेज़ होगा उतना तेज़ होगा जितना आप एक इंडेक्स प्री-बिल्डिंग के बिना प्राप्त करने जा रहे हैं, या कम से कम प्री-बिल्डिंग वर्जन वाली फाइलें जिन्हें आप पारंपरिक grep का उपयोग कर सकते हैं।

आप एक greppable फ़ाइल संरचना पूर्व निर्माण करने के लिए तैयार हैं, तो आप कुछ इस तरह कर सकता है:

hg export -o 'changeset-%r-%h.patch --rev 0:tip 

यह सामान्य कमांड लाइन ग्रेप या अनुक्रमण का उपयोग कर grepping के लिए उपयुक्त एक textfile के लिए बाहर प्रत्येक changeset निर्यात होगा ल्यूसीन या इसी तरह का उपयोग करना। आप आसानी से उस वर्तमान को changeset हुक के साथ रख सकते हैं।

केवल चेंजसेट diffs होने के बाद आपको उन संशोधनों की तलाश करने की सुविधा मिलती है जहां पाठ जोड़ा गया था या हटा दिया गया था, लेकिन उस पाठ में मौजूद सभी संशोधनों की सूची नहीं है। इसके लिए आप प्रत्येक संशोधन में प्रत्येक फ़ाइल की प्रतिलिपि बना सकते हैं, लेकिन यह स्वचालित रूप से स्वचालित होने पर भी बहुत सी जगह है।

एक और विकल्प यदि आप एक विशिष्ट संशोधन की तलाश में हैं तो कुछ ऐसा हुआ है यह सुनिश्चित करने के लिए कि आप hg bisect के साथ बातचीत कर रहे हैं। यह आप के लिए एक द्विआधारी खोज को स्वचालित, इसलिए यदि आप पहले संशोधन स्ट्रिंग CHEESE आप की तरह कुछ कर सकता है कि पता लगाना चाहते हैं:

hg bisect --command "grep -s CHEESE" # might need to reverse the exit code of grep -s 

कि आपके काम कर dir जो hg grep नहीं है अद्यतन करता है, हालांकि।

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