2016-10-24 14 views
1

Может кто-то может поделиться фрагментом кода, который показывает, как я могу выделить коммит только на одной ветви с использованием JGit API.Нужно найти коммиты по определенному филиалу

Если я использую RevWalk, я получаю все дерево, включая дочерние ветви, которые были объединены в указанную ветку.

Как я могу получить ТОЛЬКО коммиты на указанной ветке без сбора родительских коммитов ветвей, которые могли быть объединены в указанную ветку?

Что также может помочь выяснить, в какой ветке находится определенная фиксация.


Добавление еще некоторую информацию:

enter image description here

Как я могу получить все коммиты вдоль развития отрасли? Так на основе вышеприведенного изображения, мне нужно ПОР:

2a34

b468

785c

но НЕ:

731a

cbdb

Спасибо!

+0

Я думаю, что вы просите не в Git Какие команды Git вы использовали бы для этого? –

+0

Не знаю никакой команды в API фарфора. Мне было интересно, есть ли API jGit, который мог бы помочь. Как насчет второго вопроса: Как узнать, в какой ветке находится определенная фиксация? Есть ли API для этого? –

+0

Привет, @PankajTandon. Вам удалось решить эту проблему? – kolobok

ответ

0

Для того, чтобы пройти историю репозитория Git, начиная с определенной отраслью, вы можете использовать LogCommand, как описано здесь: JGit: How to get all commits of a branch? (Without changes to the working directory ...)

addFilter() метод данной команды может быть использован для установки RevFilter исключить определенные фиксации ,

+0

Спасибо Rudiger. Однако команда nameRev не возвращает имя ветви. Вместо этого он возвращает предыдущий ref с добавленным в конце. Так, например, если ветвь называется develop, карта, возвращаемая nameRev, возвращает ~ 1 на * second * commit на этой ветке (первая команда возвращает «развить» правильно). Это, вроде, ставит кибош на подходе, который я принимал, чтобы найти все фиксации вдоль ветки. Я прикрепляю снимок ниже, чтобы я мог сделать вопрос более ясным. Любые идеи? Спасибо! –