Состояние мерзавца через несколько репозиториев на Mac

Я искал решение этого некоторое время и не нашел вполне, в чем я нуждаюсь.

Я имею несколько Репозиториев Мерзавца в папке на моем Mac (OSX 10.6) и хотел бы сценарий или инструмент, который циклично выполнится через все репозитории и сообщит мне, нужно ли какому-либо из них commitлуг.

Это - моя структура

Sites
  /project1
  /project2
  /project3

Я хочу, чтобы инструмент сделал a git status в Sites/project1, Sites/project2, Sites/project3 и сообщают мне, есть ли у какого-либо из них изменения или новые файлы, которые должны подготавливаться или фиксироваться.

Самый близкий сценарий я нашел это, мог бы быть hackable, здесь, но даже что сценарий не работал бы, и я получаю ошибку:

"синтаксическая ошибка около неожиданного маркера 'делает"

который, возможно, был записан для *, отклоняют.

18
задан Michael 18 January 2016 в 21:30
поделиться

3 ответа

Есть программа на Python, uncommitted , которая звучит так, как будто она будет делать именно то, что вы хотите. Для него пока нет поддержки git (только hg и Subversion), но вы можете помочь автору реализовать поддержку git в его приложении или воспользоваться его идеями о том, как реализовать ваш материал (он документирует свой метод поиска на странице проекта. Я связался с).

12
ответ дан 30 November 2019 в 06:09
поделиться

Если вам просто нужен статус файлов в локальных репозиториях, что-то вроде этого: http: //gist.github .com / 389478 должен помочь. Вам нужно будет изменить шаблон в цикле for , чтобы выбрать любые каталоги, которые вы хотите.

4
ответ дан 30 November 2019 в 06:09
поделиться

Кажется, что на вопрос ответили нормально, но я хотел добавить свои два цента после того, как поработал над тем же.

Я подошел ближе к ответу jcordasc, используя простой сценарий bash. Я просто сделал одно немного другое. Просматривая справочную документацию для git, вы можете установить каталог git и рабочий каталог. Это устраняет необходимость «cd» для каталогов. Не то чтобы это действительно так уж важно ...

#!/bin/bash

for gitdir in `find ./ -name .git`; 
    do 
        workdir=${gitdir%/*}; 
        echo; 
        echo $workdir; 
        git --git-dir=$gitdir --work-tree=$workdir status; 
    done

Очевидно, он более продвинут / чище в том, как он показывает статус »...

24
ответ дан 30 November 2019 в 06:09
поделиться