凤凰计划如何顺利更名?
How to smoothly rename a Phoenix Project?
我已经克隆了一个 git
存储库,我需要基于它开始一个新项目。
如何重命名它,确保一切都得到妥善处理?
我正在使用 macOS。
我不知道有什么方法可以完美准确地自动执行此操作,但这些是我在需要重命名 Phoenix 项目时手动执行的步骤。
下面的命令假定您的代码在 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
以确保一切正常。
基于 nerdyworm's rename.sh,使用 ack
我已经将其改编为在 macOS[=23= 上使用 git grep
和 运行 ] 轻松。
• OTP 名称:应用程序的 Snake Case (snake_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
存储库,我需要基于它开始一个新项目。
如何重命名它,确保一切都得到妥善处理?
我正在使用 macOS。
我不知道有什么方法可以完美准确地自动执行此操作,但这些是我在需要重命名 Phoenix 项目时手动执行的步骤。
下面的命令假定您的代码在 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
以确保一切正常。
基于 nerdyworm's rename.sh,使用 ack
我已经将其改编为在 macOS[=23= 上使用 git grep
和 运行 ] 轻松。
• OTP 名称:应用程序的 Snake Case (snake_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