svn:ignore特性,因为他能够应用到特殊的项目区域,并却他作用于所有检出该项目的人。阅读第 5.27.1 节 “常规设置”获得更多信息。
svn:ignore特性,因为他能够应用到特殊的项目区域,并却他作用于所有检出该项目的人。阅读第 5.27.1 节 “常规设置”获得更多信息。
|
|
忽略已版本化的条目 |
|---|---|
|
已版本化的文件或目录不能够忽略,这是subversion的一个特性。如果你错误的版本化了一个文件,阅读第 B.8 节 “忽略已经版本控制的文件”介绍怎样“反版本化(unversion)”他 |
5.11.1. 忽略(Ignore)列表中的文件簇
Subversion 的忽略模式使用了文件簇,一种起初在Unix系统中使用meta字符作为通配符的技术。下面的字符有着特殊的意思:
匹配任何字符串,包括空串(没有字符)
匹配任何单字符
匹配任何单在方括号[]内的单字符,在方括号内,一对字符被“-”分隔,匹配任何词汇表(lexically)上在他们中间的字符。例如[AGm-p]匹配任何但个的A,G,m,n,o或者p。
Subversion执行这样的簇,那么定界符一直为/,而不是windows下的反斜线。
模式匹配是大小写敏感的,这在windows平台下会出问题。你可以要比较的字符硬性的强制忽略大小写。例如,忽略不记*.tmp的大小写。那么你可以使用像*.[Tt][Mm][Pp]这样的模式。
如果当前路径的目录名作为模式出现在匹配中,这个模式Fred.*将匹配Fred.c但不匹配subdir/Fred.c。这对于你添加了一个包含许多文件而又想忽略的目录来说是非常有意义的,因为这个目录名的优先级高于这些文件名。
你应该指定一个*CVS或者更好的CVS */CVS模式中的任意一个来忽略所有的CVS目录。执行第一个选择也将会排斥一些像ThisIsNotCVS这样的命令。而单独使用*/CVS又不能作用在一个紧跟着CVS的子目录上,而且单独的CVS 不能作用在子目录上。
如果你想要定义一个特殊的忽略规则。你可以在关于shell命令行语言的IEEE规范中找到Pattern Matching Notation
5.12. 删除、重命名和移动
不像CVS,Subversion允许重命名和移动文件和目录。因此在TortoiseSVN 的子菜单中有删除和重命名的菜单项。
图 5.24. 版本控制文件的菜单浏览

如果你通过TSVN删除了一个文件/目录,吗呢这个文件被移出你的工作副本并标记为删除。该文件的父目录会覆盖上一个"删除"标记。你随时可以通过在父目录调用 → 命令来恢复该文件。
如果你想在工作副本中移动文件,那么可以这样使用鼠标拖拽:
选择你要移动的文件或目录
拖拽(right-drag)他们到新的工作副本下,
松开鼠标右键
在弹出菜单选择 → 。
|
|
不要SVN Move Externals |
|---|---|
|
你不应该用TortoiseSVN的移动或重命名命令作用在一个已经用 |
如果一个 文件 是通过浏览器而不是使用TortoiseSVN 快捷菜单被删除,提交对话框也会显示这些文件并让你在提交前把他们从版本控制中移除。可是,如果你更新你的工作副本, Subversion 将会混淆这个丢失文件并替换他为版本库中的最新版本。因此,如果你需要删除一个版本控制下的文件,请始终使用 → 保证 Subversion不去猜测你到底想干什么。
如果一个 目录 是通过浏览器而不是使用TortoiseSVN 快捷菜单被删除,你的工作副本将回被损坏,并且你将不能提交。如果你更新你的工作副本,如果你更新你的工作副本, Subversion 将用版本库中的最新版本替换已丢失目录。接下来你就可以使用 → 这种正确的方法来删除它了。
|
|
提交父目录 |
|---|---|
|
既然重命名和移动都可以像添加之后又删除一样被执行,你必需提交该重命名/移动文件的父目录,所以重命名/移动的删除部分将出现在提交对话框中。如果你不提交重命名/移动的已删除部分,他将保留在仓库中并且你的同组人将更新该未移除的旧文件。例如,他们将有两个一老一新的副本。 你 必须在重命名目录后而在更改目录下的任何文件前进行提交,不然你的工作副本就回真的混淆。 |
|
|
找回已删除的文件或目录 |
|---|---|
|
如果你删除了洋文件或目录并已经提交该删除操作到版本库,那么 一个常规的 → 已不能再将其找回。但是该文件或目录并没有完全丢失。如果你知道该被删除文件或目录的版本(如果不能,使用日志对话框来查找出来),打开数据仓库的浏览器,并选择那个版本。然后选择你删除的文件或目录,右键并选择 → 作为目标执行复制操作,然后选择你的工作副本的路径。 |
5.12.1. 仅在单一实例中重命名文件
万一在你的版本库中有两个名字相同但大小拼写不同(例如:TEST.TXT和test.txt)的文件,你是不能更新或者检出该包含该文件的目录的。
如果是那样的话,你得决定在这个版本库里的哪一个文件是你想保留的,哪一个是要删除(或重命名)的