代码之家  ›  专栏  ›  技术社区  ›  serg

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

  •  3
  • serg  · 技术社区  · 14 年前

    如果对项目结构进行了重大更改,而简单的源代码签出不会将其剪切,则我们在项目中有一个“changes.txt”文件,该文件描述了需要执行的额外操作:

    2010年10月10日:新建表字段,运行以下查询:。。。。。

    2010年11月10日:库X替换为库Y,复制到tomcat文件夹

    这可以完成工作,但人们常常忘记检查这个文件,并花时间找出它为什么不起作用。

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

    我相信一定有更好的解决办法。我并不是在寻找一些新奇和高级的东西,在SVN签出时显示一条红色的大消息或者在Ant构建期间显示一些消息都是完美的。

    (注:自动应用更改不是一个选项,某些指令只有人才能执行)

    3 回复  |  直到 14 年前
        1
  •  3
  •   martin clayton egrunin    14 年前

    听起来你的团队成员有各自的沙盒。为了知道他们的装备是否与项目有关,你需要知道哪些更新已经应用到他们的沙箱中(因此哪些没有应用)。

    查看您提到的更改,您确实需要将更改应用于沙盒 之前 一个构建发生了-否则失败模式将是不可预测的,而且可能非常神秘。

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

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

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

        2
  •  2
  •   Catchwa    14 年前

    将它添加到ant构建文件的适当位置(可能是最后一个与构建相关的任务,这样人们就可以看到它而不必向上滚动):

    <loadfile property="changes" srcFile="changes.txt"/>
    <echo>${changes}</echo>
    
        3
  •  2
  •   Jeremy    14 年前

    老实说,在我工作的地方,大量的电子邮件似乎起到了作用。

    编辑:这并不意味着你不应该 changes.txt 最新的。