태그 보관물: script

script

서브 디렉토리를 반복하고 각각에서 명령 실행 수 있었고 각 디렉토리를 반복하고 각

VCS (Git, Mercurial, SVN)를 기반으로 디렉토리로 정렬 된 저장소 세트가 있습니다. Subversion을 사용하면 svn update *부모 디렉토리에서 실행할 수 있었고 각 디렉토리를 반복하고 각 저장소를 예상대로 업데이트합니다. Git 또는 Mercurial의 경우에는 해당되지 않습니다.

내가 디렉토리를 통해 하나 정확히, 루프를 수행하기 위해 실행할 수있는 bash는 스크립트를 마련하려는 git pull또는 hg pull각. 나는 bash 스크립팅 경험이별로 없다.



답변

for dir in ~/projects/git/*; do (cd "$dir" && git pull); done

답변

재귀 적이어야하는 경우 :

find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \;

이것은 현재 디렉토리 아래의 모든 디렉토리로 내려 가고 .git 디렉토리가있는 하위 디렉토리에 대해 git pull을 수행합니다 (으로 제한 할 수 있음 -maxdepth).


답변

GNU Parallel http : // www.gnu.org/software/parallel/을 설치 한 경우 다음을 수행 할 수 있습니다.

cd ~/projects/git/; ls | parallel 'cd {} && git pull'

이것은 병렬로 실행되므로 일부 git 서버의 네트워크 연결이 느리면 속도가 빨라질 수 있습니다.

자세한 내용은 GNU Parallel 소개 비디오를 참조하십시오 .
http://www.youtube.com/watch?v=OpaiGYxkSuQ


답변

이 작동합니다

find . -maxdepth 1 -type d -name '.git' -exec sh -c 'cd "{}" && pwd && git pull' \;