据我了解,如果没有refs
,则任何对象都会被垃圾回收。
防止收集要保留在数据库中的对象的最佳方法是什么?
一个用例是当在拉取请求中进行更改(也许根据代码审查)并且以前的提交变得分离时,它们将不合并在存储库中。但以便跟踪请求请求中的更改。
现在 CommitA2 将是更改历史记录中的内容,但是pull-request请求仍将具有指向旧的 CommitA 的链接。 几年后,我们希望能够看到请求请求的内容及其注释指的是什么。
如何防止GC收集提交?
给它一个标签是我想到的第一个解决方案。
答案 0 :(得分:1)
引用不必是分支或标签,您可以将本地引用保留到所需的任何内容。
这是一个简单的“让我成为拉动137的另一个快照参考”,
next=$((`git rev-list --no-walk --count --glob=refs/snap/pull/137/head-v*`+1))
git update-ref refs/snap/pull/137/head-v$next refs/pull/137/head