2012-05-31 2 views
7

Я пытаюсь подсчитать количество коммитов с момента создания тега.Count совершает транзакции с тега

Я попытался использовать git rev-list, но он, похоже, возвращает те же результаты, независимо от того, что я пробую. Это то, что я пробовал:

$ git rev-list 1.7Start^..HEAD | wc -l 
13902 
$ git rev-list HEAD | wc -l 
13902 

Попытка подсчитать, сколько залогов с момента создания тега 1.7Start. В настоящее время я нахожусь на master, используя HEAD, но используя git rev-list master | wc -l дает мне то же самое.

Там не было 13000+ совершает с тех пор 1,7

Если git rev-list master показать мне каждый совершает в мастера и, следовательно, дают большее число, чем 1.7Start^..master, которые просто должны дать мне разницу?

+0

Это говорит о том, что между «1.7Start ^» и «HEAD» нет общей истории. Чтобы проверить, если это так, посмотрите, что производит 'git merge-base 1.7Start^HEAD' - моя догадка - это ошибка, указывающая на отсутствие общего обмена. –

+0

нет ошибки и нет возвращаемого значения –

+0

Правильно, это указывает на то, что нет общей истории, что удивительно. Как был создан этот тег? –

ответ

4

В том, что вы получаете результаты свидетельствуют о том, что нет никакой истории общего между 1.7Start^ и HEAD, так 1.7Start и HEAD должны иметь разные корень совершает. (Синтаксис a..b при передаче в git rev-list просто означает «каждая фиксацию в b, которая не находится в a.)

В вышеприведенных замечаниях, спрашивающие указал, что эта возникла потому, что хранилище был перенесен из Subversion и master полностью в отличие от импортной отрасли, что указывает на 1.7Start.

3

Git имеет GIT преподобным список --count, который делает это быстрее, туалет-л.

Существует также мерзавец преподобным список --use-bitmap- index --count в более поздних версиях git, который является оптимизацией --count.

rev-list нуждается в фиксации, например, чтобы найти все коммиты в вашем репо для вашей текущей ветки.

git rev-list --count HEAD 
0

Если вы заботитесь только о последнем теге, как это обычно бывает, git describe покажет вам , что последний тег и сколько фиксаций были сделаны в текущей ветви, так как ему. Например, в приведенном ниже примере последний тег был равен 0.1.9, а в текущей ветке было сделано 67 коммитов.

$ git describe --tags 

0.1.9-67-gff9fd30 

Для проверки вы можете увидеть полный список коммитов, используя приведенную ниже команду. Если вы выведете свой вывод на wc -l, тот же счет должен быть возвращен. Обратите внимание, что !! является предыдущей командой в Bash.

git log --oneline $(git describe --tags --abbrev=0).. 

$ !! | wc -l 

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