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

Unified Diff: git-lkgr

Issue 11962003: Update git-lkgr with --create and --name options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: merge TOT Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: git-lkgr
diff --git a/git-lkgr b/git-lkgr
index d52d2ef6f8c4bd7d8517b12b80c2ab1cedc7b2c0..a2680cb6134f5dbb31f35f7cd809efea0f8323a8 100755
--- a/git-lkgr
+++ b/git-lkgr
@@ -4,14 +4,25 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-force_branch=no
+branch_name=""
+checkout_branch=no
+create_branch=no
quiet=no
svn_lkgr=
while [ $# -gt 0 ]; do
case "$1" in
- --force-branch)
- force_branch=yes
+ --checkout|--force-branch)
+ checkout_branch=yes
+ create_branch=yes
+ ;;
+ --create)
+ create_branch=yes
+ ;;
+ -n|--name)
+ branch_name=$2
+ create_branch=yes
+ shift
;;
-q|--quiet)
quiet=yes
@@ -22,6 +33,14 @@ while [ $# -gt 0 ]; do
;;
*)
echo "Unknown option: $1"
+ echo "Usage:"
+ echo " --checkout Create a branch and check it out."
+ echo " --create Create a branch."
+ echo " -n, --name <name> Specify the name of branch to create or reset."
+ echo " This will force the branch using 'git branch -f '."
+ echo " -q, --quiet Quiet."
+ echo " -r, --revision <r> Svn revision number use instead of server provided lkgr."
+ exit 1
;;
esac
shift
@@ -56,7 +75,7 @@ git_lkgr=`git svn find-rev r${svn_lkgr}`
if [ $? != 0 -o -z "$git_lkgr" ]; then
cat <<EOF 1>&2
Could not map svn revision ${svn_lkgr} to a git commit.
-You may need to `git fetch` and try again.
+You may need to 'git fetch' and try again.
EOF
exit 1
fi
@@ -78,35 +97,50 @@ EOF
fi
fi
-# Pick a name for the new branch. Use `git rev-parse` to make sure the branch
-# doesn't already exist; if it does, iterate an integer suffix to uniquify it.
-lkgr_branch="git_lkgr_r${svn_lkgr}"
-digit=1
-git rev-parse --verify -q "${lkgr_branch}" >/dev/null
-while [ $? -eq 0 ]; do
- lkgr_branch="git_lkgr_r${svn_lkgr}_${digit}"
- digit=`expr $digit + 1`
+# Determine lkgr_branch:
+if [ "${branch_name}" != "" ]; then
+ # Use the provided name for the branch.
+ lkgr_branch="${branch_name}"
+
+ # If the branch already exists, force the update to it.
+ git rev-parse --verify -q "${branch_name}" >/dev/null
+ if [ $? -eq 0 ]; then
+ old_branch_value=`git rev-parse "${branch_name}"`
+ echo "Will update branch ${lkgr_branch}, it previously was at ${old_branch_value}."
+ force_branch="--force"
+ fi
+else
+ # Pick a name for the new branch. Use `git rev-parse` to make sure the branch
+ # doesn't already exist; if it does, iterate an integer suffix to uniquify it.
+ lkgr_branch="lkgr_r${svn_lkgr}"
+ digit=1
git rev-parse --verify -q "${lkgr_branch}" >/dev/null
-done
+ while [ $? -eq 0 ]; do
+ lkgr_branch="lkgr_r${svn_lkgr}_${digit}"
+ digit=`expr $digit + 1`
+ git rev-parse --verify -q "${lkgr_branch}" >/dev/null
+ done
+fi
if [ "${closest_svn_commit}" = "${git_lkgr}" ]; then
echo "${closest_commit}"
- if [ "$force_branch" = "yes" ]; then
- git checkout -b "${lkgr_branch}" "${closest_commit}"
+ if [ "$create_branch" = "yes" ]; then
+ echo "Creating branch ${lkgr_branch}"
+ git branch ${force_branch} "${lkgr_branch}" "${closest_commit}" || exit 1
+ fi
+ if [ "$checkout_branch" = "yes" ]; then
+ git checkout "${lkgr_branch}"
fi
exit 0
elif [ "${quiet}" = "yes" ]; then
exit 1
-elif [ "${force_branch}" = "no" ]; then
+elif [ "${checkout_branch}" = "no" ]; then
echo "There is no master commit which corresponds exactly to svn revision ${svn_lkgr}."
if [ -n "$closest_commit" ]; then
echo "The closest commit is ${closest_commit}."
fi
- read -n 1 -p "Would you like to create a new branch based on r${svn_lkgr}? (y/N) "
- echo
- if [ "x$REPLY" != "xy" -a "x$REPLY" != "xY" ]; then
- exit 0
- fi
+ echo "Call 'git lkgr --checkout' to create a branch with a commit to match ${svn_lkgr}."
+ exit 0
fi
current_head=`git branch | grep '^\*' | cut -c3-`
@@ -119,7 +153,7 @@ python tools/deps2git/deps2git.py -d DEPS -o .DEPS.git -w .. &&
git add .DEPS.git &&
python tools/deps2git/deps2submodules.py .DEPS.git &&
git commit -m "SVN changes up to revision $svn_lkgr" &&
-git checkout -b "${lkgr_branch}" HEAD
+git branch ${force_branch} "${lkgr_branch}" HEAD
if [ $? != 0 ]; then
cat <<EOF
@@ -136,6 +170,8 @@ EOF
exit 1
fi
+git checkout "${lkgr_branch}"
+
cat <<EOF
--------------------------------------------------------------------------------
« 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