Может ли git log работать, если указать два реффи в неправильном порядке? - PullRequest
2 голосов
/ 06 декабря 2011

Я пишу автоматизированную систему для перечисления коммитов между двумя ссылками на коммиты.Скажем, у меня есть 3 коммита в хронологическом порядке, таких как:

  • A
  • B
  • C

, и я делаю git log --pretty=oneline A..CЯ получаю журнал, как и ожидалось.Однако, если я переверну аргументы, например git log --pretty=oneline C..A, я ничего не получу.Неужели git не может быть умным в отношении ссылок на коммиты?

Если нет, есть ли способ автоматически определить, должен ли ref C стоять после A в списке аргументов?

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Хотя симметричная разность (...) не одинакова, вы можете использовать ее в этом случае:

git log A...C
git log C...A
1 голос
/ 06 декабря 2011

Вы можете запустить

git merge-base A C
  • , если он вернет A, тогда вы должны вызвать git log A..C
  • , если он вернет C, тогда вы должны вызвать git log C..A* 1009.*
  • если он возвращает что-то еще, A и C находятся в разных ветвях, а merge-base возвращает их общего предка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...