如何在 VSS 和 SVN 之间同步

发布于 2024-07-06 04:28:15 字数 62 浏览 6 评论 0原文

我在工作中被迫使用 VSS,但使用 SVN 作为个人存储库。 VSS 和sync 之间同步的最佳方式是什么?

I am forced to use VSS at work, but use SVN for a personal repository. What is the best way to sync between VSS and sync?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

眼藏柔 2024-07-13 04:28:15

我过去所做的如下:

  1. 确保我的所有更改都提交到 svn://trunk
  2. 从 VSS 获取最新内容到我的工作副本中。
  3. 手动合并我的工作副本中的更改。
  4. 将合并的代码提交到 svn://trunk
  5. 执行 VSS diff 并签出任何有差异的文件(不覆盖文件)
  6. 签入这些文件。

What I have done in the past is as follows:

  1. Make sure all my changes are committed to svn://trunk
  2. Do a get latest from VSS into my working copy.
  3. Manually merge the changes in my working copy.
  4. Commit the merged code into the svn://trunk
  5. Do a VSS diff and checkout any files with differences (without overwriting files)
  6. Check in those files.
淡莣 2024-07-13 04:28:15

您还可以将其视为供应商提供的分支,如 redbean 书中定义的那样:
供应商分支

这样,基本流程将是:

  1. 有一个包含 VSS 最新代码的供应商分支“branches/VSS/current”
  2. 将当前版本标记为“branches/VSS/2008-09-15”
  3. 第二天,将新文件放入“current”
  4. 再次标记为“branches” /VSS/2008-09-16》
  5. 将两个标签之间的差异合并到主干中,解决冲突
  6. 根据需要删除旧标签

这实际上是我们从 VSS 迁移到 SVN 时使用的技术。
如果您关心从 SVN->VSS 的回程,则只需在主干和分支/VSS/当前之间进行比较,并将差异应用于 VSS。

You could also treat this as a vendor supplied branch as defined in the redbean book:
Vendor Branches

With this, the basic flow would be:

  1. Have a vendor branch "branches/VSS/current" containing the latest code from VSS
  2. Tag the current version as "branches/VSS/2008-09-15"
  3. Next day, get the new files into "current"
  4. Tag again into "branches/VSS/2008-09-16"
  5. Merge differences between the two tags into trunk, resolving conflicts
  6. Delete old tags as required

This is actually the technique we used when migrating from VSS to SVN.
If you care about the return trip from SVN->VSS, you'll just have to diff between trunk and branches/VSS/current and apply the diffs to VSS.

山田美奈子 2024-07-13 04:28:15

要摆脱手动合并步骤,我可以使用单独的 svn 分支 (svn://branches/VSS),如下所示:

  1. 创建 svn://branches/VSS 的工作副本
  2. 执行 VSS 获取此工作副本
  3. svn 的最新信息commit
  4. svn merge from svn://trunk
  5. svn commit
  6. 进行 VSS diff 并签出所有有差异的文件(不覆盖)
  7. 签入这些文件
  8. 将 svn://branches/VSS 重新集成到 svn://trunk

To get rid of the manual merge step, I could use a separate svn branch (svn://branches/VSS) as follows:

  1. Create a working copy of svn://branches/VSS
  2. Do a VSS Get Latest on this working copy
  3. svn commit
  4. svn merge from svn://trunk
  5. svn commit
  6. Do a VSS diff and checkout all files (without overwriting) with differences
  7. Check in those files
  8. reintegrate svn://branches/VSS into svn://trunk
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文