如何顺利重命名凤凰计划?

时间:2017-04-08 11:19:09

标签: git sed elixir phoenix-framework xargs

我克隆了一个git回购,我需要根据它开始一个新项目。

如何重命名,确保一切都得到妥善处理?

我正在使用 macOS

2 个答案:

答案 0 :(得分:2)

基于nerdyworm's rename.sh,使用ack我已将其修改为使用git grep并轻松在 macOS 上运行。

OTP NAME :应用程序的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

答案 1 :(得分:0)

我不知道如何以完美的准确度自动执行此操作,但这些是我在需要重命名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进行快速审核,以确保一切正常。

相关问题