什么进入源代码管理?

时间:2011-04-29 12:52:12

标签: android svn version-control subclipse

鉴于:http://developer.android.com/resources/faq/commontasks.html#filelist

  1. 将项目纳入源代码管理的最佳做法是什么?我问,因为如果你只是右键点击你的项目,选择团队等,你最终会得到/ bin& / gen文件夹,.classpath以及所有与Eclipse相关的项目。
  2. 如果我使用... / workspace / projectName等继承项目。包括如何清理它只包括与上述URL相关的项目?

4 个答案:

答案 0 :(得分:13)

我在博文中总结了我的所有发现,可以在这里找到:http://www.aydabtudev.com/2011/05/what-goes-into-source-control-android.html

我从项目文件夹中执行了以下命令,使它们不受源代码控制:

svn rm --keep-local .classpath
svn rm --keep-local .project
svn rm --keep-local default.properties
svn rm --keep-local proguard.cfg
svn rm --keep-local bin/
svn rm --keep-local gen/

然后我执行以下命令将它们添加到忽略列表中:

svn pe svn:ignore .

在没有相关命令的情况下添加上面的每个项目,如下所示:

.classpath
.project
bin/
...

我通过提交和更新来跟进,以巩固我的更改。

svn commit -q -m "Removing files" .
svn update

这样做的更聪明的方法是在Eclipse Team首选项下配置忽略资源。

答案 1 :(得分:3)

如果您正在使用SVN,则应有选择地将文件/目录添加到存储库。

例如,使用以下目录结构(来自我的磁盘的快速示例):

res/
src/
build/
.idea/

想要构建目录,也不想添加IDE(.idea文件夹)的个人首选项,因此您只需发出命令:svn add res src

To(我认为)回答你的第二点,我最初会从命令行管理所有与版本控制有关的事情,然后让你的IDE做到。

如果我错过了问题,我道歉。

答案 2 :(得分:2)

以下是一些基本要点:

  • 不要将内容存储在源代码生成的版本控制中。例如,如果您构建了一个jar文件,请不要将该jar文件存储在源代码管理下。
  • 源代码管理是针对来源的。如果您有发行版,请使用Artifactory之类的发布存储库。不要让 Maven 的东西吓跑你。也许您不使用Maven(现在),但Maven存储库工具采用标准格式,并且可以轻松找到您的版本。 Artifactory可以与Ant / Ivy一起使用,并且有一点点肘部油脂,你也可以使用C和C ++项目。
  • 这让我想到了下一个声明:不要在您的源存储库中存储您的jar文件(如果您是Java项目)。它很方便,但从长远来看,你最终会讨厌自己。二进制文件在许多源控制系统中需要很长时间才能处理,并且它们占用了大量空间。更糟糕的是你丢失了有关它们的信息。例如,在我的项目现在依赖的Subversion中检查了哪个版本的common-utils.jar。再次,使用Artifactory和Ant / Ivy或Maven。如果您是非Java,则可以使用wgetcurl从Artifactory中获取依赖库。再一次,不要让整个Maven的事吓到你。
  • 如果您有一个Java项目,并且您没有使用Maven,请坚持使用Maven的标准布局将代码存储在存储库中。也就是说,Java代码存储在src/main/java下,非Java文件存储在src/main/resources下。优点是,它可以轻松地从一个项目移动到另一个项目,新的开发人员可以快速找到事物的位置。此外,它使您的build.xml文件更清晰。您可以使用任何您想要的标准存储库布局,但通过坚持Maven的标准,您可以压制所有投诉。 “嘿,我同意你的观点,但Maven说你把你的代码放在这个目录下。对不起,我希望我可以提供帮助,但我的双手并列了”
  • 如果您使用的是Subversion,请坚持使用标准trunkbranchestags样式,并且不要过于花哨。我自己并不是百分之百疯狂的布局。 (我宁愿在main目录下有一个branches,而不是trunk),但是你只会让开发人员感到困惑,让支持变得更加困难,所有这些都只会获得很少的收益。 / LI>
  • 确保所有项目(如果您使用Ant)具有标准目标名称。我再次借用Maven的命名约定。确保所有build.xml在目标名称中使用description参数,并且仅内部目标不使用description。这样,ant -p就可以了。还要确保所有构建的工件都在target目录下(再次,Maven的方式)。如果您只需删除clean目录,则可以轻松执行targetclean的想法是将您的布局恢复到原始结帐状态。使用Jenkins之类的工具变得更加容易。这让我想起......
  • 使用像Jenkins这样的连续构建工具。它可以帮助您实施您的政策和标准。与许多工具不同,开发人员实际上喜欢Jenkins。并且,您可以添加自动测试,checkstyle等内容。

答案 3 :(得分:0)

1。 这取决于您的工作流程。如果你希望每个将在你的项目上工作的人都使用带有.classpath文件夹的eclipse,那就好了,因为它保留了你所有的设置(库路径,外部依赖...)

据我所知,subclipse没有将/ bin文件夹置于版本控制之下(可能是因为你在2中描述的存储库形状的奇怪方式而发生)因为eclipse可以动态生成那个它有/ src文件夹。

  1. 通常将/ workspace / projectName下的所有内容移动到/并删除/工作空间就足够了。