【问题标题】:Can I automatically overwrite repository files using svn_load_dirs.pl or similiar?我可以使用 svn_load_dirs.pl 或类似方法自动覆盖存储库文件吗?
【发布时间】:2010-01-12 10:04:49
【问题描述】:

我正在使用旧版 VSS 存储库,几个月前该存储库已转移到新的 SVN 存储库。同时,在我们开始使用 SVN 存储库之前,我们需要将 VSS 从那时到现在发生的所有更改都带过来。

我正在寻找不同的方法来做到这一点,似乎是这样的:

1.) svn_load_dirs.pl 然后手动合并文件? 2.) svn import 直接进入trunk并手动合并文件 3.) 签出我的 SVN 存储库的工作副本,复制更改的文件,这将覆盖我的工作副本中的一些文件,然后提交更改。

我的问题是,是否可以使用这些选项中的任何一个(或任何其他选项)来自动化事情,这样我就不必合并文件,而可以直接覆盖它们?我认为只有选项 3 可以做到这一点,但我们不胜感激。

【问题讨论】:

    标签: svn repository visual-sourcesafe


    【解决方案1】:

    自从您第一次导入 VSS 存储库中的代码后,您是否对它进行过任何处理?如果没有,那么我可能会删除整个 Subversion 存储库,然后将 VSS 中的代码重新导入新的 Subversion 存储库。这样,您将保留所有 VSS 历史记录,而无需编写一次性导入脚本来仅提取自上次导入以来的更改。

    为了更加确定,在导入 Subversion 之前,您可以将整个 VSS 存储库设为只读(这样没有人会意外修改它)。

    【讨论】:

    • 谢谢格雷格。自从我们导入到 SVN 以来,VSS 存储库中的代码一直是我们的主要源代码控制系统,因此 SVN 反映了 11 月的源代码控制,而 VSS 具有从那时起的所有更改,我想要的正是这些更改带过来。据我所知,完全删除和重新导入需要将近一周的时间才能运行,这对我们的情况并不理想。大约有 7000 个文件发生了变化,维护 VSS 历史记录并不是一个障碍。有什么想法吗?
    • 在这种情况下,使用svn_load_dirs.pl 可能是最不容易出错的方法。它将自动处理任何新添加的文件或旧的删除文件,以及对现有文件的更改。请注意,尽管svn_load_dirs.pl 是一个功能强大但略显古怪的命令,在实际操作之前进行试运行是值得的。我建议创建整个 Subversion 存储库的副本(只需一个完整的目录副本就可以了)并首先尝试使用副本进行更新。一旦你得到正确的选项,然后在你的真实存储库上做。
    • 我不需要手动合并 7000 个文件,因为我带来的 VSS 文件是已更改的文件吗?我们怎样才能解决这个问题?
    • 您说 Subversion 中的文件自上次从 VSS 导入以来没有更改。如果这是真的,那么就不需要手动或其他方式进行合并。本质上,只需用 VSS 中的内容覆盖 Subversion 中的内容。
    • 啊,我觉得我一直很笨。自从我最近整理了一个关于合并的教程以来,我一直对合并很着迷,因为它们显然不应该在这里成为问题!谢谢格雷格 - 会让你知道事情的进展!
    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 2019-09-12
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2021-11-20
    • 1970-01-01
    相关资源
    最近更新 更多