gpt4 book ai didi

SVN:在 Repo 浏览器中重命名,同时保持工作副本同步

转载 作者:行者123 更新时间:2023-12-04 14:49:06 25 4
gpt4 key购买 nike

我在 repo 中重命名了一个分支,并且不小心继续使用相同的工作副本(在重命名之前从该分支 check out )。当我后来尝试提交时,我注意到工作副本仍然针对旧路径。我想将更改提交到 repo 中的新路径,同时保留历史记录等...

SVN 有一个优雅的方法来解决这个问题吗?

我读过有关命令 Switch 和 Relocate 的信息,但我不确定它们中的任何一个完全适合我的问题(所描述的场景不同),而且我一直对在 SVN 中尝试命令感到有些害怕......有没有人有使用这些命令的经验?

我想我可以解决这个问题,例如,将重命名的项目 checkout 到另一个工作副本,然后用更改覆盖它(除了 SVN 元数据)。我还可以编写一些脚本来查找所有出现的旧路径并将它们粗暴地更改为新路径,但我认为必须为此使用某种 SVN 命令。

谢谢!

最佳答案

如果存储库 URL 更改,则需要 搬家你的工作副本。 开关命令用于更改您的工作副本指向的分支。概念本身非常清楚。

但是你说的是项目我想这就是您面临的问题:您不会在 Subversion 文档中找到任何对项目的引用,因为这不是 Subversion 的概念。

在 Subversion 中实现项目有两种基本方法:

  • 为每个项目创建一个存储库:
  • https://example.com/svn/foo/trunk
  • https://example.com/svn/bar/trunk
  • 在同一个存储库中为每个项目创建一个分支:
  • https://example.com/svn/projects/foo/trunk
  • https://example.com/svn/projects/bar/trunk

  • 因此,当您说“重命名项目”时,您的意思是“重命名存储库”(#1)或“重命名分支”(#2),解决方案是:
  • svn relocate将您的工作副本再次与存储库链接
  • 要么svn update将更改带到您的工作副本(如果更改位于工作副本目录树中)或 svn switch更改您的工作副本指向的分支(如果您有效地删除了当前分支)。

  • 更新 : 到目前为止,我的建议是从头开始。重命名您当前的工作副本,检查一个新副本,然后使用 WinMerge 或 Kdiff3(或 TortoiseMerge)等常规文件比较工具重新应用挂起的更改。如果日志中不明显,尝试找出您所做的确切更改没有任何好处。

    对于 future ......您不需要背诵完整的 Subversion 书籍,但您应该了解基本概念,尤其是。当它们被证明是您日常工作中的一个问题时。

    关于SVN:在 Repo 浏览器中重命名,同时保持工作副本同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267605/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com