2016-08-25 1 views
1

Как я могу получить ветку, в которой было создано фиксация с использованием LibGit2Sharp? Предполагается, что у меня есть две ветви (development, feature1), которые имеют несколько коммитов и объединены через некоторое время. Когда я извлекаю все фиксации и ветви, которые они принадлежат, каждая фиксация связана с двумя ветвями. Таким образом, невозможно определить, какая из исходных ветвей источника.Как получить ветку, в которой было создано фиксация с использованием LibGit2Sharp?

Спасибо!

ответ

1

Git не хранит такую ​​информацию, что означает, что она не может быть восстановлена ​​независимо от того, какой метод доступа вы используете.

Branch имена в значительной степени эфемерное и могут быть созданы и уничтожены, когда вы хотите, с одной оговоркой: коммита, который не достижим на любое имя подлежит сборки мусора. Но если фиксация C достижима из названий филиалов B1, B2, B3, то фиксация C содержится во всех трех ветвях. Удалить имя B2 и совершить C теперь находится в пределах филиалов B1 и B3.

(Имя, которое защищает коммит не обязательно должно быть филиала имени. Имя тега, или stash ссылки или имя удаленного отслеживания ветви, или любое другим имя в любом месте в refs пространства имен, суффиксах для защиты фиксации. [Это не полный список, но охватывает все нормальные надежные случаи.] Это правило применяется рекурсивно ко всем другим защищенным коммитам: если commit C доступен из защищенного фиксации P, затем C также защищен, и C в свою очередь защищает все фиксации, достижимые от C.)

+0

Спасибо за это объяснение. – codelab

1

Нет, это невозможно ... Разделения Git - это указатели, а название ветки не записано в метаданных совершения. После перемещения вы не можете понять прошлое (с git или libgit2sharp).

Решение, возможно, должно анализировать ветви reflog, если строки, касающиеся фиксации, все еще там, не слишком стары и удалены из файлов журналов.

Но я не понимаю такой необходимости. Как правило, это настоящее, которое полезно. В ветвях ведьм есть фиксация.

Возможно, неправильная стратегия управления версиями? Хранение фиксации Шоу при выпуске - лучшая идея ...

Смежные вопросы