ChatGPT解决这个技术问题 Extra ChatGPT

你如何移动文件?

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

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


g
goric

查看 TortoiseSVN 帮助的 5.14.2. Moving files and folders 部分(或查看帮助索引中的“移动”)。你通过右拖来移动。它还提到您需要从父文件夹提交以使其成为“一个”修订版。这适用于在工作副本中进行更改。

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

https://i.stack.imgur.com/3YzW2.png

您也可以通过回购浏览器(帮助的 5.23. The Repository Browser 部分)进行移动。


当我突出显示所有文件时,右键拖动,常规的 Windows 资源管理器菜单出现了。它让我选择“移动”,但它不是 SVN 选项,所以我不确定是否发生过任何事情。当我检查是否有修改时,它说有 300 个文件被删除,300 个没有版本控制。这似乎无法正常工作。我害怕在不知道这是否应该工作的情况下提交它
我刚刚意识到它可能不起作用,因为我还没有添加/提交新目录
我知道这是几年后的事了——但乔的评论很重要。我也为此苦苦挣扎-我忽略了答案中的那个小注释。目标文件夹必须在 SVN 控制下,否则这将不起作用。幸好 SVN 允许添加空文件夹。将文件夹置于 SVN 控制下后,鼠标右键拖动将按上述操作。否则会出现通用的 Windows“复制此处/移至此处/取消”菜单(即缺少 SVN 选项)。
这是完美的。我在一次移动超过 1,500 个文件时遇到了一些问题。不过,一次移动一个目录似乎可以解决这个问题。
C
Commodore Jaeger

Subversion 原生支持移动文件。

svn move SOURCE DESTINATION

有关详细信息,请参阅联机帮助 (svn help move)。


或者换一种说法:svn move <current path/filename> <destination path/filename>
K
Keith

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

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

https://i.stack.imgur.com/cGWVO.png

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


这是我现在移动文件的首选方式。一个警告;在两次提交之间一次只执行 < 20 个文件,否则查找彼此相关的文件可能非常耗时。
@DarrenMB 是对的:我即将将一个 Android 项目从 Eclipse 迁移到 Android Studio。所有文件都必须移动。这种方法不是我想在这里使用的方法。
@Bondax 是的,对于整个项目的迁移,您最好从 SVN 内部进行迁移 - 这应该是您偶尔会做的事情。对于大多数开发人员在项目期间完成的大多数文件移动,我发现这是更好的方法。
我也没有修复移动,使用乌龟 SVN 1.9.4
@Mark Patterson:我看到了这个选项,我也在 1.9.4(TortoiseSVN 1.9.4,Build 27285 和 Subversion 1.9.4,-release)。我认为您的问题与版本无关...这是此功能的官方文档:tortoisesvn.net/repairmoves.html
R
RedWolves

在 TortoiseSVN 中右键单击某处并转到 TortoiseSVN > Repo Browser 打开存储库。

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


佚名

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


b
bahrep

对于 TortoiseSVN 客户端:

选择您要移动的文件,右键单击并将文件拖到您要移动的文件夹中,释放文件夹上的拖放后会弹出一个窗口。点击“SVN Move versioned item(s) here”,点击上面的提交窗口后会出现消息框。输入消息并提交。

现在你完成了。


B
BornToCode

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


J
John Boker

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


R
Ryan Lanciaux

由于您使用的是 Tortoise,您可能需要查看 LosTechies 上的此链接。它应该几乎正是您正在寻找的。

http://www.lostechies.com/blogs/joshua_lockwood/archive/2007/09/12/subversion-tip-of-the-day-moving-files.aspx


由于该链接可能会中断,因此您可能需要将相关信息复制到您的答案中。
......那个链接已经坏了。要点和案例。
a
aku

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


D
DevelopingChris

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


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

使用 TortoiseSVN 传输文件:

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

https://i.stack.imgur.com/tf2tB.png

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

https://i.stack.imgur.com/VIMUC.png


D
Danijel

如果您通过存储库浏览器移动文件夹,则右键单击时没有移动选项;唯一的方法是拖放。