2013-10-18 74 views
9

我正在開發Android軟件的團隊中工作。一些團隊成員使用Windows,一些使用Mac,並且我知道使用Linux。每個人都使用Eclipse。Eclipse project.properties被認爲有害的反斜槓路徑

Eclipse寫入一個名爲project.properties的文件;這裏是一個例子。重要的部分是最後三行,即android庫引用路徑。

# This file is automatically generated by Android Tools. 
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! 
# 
# This file must be checked in Version Control Systems. 
# 
# To customize properties used by the Ant build system edit 
# "ant.properties", and override values to adapt the script to your 
# project structure. 
# 
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

# Project target. 
target=android-17 
android.library.reference.1=../private-code/lib/SomeLibrary 
android.library.reference.2=../google-play-services_lib 
android.library.reference.3=../FacebookSDK 

以上是在Mac或Linux上的Eclipse寫入時文件的外觀。當Windows上的Eclipse寫入時,庫引用行將使用反斜槓書寫。

當然,在Windows中,反斜槓是可接受的路徑分隔符。但在Mac和Linux上,這些路徑不起作用。事情是,在Windows上,正斜槓工作得很好。所以,我們現在的政策是始終以斜線提交文件,以便它適用於所有人。

但是這對我們的Windows用戶來說是一種痛苦,當Windows用戶犯了一個錯誤時,這對我們其他人來說是痛苦的,所以我正在尋找一種技術解決方案。我有兩個想法:

  • 查找在Eclipse中的某處設置在Windows上,告訴它使用向前文件保存路徑時,像project.properties斜槓。 (爲什麼這不是默認值?!?)

  • 我們使用Mercurial,所以:安裝某種「鉤子」即可解決問題。

    • 在Windows計算機上安裝提交掛鉤,以便將文件提交到存儲庫,反斜槓替換爲正斜槓。
    • 在Mac和Linux計算機上安裝一個掛鉤;所以如果文件被反斜槓提交,那麼在文件寫入時它們會被修復。

的承諾掛鉤似乎更清潔,因此,如果兩者都可以我會接管拉勾提交掛鉤。

我發現了一個Mercurial擴展,它將選項卡編輯爲空格,這至少與我想要的類似。這足夠複雜,我有點不情願試圖將其修改爲我所需要的。

https://www.mercurial-scm.org/wiki/CheckFilesExtension

另一個策略是增加了檢測的路徑反斜槓鉤,並簡單地中止犯,迫使Windows用戶修復用手文件提交之前。那會比沒有好。

+0

現在面對這個問題。你的團隊解決了哪個解決方案? –

+1

尚未解決。我得出的結論是最好的解決方案是簡單的:如果反斜槓是錯誤的,那麼提交失敗的鉤子就會失敗,而Windows用戶只需要手動修復它。目前,沒有人正在對該文件進行基本修改,所以這個問題並沒有讓我們感到困擾,而且我們都很忙,沒有考慮這個問題。 – steveha

回答

0

由於本地庫的路徑不同,我們面臨類似的情況,所以經過一段時間的搜索後,我們發現使用集中式存儲庫工具(Git for our)的最佳實踐,「刪除所有依賴於eclipse的/特定設置來自Repository的文件「。這對我們來說很好。這樣,對eclipse設置文件的更改不會影響中央存儲庫或被提交。

1

我會保留項目中的兩個版本(如project.properties.windowsproject.properties。linux),並根據操作系統創建指向正確文件的符號鏈接。調用此符號鏈接project.properties讓它被版本控制忽略。

顯然,這種設置的缺點是,當Windows用戶更新他們的project.properties文件(指向project.properties.windows),Linux版本必須手動更新,反之亦然,但這聽起來不是什麼大不了的,我認爲你不會經常更新這個文件。

- 要創建的鏈接 -

創建一個文件make_link.sh設置Linux環境,用下面的命令:

ln -s $(readlink -m project.properties.linux) $(readlink . -m)/project.properties 

創建一個文件make_link.bat到使用以下命令設置Windows環境:

mklink project.properties project.properties.windows 

您也可以提交這些腳本。

相關問題