| Index: git-crup
|
| ===================================================================
|
| --- git-crup (revision 0)
|
| +++ git-crup (revision 0)
|
| @@ -0,0 +1,80 @@
|
| +#!/bin/sh
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# A convenience script to largely replicate the behavior of `gclient sync` in a
|
| +# submodule-based checkout. Fetches latest commits for top-level solutions;
|
| +# updates submodules; and runs post-sync hooks.
|
| +
|
| +j=10
|
| +ECHO=
|
| +pull=pull
|
| +pull_args=
|
| +hooks=yes
|
| +
|
| +usage() {
|
| + cat <<EOF 1>&2
|
| +Usage: git-cr-sync [-n|--dry-run] [--fetch] [-j|--jobs [jobs]]
|
| + [--no-hooks] [<args to git-pull or git-fetch>]
|
| +EOF
|
| +}
|
| +
|
| +parallel_update() {
|
| + ( echo Entering "$1" &&
|
| + cd "$1" &&
|
| + $ECHO git $pull $pull_args origin &&
|
| + git ls-files -s | grep ^160000 | awk '{print $4}' |
|
| + xargs -L 1 -P "$j" $ECHO git submodule update --init )
|
| +}
|
| +
|
| +while test $# -ne 0; do
|
| + case "$1" in
|
| + -j|--jobs)
|
| + if test -n "$2"; then
|
| + j="$2"
|
| + shift
|
| + else
|
| + j=0
|
| + fi
|
| + ;;
|
| + -n|--dry-run)
|
| + ECHO=echo
|
| + ;;
|
| + -h|--help)
|
| + usage
|
| + exit 0
|
| + ;;
|
| + --fetch)
|
| + pull=fetch
|
| + ;;
|
| + --no-hooks)
|
| + hooks=no
|
| + ;;
|
| + *)
|
| + pull_args="$pull_args $1"
|
| + break
|
| + ;;
|
| + esac
|
| + shift
|
| +done
|
| +
|
| +while test "$PWD" != "/"; do
|
| + if test -f "$PWD/src/.gitmodules"; then
|
| + break
|
| + fi
|
| + cd ..
|
| +done
|
| +if test "$PWD" = "/"; then
|
| + echo "Could not find the root of your checkout; aborting." 1>&2
|
| + exit 1
|
| +fi
|
| +
|
| +ls -d */.git |
|
| +while read gitdir; do
|
| + parallel_update `dirname $gitdir`
|
| +done
|
| +
|
| +test "$hooks" = "yes" && test -x src/.git/hooks/deps2hooks.sh &&
|
| +src/.git/hooks/deps2hooks.sh
|
| +
|
|
|
| Property changes on: git-crup
|
| ___________________________________________________________________
|
| Added: svn:executable
|
| + *
|
|
|
|
|