| Index: git-crup
|
| diff --git a/git-crup b/git-crup
|
| index 8b96e7aaba8c0fcefab83ab64fe5f1ef0bd84e86..56b84c39984a196bd98bbc390fd5eb52b249522f 100755
|
| --- a/git-crup
|
| +++ b/git-crup
|
| @@ -3,169 +3,43 @@
|
| # 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.
|
| +TOPLEVEL=$(git rev-parse --show-toplevel)
|
| +TOPPERLEVEL=$(dirname $TOPLEVEL)
|
|
|
| -orig_args="$@"
|
| -ECHO=
|
| -pull=pull
|
| -pull_args=
|
| -hooks=yes
|
| -j=10
|
| -crup_runner="crup-runner.sh"
|
| +cat <<EOF
|
| +Sorry `whoami`, but the git-submodule flow has been deprecated in order to
|
| +simplify the plethora of SCM choices, and to pave the way towards a git-only
|
| +chromium development flow.
|
|
|
| -usage() {
|
| - cat <<EOF
|
| -Usage: git-crup [-n|--dry-run] [--fetch|--sync] [-j|--jobs [jobs]]
|
| - [--no-hooks] [<args to git-pull or git-fetch>]
|
| +Please consult https://code.google.com/p/chromium/wiki/UsingGitSubmodules#Convert_from_submodules_to_gclient
|
| +for instructions on how to convert your submodule checkout to gclient.
|
|
|
| - -n, --dry-run Don't do anything; just show what would have been done.
|
| - --fetch Run 'git fetch' on top-level sources, but don't merge.
|
| - --sync Don't do anything at all to the top-level sources.
|
| - -j, --jobs Run this many jobs in parallel.
|
| - --no-hooks Don't run hooks (e.g., to generate build files) after
|
| - updating.
|
| -EOF
|
| -}
|
| -
|
| -serial_update() {
|
| - ( cd "$1"
|
| - if test -n "$toplevel_cmd"; then
|
| - $ECHO $toplevel_cmd | sed "s/^/[$1] /g"
|
| - if [ $? -ne 0 ]; then
|
| - return $?
|
| - fi
|
| - fi
|
| - $ECHO git submodule --quiet sync
|
| - $ECHO git ls-files -s | grep ^160000 | awk '{print $4}' |
|
| - while read submod; do
|
| - $ECHO "$crup_runner" "$1/$submod"
|
| - done
|
| - )
|
| -}
|
| -
|
| -while test $# -ne 0; do
|
| - case "$1" in
|
| - -j[0-9]*)
|
| - j=$(echo "$1" | cut -c3-)
|
| - ;;
|
| - --jobs=[0-9]*)
|
| - j=$(echo "$1" | cut -c8-)
|
| - ;;
|
| - -j|--jobs)
|
| - case "$2" in
|
| - ''|-*)
|
| - j=0
|
| - ;;
|
| - *)
|
| - j="$2"
|
| - shift
|
| - ;;
|
| - esac
|
| - ;;
|
| - -n|--dry-run)
|
| - ECHO=echo
|
| - ;;
|
| - -h|--help)
|
| - usage
|
| - exit 0
|
| - ;;
|
| - --fetch)
|
| - pull=fetch
|
| - ;;
|
| - --sync)
|
| - pull=
|
| - ;;
|
| - --no-hooks|--nohooks)
|
| - hooks=no
|
| - ;;
|
| - *)
|
| - pull_args="$pull_args $1"
|
| - break
|
| - ;;
|
| - esac
|
| - shift
|
| -done
|
| -
|
| -# Auto-update depot_tools.
|
| -if [ -z "$GIT_CRUP_REINVOKE" ]; then
|
| - kernel_name="\$(uname -s)"
|
| - if [ "\${kernel_name:0:5}" = "MINGW" ]; then
|
| - cmd '/C update_depot_tools.bat'
|
| - else
|
| - update_depot_tools
|
| - fi
|
| - GIT_CRUP_REINVOKE=1 exec bash "$0" $orig_args
|
| -fi
|
| -
|
| -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
|
| -
|
| -export GIT_MERGE_AUTOEDIT=no
|
| -
|
| -if ( echo test | xargs --max-lines=1 true 2>/dev/null ); then
|
| - max_lines="--max-lines=1"
|
| -else
|
| - max_lines="-L 1"
|
| -fi
|
| -
|
| -if ( echo test | xargs -I bar true 2>/dev/null ); then
|
| - replace_arg="-I replace_arg"
|
| -else
|
| - replace_arg="-ireplace_arg"
|
| -fi
|
| +The simplest chromium and/or blink instructions follow for convenience.
|
|
|
| -if ( echo test test | xargs -P 2 true 2>/dev/null ); then
|
| - xargs_parallel=yes
|
| -else
|
| - if test "$j" != "1"; then
|
| - echo "Warning: parallel execution is not supported on this platform." 1>&2
|
| - fi
|
| - xargs_parallel=no
|
| -fi
|
| -
|
| -if test -n "$pull"; then
|
| - toplevel_cmd="git $pull $pull_args -q origin"
|
| -else
|
| - toplevel_cmd=
|
| -fi
|
| -
|
| -set -o pipefail
|
| -if test "$xargs_parallel" = "yes"; then
|
| - ( ls -d */.git | sed 's/\/\.git$//' |
|
| - xargs $max_lines $replace_arg -P "$j" \
|
| - "$crup_runner" replace_arg $ECHO $toplevel_cmd |
|
| - xargs $max_lines -P "$j" $ECHO "$crup_runner" )
|
| -else
|
| - ls -d */.git |
|
| - while read gitdir; do
|
| - serial_update "${gitdir%%/.git}"
|
| - done
|
| -fi
|
| -
|
| -status=$?
|
| -
|
| -if [ "$status" -ne 0 ]; then
|
| - cat 1>&2 <<EOF
|
| -Please check the preceding terminal output for error messages.
|
| -Run 'git submodule status' to see the current state of submodule checkouts.
|
| +1. Make sure the parent directory of this checkout is empty, besides this repo:
|
| +$ ls $TOPPERLEVEL
|
| EOF
|
| - exit $status
|
| +ls "$TOPPERLEVEL"
|
| +if [[ "$(ls "$TOPPERLEVEL")" != 'src' ]]
|
| +then
|
| + echo Please move this repo to its own directory before continuing!!!
|
| fi
|
| +echo
|
|
|
| -if [ "$hooks" = "yes" ]; then
|
| - $ECHO git runhooks
|
| - status=$?
|
| -fi
|
| +cat <<EOF
|
| +2. Please add a .gclient file to $TOPPERLEVEL/.gclient of the form:
|
| +# ======== .gclient begins =========
|
| +solutions = [{
|
| + 'name': '$(basename "$TOPLEVEL")',
|
| + 'url': 'https://chromium.googlesource.com/chromium/src.git',
|
| + 'managed': False,
|
| + 'deps_file': '.DEPS.git',
|
| + # Uncomment the following if you're doing blink development
|
| + # 'custom_vars': {'webkit_rev': ''},
|
| +}]
|
| +# ======== .gclient ends =========
|
| +
|
| +3. Run \`gclient sync\` to synchronize dependencies in your checkout instead of $(basename "$0")!
|
| +EOF
|
|
|
| -echo
|
| -exit $status
|
| +exit 1
|
|
|