不像CVS,Subversion允许重命名和移动文件和目录。因此在TortoiseSVN 的子菜单中有删除和重命名的菜单项。
Use
→ to remove files or folders from subversion.When you deleted” icon overlay. Up until you commit the change, you can get the file back using → on the parent folder.
→ a file, it is removed from your working copy immediately as well as being marked for deletion in the repository on next commit. The file's parent folder shows a “When you
→ a folder, it remains in your working copy, but the overlay changes to indicate that it is marked for deletion. Up until you commit the change, you can get the folder back using → on the folder itself. This difference in behaviour between files and folders is a part of Subversion, not TortoiseSVN.If you want to delete an item from the repository, but keep it locally as an unversioned file/folder, use Shift key while right clicking on the item in the explorer list pane (right pane) in order to see this in the extended context menu.
→ . You have to hold the如果一个 文件 是通过浏览器而不是使用TortoiseSVN 快捷菜单被删除,提交对话框也会显示这些文件并让你在提交前把他们从版本控制中移除。可是,如果你更新你的工作副本, Subversion 将会混淆这个丢失文件并替换他为版本库中的最新版本。因此,如果你需要删除一个版本控制下的文件,请始终使用 → 保证 Subversion不去猜测你到底想干什么。
如果一个 目录 是通过浏览器而不是使用TortoiseSVN 快捷菜单被删除,你的工作副本将回被损坏,并且你将不能提交。如果你更新你的工作副本,如果你更新你的工作副本, Subversion 将用版本库中的最新版本替换已丢失目录。接下来你就可以使用 → 这种正确的方法来删除它了。
如果你删除了洋文件或目录并已经提交该删除操作到版本库,那么 一个常规的
→ 已不能再将其找回。但是该文件或目录并没有完全丢失。如果你知道该被删除文件或目录的版本(如果不能,使用日志对话框来查找出来),打开数据仓库的浏览器,并选择那个版本。然后选择你删除的文件或目录,右键并选择 → 作为目标执行复制操作,然后选择你的工作副本的路径。If you want to do a simple in-place rename of a file or folder, use
→ Enter the new name for the item and you're done.If you want to move files around inside your working copy, perhaps to a different sub-folder, use the right-mouse drag-and-drop handler:
选择你要移动的文件或目录
拖拽(right-drag)他们到新的工作副本下,
松开鼠标右键
在弹出菜单选择
→ 。Since renames and moves are done as a delete followed by an add you must commit the parent folder of the renamed/moved file so that the deleted part of the rename/move will show up in the commit dialog. If you don't commit the removed part of the rename/move, it will stay behind in the repository and when your co-workers update, the old file will not be removed. i.e. they will have both the old and the new copies.
你 必须在重命名目录后而在更改目录下的任何文件前进行提交,不然你的工作副本就回真的混淆。
You can also use the repository browser to move items around. Read “版本库浏览器”一节 to find out more.
你不应该用 TortoiseSVN 的移动或改名命令作用在用 svn:externals
创建的目录上。因为这个动作可能会导致外部元素(item)从它的父版本库中删除,这可能会使其它人烦恼。如果你需要移动外部目录,你应该使用普通的外壳移动,然后调整源和目的之父目录的 svn:externals
属性。
在 Windows 中,使用 Subversion 修改文件名称的大小写需要小技巧,因为在改名期间,两个文件名称需要同时存在。因为 Windows 的文件系统是大小写不敏感的,所以使用平常的改名命令是不能工作的。
Fortunately there are (at least) two possible methods to rename a file without losing its log history. It is important to rename it within subversion. Just renaming in the explorer will corrupt your working copy!
解决方案 A)(推荐)
提交你工作副本中的改变到版本库
使用版本库的浏览器立即重命名该文件的大写(小写)为小写(大写)
更新你的工作副本
解决方案 B)
使用TortoiseSVN子菜单中的重命名命令将UPPERcase重命名为UPPERcase_ 格式
提交该更改
将UPPERcase_重命名为upperCASE格式
提交该更改
If the repository already contains two files with the same name but differing only in case (e.g. TEST.TXT
and test.txt
), you will not be able to update or checkout the parent directory on a Windows client. Whilst Subversion supports case-sensitive filenames, Windows does not.
它偶尔在两个人在独立的工作副本提交时发生,文件名称相同,只有大小写不同。它也会在具有大小写敏感的文件系统的系统中提交文件时发生,例如 Linux。
如果是那样的话,你得决定在这个版本库里的哪一个文件是你想保留的,哪一个是要删除(或重命名)的
这有一个有用的服务器端脚本在http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/将会防止检入拼写(大小写)冲突文件。
有时候你的IDE会因为执行反射操作,改名文件,当然它不能告诉Subversion。如果你尝试提交修改,Subversion会发现丢失了老文件,新增了未版本控制的新文件。你可以简单的增加新文件,但是你将丢失历史记录,因为Subversion不知道这些文件的关系。
更好的方法是通知Subversion这实际上是改名,你可以在提交和检查修改对话框中做此操作。简单选择老文件(丢失的)和新文件(未版本控制的),使用 → 设置这两个文件是改名关系。