【发布时间】:2018-10-08 23:33:11
【问题描述】:
据我了解,任何对象在没有refs 时都会被垃圾回收。
防止收集我们想要在数据库中持久化的对象的最佳方法是什么?
一个用例是在拉取请求中进行更改(可能根据代码审查)并且先前的提交变得分离,它们不会被合并到存储库中但它们应该始终可用于跟踪拉取请求中的更改。
示例:
- CommitA 修复了一个错误
- 为其创建拉取请求
- 有人审核并提出更改建议,链接到代码中的特定行
- 更改代码,修改 CommitA 并重新提交为 CommitA2
现在 CommitA2 将是更改历史记录中的内容,但拉取请求仍将有一个指向旧 CommitA 的链接。 在某些年份,我们希望能够看到 pull-request 是关于什么以及它的 cmets 指的是什么。
如何防止提交被 GC 收集?
给它一个标签是我想到的第一个解决方案。
【问题讨论】:
-
我很确定你想保持提交可达。给它,或者它的任何后代,一个参考。我用非共享分支名称乱扔我的本地存储库以保持提交。
-
是的,使用标签是最好的解决方案,因为如果它是关于归档提交,你不想使用可能被错误更新的分支引用。