如何在SVN中处理对标记文档的更改

如何在SVN中处理对标记文档的更改,svn,tags,documents,Svn,Tags,Documents,我在trunk上有一些文档,它们是针对特定版本更新的,并标有版本号(trunk上的文档将继续),并通过发布电子邮件在整个公司发布。 问题–我们正在确定标记文档所需的更改(例如,在RN中,模块提到的某个地方的打字错误或修订号错误)。在这种情况下,您可以说更新trunk上的文档并创建一个新标记 它将使原始电子邮件无效 基本规则是一旦在整个公司发布,就不会更新或删除标记 为使其更复杂,标记的文档使用标记链接相互引用。因此,文档更新将触发要更新的其他文档 我想知道,如果不重新发送发布电子邮件,链接仍在工

我在trunk上有一些文档,它们是针对特定版本更新的,并标有版本号(trunk上的文档将继续),并通过发布电子邮件在整个公司发布。 问题–我们正在确定标记文档所需的更改(例如,在RN中,模块提到的某个地方的打字错误或修订号错误)。在这种情况下,您可以说更新trunk上的文档并创建一个新标记

  • 它将使原始电子邮件无效
  • 基本规则是一旦在整个公司发布,就不会更新或删除标记
  • 为使其更复杂,标记的文档使用标记链接相互引用。因此,文档更新将触发要更新的其他文档
  • 我想知道,如果不重新发送发布电子邮件,链接仍在工作,不鼓励再次删除和重新创建标签(这将在今后产生不良做法),如何处理这一问题


    如果有什么不清楚的地方,请原谅我,我将非常乐意详细说明。

    我建议你走一条漫长的道路:保持标记的版本不变,修复主干中的错误(或者为这些修复创建一个新分支),然后创建一个新标记,发送更新的电子邮件

    这更痛苦,但从长远来看问题更少。文档引用应该是自动计算的,因此传播所有更改会减少手动工作,也不容易出错

    如果发送一封新的更新电子邮件是一个问题,请确保在发布之前对发布的内容进行两次(或三次)检查,但要知道,在发布之前,bug有被检测不到的趋势


    另一种选择是将上述分支发布给您的beta测试人员,并仅在您相当确定剩下的错误最少后创建标记。

    坦白说,这听起来像是您必须创建一个新版本

    如果还没有到位,我建议自动化发布的创建——如果发布只需要30分钟(编译、测试、标记、更新发布日志、分发邮件),那么您所需的时间就会少得多

    除此之外,我还要提高贵公司的知名度,让他们知道你们需要分支机构

    可能的短期解决办法 我希望和恐惧的同时,我正确地理解了你——如果我错了,请纠正我

    对于“修复”仅允许在trunk上工作的旧版本,我想到的唯一解决方案是滥用trunk作为分支: 假设您在修订版56的mydoc.txt中发现了一个错误。与此同时,人们正在愉快地、反复地进行这项工作。经过多次修改,最后一次提交的结果是修订版89

  • 将mydoc.txt的工作副本“更新”到r56
  • 执行必要的更改
  • 提交更改
  • 再次将mydoc.txt更新为r89
  • 将mydoc.txt、r89提交到新版本中
  • 这里发生的事情是,从1-3开始,你实际上在一个分支上工作。第四条和第五条也是修复这种残暴行为所需要的

    SVN将为您提供执行1-5 IMHO的一些想法,理由很充分:此操作应在单独的分支上完成。
    至少在这种情况下,我会选择合适的分支,更不用说客户订购旧版本的更改。

    不要移动标签。曾经标签的真正价值是一个唯一的标识符-如果你移动它,你也指的是哪个版本的5.1.9?

    嗨,阿提拉,谢谢你的回复,谢谢你的时间。我应该更清楚可能是什么。这里有两个方面。代码2。发布文档都位于不同的位置,每个都有自己的主干,并且都在每个sprint结束时进行标记。1.代码在分支上工作,如果标记后的任何更改被视为不同的版本2。在发布电子邮件发送后,在发布文档中管理此问题的问题(如拼写错误、模块的错误链接和修订),不需要对代码进行任何更改,但需要更新文档。希望这是有意义的?@user2919782-我写的东西适用于这两个存储库。嗨,利奥,谢谢你的回复&感谢你的时间。我应该更清楚可能是什么。这里有两个方面。代码2。发布文档都位于不同的位置,每个都有自己的主干,并且都在每个sprint结束时进行标记。1.代码在分支上工作,如果标记后的任何更改被视为不同的版本2。在发布电子邮件发送后,在发布文档中管理此问题的问题(如拼写错误、模块的错误链接和修订),不需要对代码进行任何更改,但需要更新文档。希望这是可行的吗?我甚至会进一步考虑发布文档是发布的一部分:毕竟,它们严格地说只是代码的人类可读的表示。如果代码是正确的,那就更好了:您只需要为同一个源代码标签制作一个新版本。。。