回答
基於斷nerdyworm's rename.sh,使用ack
我已經適應它使用git grep
和MACOS輕鬆運行。
•OTP名稱:應用程序的蛇例(snake_case)名稱。
•名稱:常規應用程序名稱。
$ 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
- 1. 如何重命名接縫項目
- 2. 如何在XCode中重命名項目?
- 3. 如何重命名我的CVS項目?
- 4. 如何重命名我的項目?
- 5. 如何在Xcode中重命名項目?
- 6. Iphone:如何重命名項目在Xcode4
- 7. 如何重命名Play項目?
- 8. 如何重命名xcode項目文件
- 9. 如何重命名nodejs項目?
- 10. 名單:重命名重複項目的
- 11. 重命名wxTreeCtrl項目
- 12. 重命名iPhone項目
- 13. iOS重命名項目
- 14. Laravel 5.1重命名項目
- 15. 在Roslyn重命名項目
- 16. 重命名團隊項目
- 17. 重命名JIRA項目
- 18. Android Studio重命名項目
- 19. PowerShell重命名 - 項目
- 20. 如何重命名目錄?
- 21. 如何重命名目錄?
- 22. 重命名項目的包名稱
- 23. 重命名 - 項目更名問題
- 24. 重命名項目名稱不工作
- 25. setup.py:重命名SRC包項目名稱
- 26. 在MyEclipse中重命名項目名稱
- 27. PowerShell的重命名,項目不能重命名
- 28. Visual Studio多項目模板重命名命名空間和項目名稱
- 29. 如何在VS2010中重命名項目名稱
- 30. 如何在Android Studio中重命名項目和包名稱?
我通常只是做'MyNewApp',MyApp'的'搜索替換'my_app'用'my_new_app',重命名'LIB/my_app'到'的lib/my_new_app',檢查它是否仍然編譯和最後手動檢查'git diff'。 – Dogbert
@RomanPerekhrest不負責重命名代碼中的應用程序和內部引用。 – jaysoifer
@Dogbert你會不會明確地顯示你正在使用的命令? – jaysoifer