Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Side by Side Diff: git-crup

Issue 12279006: Add --sync option, to only sync submodules. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « git-crsync ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # A convenience script to largely replicate the behavior of `gclient sync` in a 6 # A convenience script to largely replicate the behavior of `gclient sync` in a
7 # submodule-based checkout. Fetches latest commits for top-level solutions; 7 # submodule-based checkout. Fetches latest commits for top-level solutions;
8 # updates submodules; and runs post-sync hooks. 8 # updates submodules; and runs post-sync hooks.
9 9
10 # Auto-update depot_tools 10 # Auto-update depot_tools
(...skipping 27 matching lines...) Expand all
38 fi 38 fi
39 39
40 if ( echo test | xargs -I bar true 2>/dev/null ); then 40 if ( echo test | xargs -I bar true 2>/dev/null ); then
41 replace_arg="-I replace_arg" 41 replace_arg="-I replace_arg"
42 else 42 else
43 replace_arg="-ireplace_arg" 43 replace_arg="-ireplace_arg"
44 fi 44 fi
45 45
46 usage() { 46 usage() {
47 cat <<EOF 47 cat <<EOF
48 Usage: git-crup [-n|--dry-run] [--fetch] [-j|--jobs [jobs]] 48 Usage: git-crup [-n|--dry-run] [--fetch|--sync] [-j|--jobs [jobs]]
49 [--no-hooks] [<args to git-pull or git-fetch>] 49 [--no-hooks] [<args to git-pull or git-fetch>]
50 EOF 50 EOF
51 } 51 }
52 52
53 serial_update() { 53 serial_update() {
54 ( cd "$1" 54 ( cd "$1"
55 $GIT_EXE $pull $pull_args -q origin | sed "s/^/[$1] /g" 55 if test -n "$toplevel_cmd"; then
56 if [ $? -ne 0 ]; then 56 $toplevel_cmd | sed "s/^/[$1] /g"
57 return $? 57 if [ $? -ne 0 ]; then
58 return $?
59 fi
58 fi 60 fi
59 $GIT_EXE submodule --quiet sync 61 $GIT_EXE submodule --quiet sync
60 $GIT_EXE ls-files -s | grep ^160000 | awk '{print $4}' | 62 $GIT_EXE ls-files -s | grep ^160000 | awk '{print $4}' |
61 while read submod; do 63 while read submod; do
62 "$crup_runner" "$1/$submod" 64 "$crup_runner" "$1/$submod"
63 done 65 done
64 ) 66 )
65 } 67 }
66 68
67 while test $# -ne 0; do 69 while test $# -ne 0; do
(...skipping 18 matching lines...) Expand all
86 -n|--dry-run) 88 -n|--dry-run)
87 ECHO=echo 89 ECHO=echo
88 ;; 90 ;;
89 -h|--help) 91 -h|--help)
90 usage 92 usage
91 exit 0 93 exit 0
92 ;; 94 ;;
93 --fetch) 95 --fetch)
94 pull=fetch 96 pull=fetch
95 ;; 97 ;;
98 --sync)
99 pull=
100 ;;
96 --no-hooks|--nohooks) 101 --no-hooks|--nohooks)
97 hooks=no 102 hooks=no
98 ;; 103 ;;
99 *) 104 *)
100 pull_args="$pull_args $1" 105 pull_args="$pull_args $1"
101 break 106 break
102 ;; 107 ;;
103 esac 108 esac
104 shift 109 shift
105 done 110 done
(...skipping 11 matching lines...) Expand all
117 122
118 if ( echo test test | xargs -P 2 true 2>/dev/null ); then 123 if ( echo test test | xargs -P 2 true 2>/dev/null ); then
119 xargs_parallel=yes 124 xargs_parallel=yes
120 else 125 else
121 if test "$j" != "1"; then 126 if test "$j" != "1"; then
122 echo "Warning: parallel execution is not supported on this platform." 1>&2 127 echo "Warning: parallel execution is not supported on this platform." 1>&2
123 fi 128 fi
124 xargs_parallel=no 129 xargs_parallel=no
125 fi 130 fi
126 131
132 if test -n "$pull"; then
133 toplevel_cmd="$GIT_EXE $pull $pull_args -q origin"
134 else
135 toplevel_cmd=
136 fi
137
127 set -o pipefail 138 set -o pipefail
128 if test "$xargs_parallel" = "yes"; then 139 if test "$xargs_parallel" = "yes"; then
129 ( ls -d */.git | sed 's/\/\.git$//' | 140 ( ls -d */.git | sed 's/\/\.git$//' |
130 xargs $max_lines $replace_arg -P "$j" \ 141 xargs $max_lines $replace_arg -P "$j" \
131 "$crup_runner" replace_arg $GIT_EXE $pull $pull_args -q origin | 142 "$crup_runner" replace_arg $toplevel_cmd |
132 xargs $max_lines -P "$j" "$crup_runner" ) 143 xargs $max_lines -P "$j" "$crup_runner" )
133 else 144 else
134 ls -d */.git | 145 ls -d */.git |
135 while read gitdir; do 146 while read gitdir; do
136 serial_update "${gitdir%%/.git}" 147 serial_update "${gitdir%%/.git}"
137 done 148 done
138 fi 149 fi
139 150
140 status=$? 151 status=$?
141 152
142 if [ "$status" -ne 0 ]; then 153 if [ "$status" -ne 0 ]; then
143 cat 1>&2 <<EOF 154 cat 1>&2 <<EOF
144 Please check the preceding terminal output for error messages. 155 Please check the preceding terminal output for error messages.
145 Run 'git submodule status' to see the current state of submodule checkouts. 156 Run 'git submodule status' to see the current state of submodule checkouts.
146 EOF 157 EOF
147 exit $status 158 exit $status
148 fi 159 fi
149 160
150 if [ "$hooks" = "yes" ]; then 161 if [ "$hooks" = "yes" ]; then
151 "$runhooks" 162 "$runhooks"
152 status=$? 163 status=$?
153 fi 164 fi
154 165
155 echo 166 echo
156 exit $status 167 exit $status
OLDNEW
« no previous file with comments | « git-crsync ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698