Subversion 允许对文件和文件夹进行重命名和移动。因此,在 TortoiseSVN 子菜单中提供了删除和重命名的菜单项。
使用
→ 从 Subversion 中删除文件或文件夹。当您 “已修改” 图标叠加。在您提交更改之前,您可以使用 → 在父文件夹上获取该文件。
→ 文件或文件夹时,它会立即从您的工作副本中删除,并在下次提交时被标记为在存储库中删除。该项目的父文件夹将显示一个如果您想从存储库中删除一个项目,但将其保留在本地作为未版本控制的文件/文件夹,请使用 Shift 键才能在扩展上下文菜单中看到它。
→ 。您必须在资源管理器列表窗格(右窗格)中右键单击该项目时按住如果一个项目是通过资源管理器而不是使用 TortoiseSVN 上下文菜单删除的,提交对话框会将这些项目显示为丢失,并允许您在提交之前从版本控制中删除它们。但是,如果您更新您的工作副本,Subversion 将发现丢失的项目并用存储库中的最新版本替换它。如果您需要删除一个版本控制的文件,请始终使用
→ ,这样 Subversion 就不会猜测您真正想做什么。如果您已删除一个文件或文件夹,并且已将该删除操作提交到存储库,那么普通的
→ 就无法再将其恢复。但该文件或文件夹并没有丢失。如果您知道该文件或文件夹被删除的版本(如果您不知道,请使用日志对话框查找),请打开存储库浏览器并切换到该版本。然后选择您删除的文件或文件夹,右键单击并选择 → ,作为该复制操作的目标,选择您工作副本的路径。如果您想对文件或文件夹进行简单的就地重命名,请使用
→ 输入项目的新的名称,就完成了。如果您想将文件移动到工作副本中的其他位置,例如移动到不同的子文件夹,请使用鼠标右键拖放处理程序
选择您要移动的文件或目录
右键拖动 它们到工作副本中的新位置
释放鼠标右键
在弹出菜单中选择
→
由于重命名和移动是通过删除然后添加来完成的,因此您必须提交重命名/移动文件的父文件夹,以便删除部分的重命名/移动将显示在提交对话框中。如果您不提交重命名/移动的删除部分,它将保留在存储库中,当您的同事更新时,旧文件将不会被删除。也就是说,他们将拥有 两者 旧副本和新副本。
您 必须 在更改文件夹中的任何文件之前提交文件夹重命名,否则您的工作副本可能会变得非常混乱。
移动或复制文件的另一种方法是使用 Windows 复制/剪切命令。选择您要复制的文件,右键单击并从资源管理器上下文菜单中选择
→ 。然后浏览到目标文件夹,右键单击并选择 → 。对于移动文件,选择 → 而不是 → 。您也可以使用存储库浏览器来移动项目。阅读 名为“存储库浏览器”的部分 以了解更多信息。
您不应该使用 TortoiseSVN 的 移动 或 重命名 命令来操作使用 svn:externals
创建的文件夹。此操作会导致外部项目从其父仓库中删除,可能会影响许多其他人。如果您需要移动外部文件夹,您应该使用普通的 shell 移动命令,然后调整源和目标父文件夹的 svn:externals
属性。
如果仓库中已经存在两个名称相同但大小写不同的文件(例如 TEST.TXT
和 test.txt
),您将无法在 Windows 客户端上更新或检出父目录。虽然 Subversion 支持区分大小写文件名,但 Windows 不支持。
这种情况有时发生在两个人从不同的工作副本提交了恰好具有相同名称但大小写不同的文件时。它也可能发生在从具有区分大小写文件系统的系统(如 Linux)提交文件时。
在这种情况下,您必须决定要保留哪个文件,并从仓库中删除(或重命名)另一个文件。
在以下地址提供了一个服务器钩子脚本: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ ,它可以防止导致大小写冲突的提交。
有时,您友好的 IDE 会在重构过程中为您重命名文件,当然它不会告诉 Subversion。如果您尝试提交更改,Subversion 会将旧文件名视为丢失,而将新文件名视为未版本控制的文件。您可以只检出新文件名以将其添加,但您将丢失历史跟踪,因为 Subversion 不知道这些文件是相关的。
更好的方法是通知 Subversion 此更改实际上是一个重命名,您可以在 提交 和 检查修改 对话框中执行此操作。只需选择旧名称(丢失)和新名称(未版本控制),然后使用 → 将这两个文件配对为重命名。
通常情况下,你应该在 Subversion 中设置忽略列表,以便忽略所有生成的文件。但是,如果你想清除所有被忽略的项目以生成干净的构建,该怎么办?通常情况下,你可以在你的 Makefile 中设置这些内容,但如果你正在调试 Makefile 或更改构建系统,那么拥有一个清除所有内容的方法将非常有用。
TortoiseSVN 提供了这样一个选项,使用 Shift 键,才能在扩展右键菜单中看到此选项。这将弹出一个对话框,其中列出了工作副本中所有未版本控制的文件。然后你可以选择或取消选择要删除的项目。
→ 。你需要在资源管理器列表窗格(右侧窗格)中右键单击文件夹时按住当这些项目被删除时,会使用回收站,所以如果你误操作删除了应该被版本控制的文件,你仍然可以恢复它。