【问题标题】:SVN - How to make files revision in consistence in /trunk and /tag folder?SVN - 如何使 /trunk 和 /tag 文件夹中的文件修订一致?
【发布时间】:2011-03-30 06:26:09
【问题描述】:

我有一个 .NET 项目,并使用 VisualSVN 服务器和 tortoiseSVN 客户端。 有时当我完成一项任务,并确保它足够稳定以供生产使用时,我会执行以下操作:

1.打开repo-browser,删除/trunk中的所有文件。 2.从我的本地项目导入最新的副本到/trunk。 3.切换到 /tag ,创建一个带有日期时间的文件夹名称(例如2011.03.30),然后再次从我的本地项目中导入最新的副本。

但是,/tag 中的文件,修订版比 /trunk 更新。 但是两个设置文件是一样的。

所以我的问题是,如何使它们保持一致?

还是我的步骤错了?

据我所知 /trunk 是当前版本,甚至是稳定版或正在开发中。 /tag 用于稳定构建。

【问题讨论】:

    标签: svn


    【解决方案1】:

    你的步骤都错了。您应该分支主干,然后从分支中签出一个新工作区。进行编辑并提交到分支。稍后您将分支合并回主干。

    【讨论】:

    • 那么,这是否意味着“/branch”是工作副本,“/trunk”用于合并来自“/branch”的最新版本,而“/tag”用于稳定构建?
    • @SilverNight:Keith 并没有完全响应您的方案 - 他正在谈论分支和重新合并。
    • @silver 通常。 @Doc我回答了第二个问题。 ;-)
    【解决方案2】:

    除了@Keith 写的内容之外,您还需要了解 SVN 中的修订号:它们有点像对整个存储库所做的更改的计数器。有像 CVS 这样的版本控制系统在文件级别上运行,并且可以在分支之间同步文件的版本号,但是在 SVN 中,您创建一个 copy 以创建一个分支。这是对存储库的修改,因此您会获得新的修订。

    如果您不删除并重新创建而是使用普通的 SVN 副本,那么您根本不需要知道任何修订号,因为您可以在相应文件的 SVN 日志中看到它们“分支”的时间和位置.

    【讨论】:

      【解决方案3】:

      在发布生产版本时不要删除 /trunk(为什么你认为这是必要的,你会丢失每个文件的历史记录?)。将您当前的工作提交到 repo(主干),创建一个新的标签文件夹(日期时间,如果你喜欢),并使用 svn copy 将最后一个主干修订复制到标签文件夹。例如,这是我正在使用的标记脚本中的基本行:

      svn copy %SVNREPOSITORY%/ProjectFolder/trunk %SVNREPOSITORY%/ProjectFolder/tags/%NEWTAG% -m"Version %NEWTAG%"
      

      如果您想确保 /trunk 不包含任何不需要的文件,请在 repo 中不再需要时删除它们,而不是稍后。

      【讨论】:

      • 谢谢@Keith、@DarkDust、@Doc Brown。现在,我明白了很多。如果我可以将多个答案标记为答案,我将全部完成。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2013-05-23
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多