gpt4 book ai didi

svn - SVN 中的 'delete' 和 'unversion' 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 02:22:22 30 4
gpt4 key购买 nike

我有一个在 SVN 中受版本控制的文件(我使用 tortoiseSVN)。这个文件已经过时了,因此我不再希望它在我的 repo 的工作副本中。但是,保留该文件的历史记录可能会很好。

我基本上想“删除”这个文件,使其不再被跟踪或“版本化”。我可以选择“删除”此文件或“取消版本”此文件。

“删除”和“取消版本”有什么区别。每个命令的用例是什么?

最佳答案

从 svn 中删除文件,删除它的修订历史。显然删除历史是可能的[SO]: Delete file with all history from svn repository .

为了让事情更简单,让我们考虑以下类比。来自 svn 的 PoV,就像:

  • a(来源)文件 由组成:
  • 项目序列:行(代码)

  • 同样的方法:
  • 文件夹 由组成:
  • 一系列项目:它的 child :
  • (子)文件夹
  • 文件

  • 假设我们有一个 svn 文件:
  • 在修订版 M 中,修改了该文件中的一行代码(让我们将其作为最后一行以更好地说明示例)
  • 在修订版 N (> M) 中,该行被删除

  • 情况如下:
  • 对于大于 N 的文件修订,该行将不存在
  • 对于 M 和 N 之间的文件修订,该行将具有其最后的内容
  • 对于低于 M 的文件修订版,该行将具有其旧内容
  • ....

  • 如果删除文件( 从其父文件夹的角度 ),也会发生同样的事情。

    现在,回到你的问题:在我的 TortoiseSVN (v1.9.5) 上:
  • 我有一个删除选项
  • 我没有 Unversion 选项,但是
  • 我确实有一个删除(保留本地)选项 - 这是(一个更好的名字)Unversion。在命令行方面,这相当于svn delete --keep-local

  • 在对文件执行其中一项操作后,该文件将不再被 svn 跟踪,但与删除(文件也从工作副本/磁盘中删除)相反,Unversion 会将其保留在磁盘上,就像用户会在那里手动复制它(随后的 svn st 将“看到”文件不受版本控制:第一列将是一个问号( ? ),如 [SVNBook]: svn status 所述)。

    [TortoiseSVN]: Deleting, Moving and Renaming包含很少的官方信息。

    就个人而言,我认为除非修复错误,否则保留本地文件没有用,例如删除不属于存储库(特定于用户)的先前提交的项目,例如:
  • Eclipse: .classpath, .project
  • PyCharm:.idea
  • VStudio:.vcxproj.user

  • 引自 [SVNBook]: svn delete :

    Use the --keep-local option to override the default svn delete behavior of also removing the target file that was scheduled for versioned deletion. This is helpful when you realize that you've accidentally committed the addition of a file that you need to keep around in your working copy, but which shouldn't have been added to version control.

    关于svn - SVN 中的 'delete' 和 'unversion' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005600/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com