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

Side by Side Diff: git-lkgr

Issue 2020173002: Delete git-lkgr - it's not used any more (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « no previous file | 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
(Empty)
1 #!/usr/bin/env bash
2
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7 branch_name=""
8 checkout_branch=no
9 create_branch=no
10 quiet=no
11 svn_lkgr=
12
13 while [ $# -gt 0 ]; do
14 case "$1" in
15 --checkout|--force-branch)
16 checkout_branch=yes
17 create_branch=yes
18 ;;
19 --closest)
20 use_closest=yes
21 ;;
22 --create)
23 create_branch=yes
24 ;;
25 -n|--name)
26 branch_name=$2
27 create_branch=yes
28 shift
29 ;;
30 -q|--quiet)
31 quiet=yes
32 ;;
33 -r|--revision)
34 svn_lkgr="$2"
35 shift
36 ;;
37 *)
38 echo "Unknown option: $1"
39 echo "Usage:"
40 echo " --checkout Create a branch and check it out."
41 echo " --create Create a branch."
42 echo " --closest Use closest git commit to the target svn revisi on."
43 echo " Otherwise --checkout may be required to creat e"
44 echo " a git commit for a specific svn revision."
45 echo " -n, --name <name> Specify the name of branch to create or reset."
46 echo " This will force the branch using 'git branch -f '."
47 echo " -q, --quiet Quiet."
48 echo " -r, --revision <r> Svn revision number use instead of server provi ded lkgr."
49 exit 1
50 ;;
51 esac
52 shift
53 done
54
55 if [ -z "$svn_lkgr" ]; then
56 svn_lkgr=`curl -s http://chromium-status.appspot.com/lkgr`
57 if [ $? != 0 -o -z "$svn_lkgr" ]; then
58 echo 'Could not get svn lkgr from chromium-status.appspot.com/lkgr'
59 exit 1
60 fi
61 fi
62
63 if [ "${svn_lkgr:0:1}" = "r" ]; then
64 svn_lkgr="${svn_lkgr:1}"
65 fi
66
67 # Run a trivial git-svn command to force it to update the revision cache
68 # (which causes spew that might otherwise confuse the next command).
69 git svn info > /dev/null
70 if [ $? != 0 ]; then
71 cat <<EOF 1>&2
72 Could not run a trivial git-svn command. You probably need to set up your
73 working directory for git-svn, by following these instructions:
74
75 http://code.google.com/p/chromium/wiki/UsingNewGit#Initial_checkout
76 EOF
77 exit 1
78 fi
79
80 git_lkgr=`git svn find-rev r${svn_lkgr}`
81 if [ $? != 0 -o -z "$git_lkgr" ]; then
82 cat <<EOF 1>&2
83 Could not map svn revision ${svn_lkgr} to a git commit.
84 You may need to 'git fetch' and try again.
85 EOF
86 exit 1
87 fi
88
89 set -o pipefail
90 closest_commit=`git rev-list --ancestry-path \
91 --grep='SVN changes up to revision [0-9]*' \
92 ${git_lkgr}..refs/remotes/origin/master | tail -1`
93 if [ $? != 0 -o -z "$closest_commit" ]; then
94 closest_commit=
95 closest_svn_commit=
96 else
97 closest_svn_commit=`git rev-list -n 1 ${closest_commit}^1`
98 if [ $? != 0 -o -z "$closest_svn_commit" ]; then
99 cat <<EOF 1>&2
100 I am thoroughly confused. Please file a bug report at http://new.crbug.com.
101 EOF
102 exit 1
103 fi
104 closest_svn=`git svn find-rev ${closest_svn_commit}`
105 fi
106
107 if [ "${use_closest}" = "yes" ]; then
108 svn_lkgr="${closest_svn}"
109 git_lkgr="${closest_svn_commit}"
110 fi
111
112 # Determine lkgr_branch:
113 if [ "${branch_name}" != "" ]; then
114 # Use the provided name for the branch.
115 lkgr_branch="${branch_name}"
116
117 # If the branch already exists, force the update to it.
118 git rev-parse --verify -q "${branch_name}" >/dev/null
119 if [ $? -eq 0 ]; then
120 old_branch_value=`git rev-parse "${branch_name}"`
121 echo "Will update branch ${lkgr_branch}, it previously was at ${old_branch_v alue}."
122 force_branch="--force"
123 fi
124 else
125 # Pick a name for the new branch. Use `git rev-parse` to make sure the branch
126 # doesn't already exist; if it does, iterate an integer suffix to uniquify it.
127 lkgr_branch="lkgr_r${svn_lkgr}"
128 digit=1
129 git rev-parse --verify -q "${lkgr_branch}" >/dev/null
130 while [ $? -eq 0 ]; do
131 lkgr_branch="lkgr_r${svn_lkgr}_${digit}"
132 digit=`expr $digit + 1`
133 git rev-parse --verify -q "${lkgr_branch}" >/dev/null
134 done
135 fi
136
137 if [ "${closest_svn_commit}" = "${git_lkgr}" ]; then
138 echo "${closest_commit}"
139 if [ "$create_branch" = "yes" ]; then
140 echo "Creating branch ${lkgr_branch}"
141 git branch ${force_branch} "${lkgr_branch}" "${closest_commit}" || exit 1
142 fi
143 if [ "$checkout_branch" = "yes" ]; then
144 git checkout "${lkgr_branch}"
145 fi
146 exit 0
147 elif [ "${quiet}" = "yes" ]; then
148 exit 1
149 elif [ "${checkout_branch}" = "no" ]; then
150 echo "There is no master commit which corresponds exactly to svn revision ${sv n_lkgr}."
151 echo "Call 'git lkgr --checkout' to create a branch with a commit to match ${s vn_lkgr}."
152 if [ -n "$closest_commit" ]; then
153 echo "The closest commit is r${closest_svn}, ${closest_commit}."
154 echo "Use the --closest option to use the closest instead of the target revi sion."
155 fi
156 exit 0
157 fi
158
159 current_head=`git branch | grep '^\*' | cut -c3-`
160 if [ "${current_head}" = "(no branch)" ]; then
161 current_head=`git rev-parse HEAD`
162 fi
163
164 git checkout --detach "${git_lkgr}" &&
165 python tools/deps2git/deps2git.py -d DEPS -o .DEPS.git -w .. &&
166 git add .DEPS.git &&
167 python tools/deps2git/deps2submodules.py .DEPS.git &&
168 git commit -m "SVN changes up to revision $svn_lkgr" &&
169 git branch ${force_branch} "${lkgr_branch}" HEAD
170
171 if [ $? != 0 ]; then
172 cat <<EOF
173
174 --------------------------------------------------------------------------------
175 Something went wrong! Restoring your previous state by checking out
176 $current_head
177
178 Please file a bug report at http://new.crbug.com.
179 --------------------------------------------------------------------------------
180
181 EOF
182 git checkout --force $current_head
183 exit 1
184 fi
185
186 git checkout "${lkgr_branch}"
187
188 cat <<EOF
189
190 --------------------------------------------------------------------------------
191 The new branch "$lkgr_branch" was branched from this commit:
192
193 $git_lkgr
194
195 ... which maps to the svn commit r${svn_lkgr}. The new branch
196 has one additional commit, to bring .DEPS.git, .gitmodules, and the
197 invisible git submodule files up to date with DEPS.
198
199 To create a working branch, do this:
200
201 \$ git branch --track my_new_branch $lkgr_branch
202
203 'git-cl upload' will do the right thing, i.e., it will cherry-pick all
204 your changes from my_new_branch, but *not* the .DEPS.git+.gitmodules+submodules
205 commit on $lkgr_branch.
206 --------------------------------------------------------------------------------
207
208 EOF
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698