我正在开发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用户修复用手文件提交之前。那会比没有好。
现在面对这个问题。你的团队解决了哪个解决方案? –
尚未解决。我得出的结论是最好的解决方案是简单的:如果反斜杠是错误的,那么提交失败的钩子就会失败,而Windows用户只需要手动修复它。目前,没有人正在对该文件进行基本修改,所以这个问题并没有让我们感到困扰,而且我们都很忙,没有考虑这个问题。 – steveha