java - 如何通知其他团队成员重要的项目变更(使用 SVN 或 Ant)?

标签 java svn ant project-management

如果对项目结构进行了重大更改并且简单的源代码检查不会削减它,我们在项目中有“changes.txt”文件,它描述了需要执行的额外操作:

10/10/2010: New table field, run following query: .....

10/11/2010: Library X was replaced with library Y, copy it to tomcat folder

这样可以完成工作,但人们常常忘记检查此文件并花时间弄清楚为什么它不起作用。

我们的项目使用 Java,我们使用 Ant 进行构建,使用 SVN 进行源版本控制。

我相信一定有更好的解决方案。我不是在寻找花哨和高级的东西,SVN 结帐期间的大红色消息或 Ant 构建期间的一些消息将是完美的。

(PS。自动应用更改不是一种选择,一些指令只有人类应该执行)

最佳答案

听起来您的团队成员有各自的沙盒。为了了解他们的钻机相对于项目是否过时,您需要知道在他们的沙箱中应用了哪些更新(因此哪些更新尚未应用)。

查看您提到的更改,您确实需要在构建发生之前将更改应用于沙箱 - 否则故障模式将不可预测,并且可能非常神秘。

也许您可以添加一个 Ant 目标,您的构建将依赖该目标,它会检查沙箱是否是最新的,如果不是,则快速失败。

为了确定沙箱是否是最新的,您需要在其中存储某种修订号,该修订号仅在团队成员更新时才会更新。正如您提到的数据库,在其中有一个简单的表如何只存储一个代表沙箱状态的数字。您的新 Ant 目标将使用 sql task获取沙箱修订号,并将其与源代码树中的版本进行比较(如果数据库路由太复杂,您可以使用不受源代码控制的文件来保存沙箱版本。)如果它们不同,您可以回显一条消息说“您的沙箱需要更新,请查看更改文件并应用比 ${sandbox.date} 更新的更改”。沙箱更新后,开发人员将需要手动更新数据库表中的记录以使构建工作。

我强烈建议您编写尽可能多的更改脚本 - 即使更新脚本是手动运行的。

关于java - 如何通知其他团队成员重要的项目变更(使用 SVN 或 Ant)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103164/

相关文章:

java - Ant javac : package x does not exist, 但我将 x.jar 添加到 java 构建路径库

java - 为什么 HTTP 客户端需要 InputStream? ( java )

java - 比较两个字符串移动一个位置

git - 为什么 checkin 名为 'commit' 的文件?

svn - 如何将新的文件文件夹添加到现有的 SVN 存储库?右键单击时没有出现添加选项

java - 如何在 Ant 的 javadoc 任务中链接第三方库

java - DBRefs(Mongo 文档引用)未急切获取

Java - 简单图形和递归

svn:ignore - 它是如何工作的?

java - 如果 Apache Ant 文件集中满足条件,则包含文件