【发布时间】:2012-03-25 19:00:35
【问题描述】:
假设我有两个分支;主人和孩子。我对孩子进行了一些更改并将它们合并回主控。在子分支上进行销毁时,子分支中所做更改的历史记录会丢失还是合并回主分支?我必须指定/keephistory 参数吗?
【问题讨论】:
标签: tfs
假设我有两个分支;主人和孩子。我对孩子进行了一些更改并将它们合并回主控。在子分支上进行销毁时,子分支中所做更改的历史记录会丢失还是合并回主分支?我必须指定/keephistory 参数吗?
【问题讨论】:
标签: tfs
无论您是否删除原始来源。 TFS 中的任何内容都不会被真正删除,只是置于“已删除状态”。
查看此链接
Will deleting a project in TFS remove the files, or will the history be preserved?
【讨论】:
任何被“删除”的分支或项目都会保留在历史记录中。任何被破坏的分支或项目都将从数据库中删除,因此不在历史记录中。删除时没有 /keephistory 选项,因为所有删除都会保留历史记录。我没有亲自使用 /keephistory 和 destroy 命令,所以我不能给你推荐。只需阅读它的文档here 我猜想常规删除和使用 /keephistory 的破坏之间的区别在于破坏无法逆转。
在您描述的情况下,我不建议删除分支,因为这是您关于谁改变了生活的历史。当您合并时,只有一个签入包含所有合并的更改,并且它与合并中的签入相关联。
在 TFS 2010 之前,很难了解合并的历史,但如果您花时间弄清楚的话,这是可能的。在 TFS 2010 中,通过分支查看更改的流程要容易得多。
如果我知道您想要销毁的原因,我可以更好地回答,但这里有几件事需要考虑:如果您正在销毁以帮助您减少磁盘空间 1) 分支不会花费太多,因为它们只会保持差异不是整个副本 2)如果您正在销毁以节省磁盘空间并且您使用 /keephistory 我猜它不会减少磁盘空间的使用。如果你是因为 OMG 代码是垃圾而破坏,并且没有人应该有机会遭受它的恐怖,那么你可能想多了。
【讨论】:
我实际上在 TFS 2013 中测试了 tf destroy /keephistory 选项。/keephistory 选项实际上只保留了查看历史记录和评论,但删除了文件的所有版本。如果您尝试比较版本,您将收到文件版本被破坏的错误。因此,如果您想保存 cmets 和谁更改了代码的历史,但真的不关心确切的更改是什么,您可以使用 /keephistory 来节省磁盘空间。如果您确实想查看和比较旧版本,则应将其保持为已删除状态,因为使用 /keephistory 选项进行销毁不会保留内容。如果代码无用或签入错误名称或其他内容,请在不使用 /keephistory 的情况下执行 tf destroy 以清除所有内容,包括查看历史记录和评论。
【讨论】: