Subversion 允许重命名和移动文件和目录。因此在 TortoiseSVN 的子菜单中有删除和更名的菜单项。
使用
→ 从 Subversion 中删除文件或文件夹。When you “modified” icon overlay. Up until you commit the change, you can get the file back using → on the parent folder.
→ a file or folder, it is removed from your working copy immediately as well as being marked for deletion in the repository on next commit. The item's parent folder shows a如果你想从版本库删除项目,但是在本地作为非版本控制的文件/文件夹保留,可以使用 Shift 键。
→ 。为了看到扩展右键菜单,当你在文件管理器列表窗格(右窗格)中的项目上点击右键时,必须同时按下If an item is deleted via the explorer instead of using the TortoiseSVN context menu, the commit dialog shows those items as missing and lets you remove them from version control too before the commit. However, if you update your working copy, Subversion will spot the missing item and replace it with the latest version from the repository. If you need to delete a version-controlled file, always use
→ so that Subversion doesn't have to guess what you really want to do.如果你删除了一个文件或目录并已经提交该删除操作到版本库,那么 一个常规的
→ 已不能再将其找回。但是该文件或目录并没有完全丢失。如果你知道该被删除文件或目录的版本(如果不能,使用日志对话框来查找出来),打开数据仓库的浏览器,并选择那个版本。然后选择你删除的文件或目录,右键并选择 → 作为目标执行复制操作,然后选择你的工作副本的路径。如果你仅想重命名文件或文件夹,使用
→ 为此条目输入新的名称就可以了。如果你想在工作副本中移动文件,比如移动到一个不同的子文件夹下,那么使用鼠标右键拖拽:
选择你要移动的文件或目录
用鼠标右键拖拽它们到工作副本的新位置
松开鼠标右键
在弹出菜单选择
→ 。既然重命名和移动都是像添加之后跟随着删除一样被执行,你必需提交该重命名/移动文件的父文件夹,所以重命名/移动的删除部分将出现在提交对话框中。如果你不提交重命名/移动的已删除部分,他将保留在仓库中并且你的同组人更新工作副本时,该文件也不会被删除。例如,他们将有两个一老一新的副本。
你必须在重命名文件夹后立刻进行提交,在提交前不要更改文件夹下的任何文件,不然你的工作副本就会真的混淆。
另外一种复制或移动文件的方法是通过Windows 的复制/移动命令. 首先选择你需要复制的文件, 在资源管理器中右键点击并选择
→ . 然后进入目标文件夹,右键点击并选择 → . 对于移动文件,选择 → 而不是 → .你也可以使用版本库浏览器在版本库中移动条目。阅读 “版本库浏览器”一节 以获得更多信息。
你不应该用 TortoiseSVN 的移动或改名命令作用在用 svn:externals
创建的目录上。因为这个动作可能会导致外部元素(item)从它的父版本库中删除,这可能会使其它人烦恼。如果你需要移动外部目录,你应该使用普通的外壳移动,然后调整源和目的之父目录的 svn:externals
属性。
万一在你的版本库中有两个名字相同但大小拼写不同(例如: TEST.TXT
和 test.txt
)的文件,你是不能在 Windows 客户端更新或者检出该包含该文件的目录的。当 Subversion 支持大小写敏感的文件名时,Windows 不支持。
它偶尔在两个人在独立的工作副本提交时发生,文件名称相同,只有大小写不同。它也会在具有大小写敏感的文件系统的系统中提交文件时发生,例如 Linux。
如果是那样的话,你得决定在这个版本库里的哪一个文件是你想保留的,哪一个是要删除(或重命名)的
有时候你的IDE会因为执行反射操作,改名文件,当然它不能告诉Subversion。如果你尝试提交修改,Subversion会发现丢失了老文件,新增了未版本控制的新文件。你可以简单的增加新文件,但是你将丢失历史记录,因为Subversion不知道这些文件的关系。
更好的方法是通知Subversion这实际上是改名,你可以在提交和检查修改对话框中做此操作。简单选择老文件(丢失的)和新文件(未版本控制的),使用 → 设置这两个文件是改名关系。