我想在同一个存储库中将文件或文件夹从一个位置移动到另一个位置,而无需使用 Repo Browser 来执行此操作,也无需创建两个独立的添加/删除操作。使用 Repo 浏览器可以正常工作,只是您的代码将处于损坏状态,直到您之后签入任何支持更改(例如 .csproj 文件)。
更新:人们建议从命令行“移动”。是否有 TortoiseSVN 等价物?
要使用 Tortoise SVN
移动一个文件或一组文件,请右键单击目标文件并将其拖动到目标位置,然后释放鼠标右键。弹出菜单将有一个 SVN move versioned files here
选项。
请注意,必须已将目标文件夹添加到存储库中才能显示 SVN move versioned files here
选项。
在 Windows 资源管理器中,使用鼠标右键单击文件并将其从其所在位置拖动到您想要的位置。释放鼠标右键后,您将看到一个上下文菜单,其中包含“SVN 将版本化文件移至此处”等选项。
http://tortoisesvn.net/most-forgotten-feature
如果您想移动文件并使 csproj 文件保持最新,最简单的方法是使用 Visual Studio 插件,例如 AnkhSVN。这将自动提交移动操作(作为带有历史记录的删除+添加,因为这就是 Subversion 的工作方式)和 .csproj 中的更改
从命令行,您可以键入 svn mv path1 path2
。这将创建一个添加和删除操作,但据我所知,在 Subversion 中并没有真正的解决方法。
Subversion 还没有一流的重命名操作。
这个问题有一个 6 年前的错误:http://subversion.tigris.org/issues/show_bug.cgi?id=898
它正在考虑用于 1.6,现在已添加合并跟踪(更高优先级)(在 1.5 中)。
使用 Tortoise 的 RENAME 命令,并输入一个相对路径(“folder/file.ext”)。
您必须使用鼠标右键拖动文件。将文件发布到新目的地的那一刻,您将看到以下选项:
SVN 将版本化文件移至此处。
只需选择此选项即可完成!
如前所述,您将创建添加和删除命令。您可以在工作副本或存储库 url 上使用 svn move。如果您使用工作副本,则不会提交更改 - 您需要在单独的操作中提交。
如果你 svn 移动一个 URL,你需要提供一个 --message,并且更改将立即反映在存储库中。
使用 svn move
命令移动文件/文件夹。