我有一个在SVN中受到版本控制的文件(我使用tortoiseSVN)。这个文件已经过时了,因此我不再希望它在我的仓库的工作副本中。但是,保留该文件的历史记录可能会很好。
我基本上想要删除'此文件不再跟踪或版本化#39;我可以选择删除'这个文件,或者' unversion'这个文件。
'删除'有什么区别?和' unversion'。每个命令的用例是什么?
答案 0 :(得分:4)
从 svn 中删除文件,不会删除其修订历史记录。
显然可以删除历史记录[SO]: Delete file with all history from svn repository。
为了方便起见,让我们考虑以下类比。
从 svn 的 PoV ,就像:
同样的方式:
假设我们有一个 svn 文件:
情况如下:
如果删除文件(从其父文件夹视角),也会发生同样的事情。
现在,回到你的问题:在我的 TortoiseSVN (v1.9.5):
svn delete --keep-local
对文件执行其中一个操作后, svn 将不再跟踪该文件,而是删除(文件也从中删除) 工作副本 /磁盘), Unversion 会将其保留在磁盘上,就像用户手动将其复制到那里一样(后续svn st
将“看到”该文件不受版本控制:第一列将是问号(?),如[SVNBook]: svn status
所述。
[TortoiseSVN]: Deleting, Moving and Renaming包含非常少的官方信息。
就个人而言,除了修正错误之外,我认为没有使用保留本地文件,例如删除不属于存储库(特定于用户)的以前提交的项目,如:
使用--keep-local选项覆盖默认的svn删除行为,同时删除计划进行版本化删除的目标文件。当您意识到您不小心提交了需要在工作副本中保留的文件时,这很有用,但不应将其添加到版本控制中。