Как предотвратить сборку мусора для объекта Git? - PullRequest
0 голосов
/ 08 октября 2018

Из того, что я понял, любой объект получает мусор, когда у него нет refs.Каков наилучший способ предотвратить сбор объектов, которые мы хотим сохранить в базе данных?

Вариант использования - это когда в запросе на извлечение вносятся изменения (возможно, в соответствии с обзором кода), и предыдущие коммиты отключаются.они не будут объединены в репозитории , но они всегда должны быть доступны, чтобы можно было отслеживать изменения в запросе на извлечение.

Пример:

  • CommitA исправляет ошибку
  • Создайте для него запрос на извлечение
  • Кто-то просматривает и предлагает внести изменения, ссылаясь на конкретную строку в коде
  • Изменить код, изменить CommitA и повторно зафиксировать как CommitA2

Сейчас CommitA2 - это то, что будет в измененииистория, но запрос на получение по-прежнему будет содержать ссылку, указывающую на старый CommitA .Через несколько лет мы хотим увидеть, что представлял собой запрос на удаление и на что ссылались его комментарии.

Как можно предотвратить сбор коммитов GC?

Присвойте ему тег - первое решение, которое приходит мне в голову.

1 Ответ

0 голосов
/ 08 октября 2018

Ссылки не обязательно должны быть ветвями или тегами, вы можете хранить локальные ссылки в любом месте.

Вот простое «сделайте мне еще один снимок ссылки для pull 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...