如何在TortoiseSVN中将文件(或文件夹)从一个文件夹移动到另一个文件夹?

251

我希望能够在同一代码库中将文件或文件夹从一个位置移动到另一个位置,而无需使用“Repo Browser”进行操作,并且不会创建两个独立的添加/删除操作。使用“Repo Browser”可以正常工作,但是您的代码将处于错误状态,直到您之后检查了任何支持性更改(例如.csproj文件)。

更新:有人建议在命令行中使用“move”。是否有TortoiseSVN等效工具?

11个回答

452

使用Tortoise SVN移动文件或一组文件,可右键拖动目标文件到目的地,然后释放鼠标右键。弹出菜单将显示SVN move versioned files here选项。

请注意,目标文件夹必须已添加到版本库中,SVN move versioned files here才会显示。


32
我也需要这样做,结果完美。以前不知道有这个选项,非常感谢! - DavGarcia
4
谢谢!注意:接下来,在更改日志中会显示大量已删除和已添加的文件和目录,但是修订历史记录会跟随文件。 :) - Yoh Suzuki
1
如果我已经移动了文件,但是svn仍然认为它在另一个目录中,我该怎么办? - Shawn Mclean
4
在v1.7.6版本中,您还需要确保将文件移动到的目录已经添加到Subversion。 - icc97
虽然我更喜欢使用可移植的svn命令行工具来回答问题,而不是使用像Tortoise SVN这样的特定于操作系统的工具(尽管我看到OP明确要求了Tortoise SVN的答案,但我仍认为最好的答案应该包括两个选项),但“目标文件夹必须已经添加到存储库中”的评论帮助我解决了从Linux命令行客户端获取的错误,所以你得到了赞。 - Trebor Rude
显示剩余4条评论

59

21

在Windows资源管理器中,使用鼠标右键点击并拖动文件从其原位置移动到所需位置。当释放鼠标右键时,您将看到一个上下文菜单,其中包含选项,例如“SVN将有版本记录的文件移动到此处”。

http://tortoisesvn.net/most-forgotten-feature


6

5
如果您想移动文件并保持 csproj 文件最新,最简单的方法是使用 Visual Studio 插件,例如 AnkhSVN。这将自动提交移动操作(作为删除 + 添加和历史记录,因为这是 Subversion 的工作方式)以及 .csproj 中的更改。

4

从命令行中,您可以输入svn mv path1 path2。这将创建一个添加和删除操作,但在Subversion中,我不知道是否有其他方法。


3

1
使用Tortoise的RENAME命令,并输入相对路径(“文件夹/文件名.扩展名”)。

1
你需要使用右键拖动文件。当你将文件释放到新位置时,你会看到选项:

SVN移动版本化的文件到这里。

只需选择此选项即可完成!

0
使用 svn move 命令来移动文件/文件夹。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接