我正在参与一个开发Android软件的团队。一些团队成员使用Windows,一些使用Mac,而我则常常使用Linux。每个人都使用Eclipse。
Eclipse会写一个名为
上面是Eclipse在Mac或Linux上写入文件时的样子。在Windows上,当Eclipse写入文件时,库引用行会用反斜杠写入。
当然,在Windows上,反斜杠是可接受的路径分隔符。但在Mac或Linux上,这样的路径不起作用。事实上,在Windows上,正斜杠也可以很好地工作。因此,我们现在的政策是始终使用正斜杠提交文件,以便每个人都能使用。
但这对我们的Windows用户来说很麻烦,当Windows用户出现错误时,对于我们其他人来说也很痛苦,因此我正在寻找技术解决方案。我有两个想法:
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
上面是Eclipse在Mac或Linux上写入文件时的样子。在Windows上,当Eclipse写入文件时,库引用行会用反斜杠写入。
当然,在Windows上,反斜杠是可接受的路径分隔符。但在Mac或Linux上,这样的路径不起作用。事实上,在Windows上,正斜杠也可以很好地工作。因此,我们现在的政策是始终使用正斜杠提交文件,以便每个人都能使用。
但这对我们的Windows用户来说很麻烦,当Windows用户出现错误时,对于我们其他人来说也很痛苦,因此我正在寻找技术解决方案。我有两个想法:
在Windows的Eclipse中找到一个设置,告诉它在保存像
project.properties
这样的文件路径时使用正斜杠。 (为什么不是默认值?!)我们使用Mercurial,因此:安装某种“钩子”来解决问题。
- 在Windows计算机上安装提交钩子,以便将文件提交到仓库中时,将反斜杠替换为正斜杠。
- 在Mac和Linux计算机上安装拉钩子;因此,如果文件被提交带有反斜杠,则这些反斜杠会在写入文件时被修复。
提交钩子似乎更清洁,因此如果两者都可用,我会选择提交钩子而不是拉钩子。
我找到了一个Mercurial扩展程序,可以将制表符编辑为空格,这至少与我想要的有点类似。 它足够复杂,以至于我有点不敢尝试将其修改为我需要的。
另一种策略是添加一个钩子来检测路径中的反斜杠,并简单地终止提交,强制Windows用户在提交之前手动修复文件。这比什么都没有要好。