【问题标题】:How can I update an existing SVN repository from an exported copy?如何从导出的副本更新现有的 SVN 存储库?
【发布时间】:2010-05-20 10:07:14
【问题描述】:

一天下午,我导出了我的项目存储库,并通过我的 USB 密钥将我的工作带回家。

我已对导出的项目添加了许多更改,现在,在返回工作场所后,我想使用我现在拥有的项目更新存储库。

更复杂的是,我在主干和分支中都对项目进行了更新 - 我想更新存储库以反映所有这些更改。

我是 SVN 新手,一直依赖 TortoiseSVN,但现在有点迷茫。

最好删除存储库并从我现在拥有的副本/分支中重新创建它吗?

【问题讨论】:

    标签: svn tortoisesvn


    【解决方案1】:

    免责声明:我不完全确定这是否是最佳解决方案以及是否没有缺点。我什么都看不到,因为重要的.svn 目录没有被触及,但我不是 SVN Guru。我建议您进行备份(好吧,无论如何都应该备份),看看其他回答者怎么说。

    如果您使用的是 Windows,我认为应该可以执行以下操作:

    • 签出一份工作副本(例如到/myproject
    • 从 U 盘中取出 /myproject 文件夹并将其复制并粘贴到本地 /myproject 结帐
    • 1234563
    • 您现在应该能够在 Tortoise 中进行“检查修改”。更改的文件应显示为已更改;应该能够添加新的文件和目录。此方法不会覆盖的唯一内容是您在导出中删除的文件和目录。

    您必须为我认为的每个分支单独执行此操作 - 或者至少我会这样做只是为了确保。但这可能是一个小不便。

    【讨论】:

    • +1 表示不会拾取已删除的文件/目录。否则,这种方法很好。 (虽然 obv OP 应该首先“签出”而不是“导出”)。
    • 不要忘记检查来自棒的 repo 新的未版本化文件!
    • 谢谢,我试了一下你的想法,发现最好删除 repo 并从我的最新项目中重新创建它。
    • @user 如果更改历史不重要,那肯定是最简单的方法。
    【解决方案2】:

    简短的回答:你不能。您不应该“导出”您的存储库,而应该“检查它”。

    也许最简单的方法(取决于更改的大小)是检查另一个目录中的存储库,然后手动复制您的更改。然后提交所有更改。

    【讨论】:

    • 我不同意。当有明确的选择时,手指摇摆不是建设性的,也不是说“你不能”。问题是当事情没有按应有的方式完成时该怎么办。
    【解决方案3】:

    不确定什么是最好的,但我和你的情况相似,删除和重新创建对我来说是最好的出路。

    【讨论】:

    • 删除并重新创建什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多