2016-10-21 7 views
1

Я ищу некоторую команду, которая сообщает мне количество файлов, переданных по одному запросу на передачу. Я хотел бы узнать количество файлов в отдельном запросе запроса с самого начала.как перечислить весь запрос на тяну с измененным количеством файлов.

Вопрос, поясняемый в сценарии реальной жизни: скажем, для некоторых myProject кто-то поднял номер запроса на вытягивание 100 который имеет изменения в 15 файлах.

Я ищу команду, которая перечисляет весь запрос на тяну от 1 до 100 с количеством измененных файлов.

Пожалуйста, ответьте wrto для Windows 7.

т.е.

  • PR Количество 100 имеет изменения в 10 файлах
  • PR Количество 99 имеет изменения в 5 файлов
  • PR Номер 98 имеет изменения в 6 файлах
  • PR Номер 96 имеет в своем списке изменений в 22 файлах
  • -
  • -
  • -
  • -
  • PR Количество 50 имеет изменения в 7 файлов
  • .
  • .
  • .
  • .
  • PR Номер 10 имеет изменения в 2 файлах
  • .
  • .
  • .
  • .
  • PR Номер 1 имеет изменение в 23 файлах

ответ

4

Вы можете получить список удаленных запросов выдвижных так:

git ls-remote origin 'pull/*/head' 

(при условии, что origin этого имени вашего GitHub пульта дистанционного управления)

Для данной фиксации, вы можете получить список измененных файлов, как это:

git show --pretty=format:'' --name-only <ref> 

Вы можете поместить эту информацию вместе в скрипт:

git ls-remote origin 'pull/*/head' | awk '{print $2}' | 
while read ref; do 
    pr=$(echo $ref | cut -d/ -f3) 
    git fetch origin $ref > /dev/null 
    files_changed=$(git show --pretty=format:'' --name-only FETCH_HEAD|wc -l) 
    echo "PR number $pr has changes in $files_changed files" 
done 

который производит вывод на стандартный вывод, как:

PR number 1 has changes in 4 files 
PR number 10 has changes in 1 files 
PR number 11 has changes in 4 files 
PR number 12 has changes in 7 files 
PR number 13 has changes in 5 files 

(есть также выход на STDERR, которые вы можете позаботиться о с стандартное перенаправление ввода/вывода оболочки).

Это в значительной степени делает то, что вы хотите, с одним серьезным предостережением: запросы на перенос сохраняются как refs в удаленном хранилище GitHub даже после того, как они были закрыты, так что это всегда будет проходить по всем доступным запросам на тяну, прошлое и настоящее.

Вы можете обойти это, скопировав локальную информацию о самом высоком PR-номере, который вы ранее проверяли, а затем пропустите все PR, которые ниже.

+0

Спасибо за ответ. Я использую Windows 7, не уверен, как управлять этими вещами. или как запустить сценарий оболочки в Windows 7. – ankitd

+0

Должен ли я указывать 'origin' как stash path для' develop' branch? – ankitd

+0

Я не могу помочь вам с вопросом Windows. Я не уверен, что понимаю ваш второй вопрос; что вы подразумеваете под «косой дорожкой»? В этом ответе 'origin' - это имя git [remote] (https://help.github.com/articles/about-remote-repositories/) (то есть место, из которого вы клонировали репозиторий). Это не название ветки. – larsks

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

  • Нет связанных вопросов^_^