| 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
|
|
|
| --------------------------------------------------------------------------------
|
|
|