您如何移动文件?


219

我正在针对SourceForge SVN存储库使用TortoiseSVN。我想将文件从一个文件夹移动到另一个文件夹,以保持其修订历史记录。这可能吗?如果是这样,您该怎么做?

(我目前的策略是将文件复制到新文件夹中并检入,然后从当前文件夹中删除文件。)

Answers:


95

Subversion对移动文件具有本机支持。

svn move SOURCE DESTINATION

有关更多信息,请参见联机帮助(svn帮助移动)。


或者说另一种方式: svn move <current path/filename> <destination path/filename>

313

参阅5.14.2移动 TortoiseSVN帮助的文件和文件夹(或在帮助的索引中检出“移动”)。您可以通过右拖动来移动。它还提到您需要从父文件夹提交以使其成为“一个”修订。这适用于在工作副本中进行更改。

(请注意,下图中的SVN项仅在目标文件夹已添加到存储库中时显示。)

乌龟移动菜单

您也可以通过“回购浏览器”进行移动(第5.23 节“帮助的存储库浏览器 ”)。


当我高亮度显示所有文件时,会出现常规的Windows资源管理器菜单。它让我选择“移动”,但它不是SVN选项,因此我不确定是否发生了任何事情。当我检查是否有修改时,它说300个文件被删除,300个未版本化。这似乎无法正常工作。我害怕在不知道这是否应该起作用的情况下提交它
Joe Phillips

48
我刚刚意识到它可能不起作用,因为我尚未添加/提交新目录
Joe Phillips

我知道这是几年后的事-但乔的评论很重要。我也为此感到挣扎-我忽略了答案中的那条小纸条。目标文件夹必须处于SVN控制之下,否则将无法正常工作。幸运的是,SVN允许添加空文件夹。将文件夹置于SVN控制之下后,鼠标右键拖动将如上所述进行操作。否则,将显示通用Windows“在此处复制/在此处移动/取消”菜单(即,缺少SVN选项)。
ripvlan

太完美了 我遇到了一次移动1,500多个文件的问题。一次将它们移动到一个目录似乎可以解决此问题。
Michael Murphy

80

使用TortoiseSVN,我只是将文件移动到磁盘上。

当我提交更改时,我选择丢失的文件和新文件,然后从右键单击菜单中选择“ 修复移动 ”:

在此处输入图片说明

这意味着我可以让我的IDE移动文件并使用它的重构工具而不会丢失历史记录。


3
这是我现在首选的移动文件的方式。一则警告;两次提交之间一次只能执行<20个文件,否则查找彼此相关的文件可能非常耗时。
DarrenMB

@DarrenMB是正确的:我将要将一个Android项目从Eclipse迁移到Android Studio。所有文件都必须移动。这种方法不是我想在这里使用的方法。
Bondax

@Bondax是的,对于整个项目的迁移,最好从SVN内部进行迁移-这应该是您偶尔执行的操作。对于大多数开发人员在项目期间完成的大多数文件移动,我发现这是一种更好的方法。
基思

1
我也没有使用SVN 1.9.4乌龟的修复动作
马克·帕特森

@Mark Patterson:我看到了该选项,我也使用了1.9.4(TortoiseSVN 1.9.4,Build 27285和Subversion 1.9.4,-release)。我认为您的问题与版本无关...这是此功能的官方文档:tortoisesvn.net/repairmoves.html
Yosko

37

在TortoiseSVN中,右键单击某个地方,然后进入TortoiseSVN> Repo Browser,打开存储库。

您要做的就是将文件从一个文件夹拖放到所需的位置。它会要求您添加提交消息,并且默认将其设置为“远程移动文件/文件夹”


22

使用TortoiseSVN,我只需右键单击并将文件夹从一个位置拖到另一个位置。释放鼠标右键时,您可以选择“ SVN移动版本文件”。但是,我相信SVN不会在此处做任何“花哨的事情”,而只是删除先前位置中的文件并将其添加到新位置。


18

对于TortoiseSVN客户端:

  1. 选择您要移动的文件,
  2. 右键点击并将文件拖到您想要将其移动到的文件夹中,
  3. 释放文件夹上的拖放后,将弹出一个窗口。点击“在此将SVN移动版本化的项目”
  4. 单击上方后,将显示“提交”窗口消息框。输入消息并提交。

现在您完成了。


8

像平常一样通过操作系统上下文菜单剪切文件,然后不进行常规粘贴,而是右键单击以打开上下文菜单,然后选择TortoiseSVN -> Paste(确保从根目录提交,以在提交中包括旧文件和新文件)。


4

我认为在tortoisesvn的svn浏览器中,您可以将其从一个地方拖到另一个地方。



1

如果我没错,从1.5版开始,SVN可以跟踪移动的文件\文件夹。在TortoiseSVN中,用户可以通过拖放来移动文件。


1

也可能被乌龟称为“重命名”,但是svn move是svn客户端准系统中的命令。


最简单,最准确的答案就是那个!使用TortoiseSVN移动文件是通过右键单击>重命名来完成的。而已。
RoeeK

1

使用TortoiseSVN传输文件:

步骤:1 请选择您要移动的文件,右键单击并将文件拖到您要移动到的文件夹,按照以下说明弹出一个窗口

SVN选项

步骤2: 单击上面的后,提交文件,如下所述

SVN提交


0

如果要通过“资源库浏览器”移动文件夹,则右键单击没有“移动”选项;唯一的方法是拖放。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.