2017-04-08 12 views
5

मैंने git रेपो क्लोन किया है और मुझे इसके आधार पर एक नई परियोजना शुरू करने की आवश्यकता है।फीनिक्स परियोजना का आसानी से नाम बदलने के लिए कैसे?

मैं इसका नाम कैसे बदलूं, यह सुनिश्चित कर लें कि सब कुछ ख्याल रखा जाए?

मैं मैकोज़ का उपयोग कर रहा हूं।

+0

मैं आम तौर पर सिर्फ '' MyNewApp', साथ MyApp' की खोज-की जगह कर '' my_new_app' साथ my_app', 'lib/my_app'' को lib/my_new_app', नाम बदलने की जाँच करता है, तो यह अभी भी संकलित करता है तथा आखिर में 'गिट diff' की मैन्युअल रूप से समीक्षा करें। – Dogbert

+0

@RomanPerekhrest जो कोड में एप्लिकेशन और आंतरिक संदर्भों का नाम बदलने का ख्याल नहीं रखता है। – jaysoifer

+0

@ डोगबर्ट क्या आप स्पष्ट रूप से उन आदेशों को दिखाएंगे जिन्हें आप उपयोग कर रहे हैं? – jaysoifer

उत्तर

0

nerdyworm's rename.sh के बंद आधार पर, कि का उपयोग करता है ack मैं git grep का उपयोग करें और आसानी से पर MacOS चलाने के लिए यह अनुकूल नहीं बनाया है।

ओटीपी NAME: एप्लिकेशन के लिए सांप केस (सांप_case) नाम।

NAME: नियमित ऐप नाम।

$ git grep -l $CURRENT_OTP | xargs sed -i '' -e "s/$CURRENT_OTP/$NEW_OTP/g" 
$ git grep -l $CURRENT_NAME | xargs sed -i '' -e "s/$CURRENT_NAME/$NEW_NAME/g" 

$ mv lib/$CURRENT_OTP lib/$NEW_OTP 
$ mv lib/$CURRENT_OTP.ex lib/$NEW_OTP.ex 
+0

फीनिक्स 1.3 प्रोजेक्ट का नाम बदलने के लिए कुछ भी बदलने की आवश्यकता होगी? – Emily

+0

@ मुझे यकीन नहीं है कि मैं आपका प्रश्न समझ गया हूं, यह प्रक्रिया फीनिक्स के संस्करण (1.2.x और 1.3.x पर परीक्षण) के बावजूद काम करती है। – jaysoifer

0

मुझे पूर्ण सटीकता के साथ स्वचालित रूप से ऐसा करने का कोई तरीका नहीं पता है, लेकिन जब मैं फीनिक्स परियोजनाओं का नाम बदलने की आवश्यकता हूं तो ये मैन्युअल रूप से मेरे द्वारा अनुसरण किए जाने वाले चरण हैं।

नीचे दिए गए आदेशों को लगता है अपने कोड एक git रेपो में है और पुराने आवेदन my_app/MyApp है और नया एक my_new_app/MyNewApp है। प्रक्रिया भंगुर है - यदि आपका आवेदन या मॉड्यूल नाम कई स्थानों पर हो सकता है (उदा। यह एक अक्षर A या कुछ है), तो यह काम नहीं करेगा।

# search replace both the application name and module name in all files indexed by git 
$ git ls-files -z | xargs -0 perl -p -i -e 's/my_app/my_new_app/g; s/MyApp/MyNewApp/g;' 
# rename `lib/my_app` 
$ mv lib/my_app lib/my_new_app 

उसके बाद मैं mix test चलाने के लिए और किसी भी संकलन त्रुटियों या परीक्षण विफलताओं को ठीक।

अंत में मैं यह सुनिश्चित करने के लिए git diff की त्वरित समीक्षा करता हूं ताकि सब ठीक दिख सके।

+0

'lib/my_app.ex' किसी भी तरह से पैटर्न द्वारा पकड़ा नहीं गया था (फाइलनाम, फ़ाइल की सामग्री नहीं) – jaysoifer

+0

मैंने इस विधि का उपयोग किया और यह अच्छी तरह से काम किया, लेकिन मैंने @Jaysoifer द्वारा उल्लिखित मुद्दे का भी अनुभव किया - यह आसान था हालांकि, इसे ठीक करने के लिए पर्याप्त है। – skwidbreth

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