репо для всех, кроме некоторых проектов, но не для всех. есть ли команда репо для этого?

Я пытался погуглить это, но не нашел ничего, относящегося к тому, что я ищу. У меня есть несколько проектов в Android, которые я переделал на кончик. После этого я хотел бы переместить все оставшиеся проекты в конец.

Приведенная ниже команда извлечет все проекты из тега. репо forall -c "git checkout"

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

Ценю вашу помощь. Спасибо!


person spitfire88    schedule 23.02.2015    source источник
comment
Я не понимаю, зачем вам это нужно. В чем проблема с использованием repo sync?   -  person Magnus Bäck    schedule 24.02.2015


Ответы (2)


С помощью repo forall вы можете указать, к каким проектам должна применяться команда, но нет способа выразить «все проекты, кроме этих N проектов» (если только вы не можете указать проекты, к которым хотите применить команду, с помощью обычного выражение, но это маловероятно).

Что вы можете сделать, это создать список всех проектов, например. с

repo forall -c 'echo $REPO_PROJECT'

и удалите проекты, которые вы перебазировали и хотите исключить, например. перенаправляя вывод в grep -v или перенаправляя вывод в файл и редактируя этот файл вручную. Затем передайте этот список проектов repo forall. Два примера:

repo forall -c 'echo $REPO_PROJECT' > projects
vi projects
repo forall $(cat projects) -c 'git checkout'

repo forall $(repo forall -c 'echo $REPO_PROJECT' | grep -v name/of/project) -c 'git checkout'
person Magnus Bäck    schedule 24.02.2015

Используйте -i или -r. то есть repo forall -i bypass git fetch

-r, --regex           Execute the command only on projects matching regex or
                    wildcard expression
-i, --inverse-regex   Execute the command only on projects not matching
                    regex or wildcard expression
person Quanlong    schedule 27.07.2018
comment
Флаг -i недоступен в версиях до 1.12.34. - person GilCol; 28.01.2019