2017-04-08 69 views
5

我已經克隆了git回購和我要開始基於關閉它一個新的項目。如何順利重命名Phoenix項目?

如何重新命名它,確保一切都照顧?

我使用MacOS的

+0

我通常只是做'MyNewApp',MyApp'的'搜索替換'my_app'用'my_new_app',重命名'LIB/my_app'到'的lib/my_new_app',檢查它是否仍然編譯和最後手動檢查'git diff'。 – Dogbert

+0

@RomanPerekhrest不負責重命名代碼中的應用程序和內部引用。 – jaysoifer

+0

@Dogbert你會不會明確地顯示你正在使用的命令? – jaysoifer

回答

0

基於斷nerdyworm's rename.sh,使用ack我已經適應它使用git grepMACOS輕鬆運行。

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 
+0

重新命名Phoenix 1.3項目需要改變什麼? – Emily

+0

@Emily不知道我理解你的問題,這個過程工作,無論鳳凰的版本(在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