मैंने git
रेपो क्लोन किया है और मुझे इसके आधार पर एक नई परियोजना शुरू करने की आवश्यकता है।फीनिक्स परियोजना का आसानी से नाम बदलने के लिए कैसे?
मैं इसका नाम कैसे बदलूं, यह सुनिश्चित कर लें कि सब कुछ ख्याल रखा जाए?
मैं मैकोज़ का उपयोग कर रहा हूं।
मैंने git
रेपो क्लोन किया है और मुझे इसके आधार पर एक नई परियोजना शुरू करने की आवश्यकता है।फीनिक्स परियोजना का आसानी से नाम बदलने के लिए कैसे?
मैं इसका नाम कैसे बदलूं, यह सुनिश्चित कर लें कि सब कुछ ख्याल रखा जाए?
मैं मैकोज़ का उपयोग कर रहा हूं।
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
मुझे पूर्ण सटीकता के साथ स्वचालित रूप से ऐसा करने का कोई तरीका नहीं पता है, लेकिन जब मैं फीनिक्स परियोजनाओं का नाम बदलने की आवश्यकता हूं तो ये मैन्युअल रूप से मेरे द्वारा अनुसरण किए जाने वाले चरण हैं।
नीचे दिए गए आदेशों को लगता है अपने कोड एक 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
की त्वरित समीक्षा करता हूं ताकि सब ठीक दिख सके।
'lib/my_app.ex' किसी भी तरह से पैटर्न द्वारा पकड़ा नहीं गया था (फाइलनाम, फ़ाइल की सामग्री नहीं) – jaysoifer
मैंने इस विधि का उपयोग किया और यह अच्छी तरह से काम किया, लेकिन मैंने @Jaysoifer द्वारा उल्लिखित मुद्दे का भी अनुभव किया - यह आसान था हालांकि, इसे ठीक करने के लिए पर्याप्त है। – skwidbreth
मैं आम तौर पर सिर्फ '' MyNewApp', साथ MyApp' की खोज-की जगह कर '' my_new_app' साथ my_app', 'lib/my_app'' को lib/my_new_app', नाम बदलने की जाँच करता है, तो यह अभी भी संकलित करता है तथा आखिर में 'गिट diff' की मैन्युअल रूप से समीक्षा करें। – Dogbert
@RomanPerekhrest जो कोड में एप्लिकेशन और आंतरिक संदर्भों का नाम बदलने का ख्याल नहीं रखता है। – jaysoifer
@ डोगबर्ट क्या आप स्पष्ट रूप से उन आदेशों को दिखाएंगे जिन्हें आप उपयोग कर रहे हैं? – jaysoifer