From e8c918dfd9a6ad84319db57268de6bb413123573 Mon Sep 17 00:00:00 2001 From: "chase@chromium.org" Date: Tue, 20 Oct 2009 19:47:59 +0000 Subject: [PATCH] Make svn password prompt available during setup. Allow the user to interact with the svn password prompt if needed. Verify the svn server is reachable before proceeding. Clean extra UI issues up. Readability fixes. BUG=none TEST=prompted for a svn password if ~/.subversion/auth is empty, bad svn server causes early timeout Review URL: http://codereview.chromium.org/267059 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@29552 0039d316-1c4b-4281-b951-d872f2087c98 --- create-chromium-git-src | 50 +++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/create-chromium-git-src b/create-chromium-git-src index 4f871b74d..32b484400 100755 --- a/create-chromium-git-src +++ b/create-chromium-git-src @@ -10,6 +10,7 @@ # GITSERVER="${GITSERVER:-git.chromium.org}" +SVNSERVER="${SVNSERVER:-svn://svn.chromium.org/chrome}" TMP=".create_chromium_git_src.$$" function cleanup { @@ -45,7 +46,7 @@ function check_dirs { # Test git and git --version. function test_git { echo -n "Trying git... " - local GITV="$(git --version 2>&1)" || { + local GITV="$(git --version)" || { echo "git isn't installed, please install it" exit 1 } @@ -53,11 +54,10 @@ function test_git { GITV="${GITV##* }" # Only examine last word (i.e. version number) local GITD=( ${GITV//./ } ) # Split version number into decimals if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then - echo FAIL echo "git version is ${GITV}, please update to a version later than 1.6" exit 1 fi - echo OK + echo "found git version ${GITV}" } # Test git svn and git svn --version. @@ -65,8 +65,7 @@ function test_git_svn { echo -n "Trying git-svn... " rm -rf "${TMP}" git clone git://github.com/git/hello-world.git "${TMP}" &>/dev/null && - local GITV="$(cd "${TMP}" && git svn --version 2>/dev/null)" || { - echo FAIL + local GITV="$(cd "${TMP}" && git svn --version)" || { echo "git-svn isn't installed, please install it" exit 1 } @@ -75,11 +74,21 @@ function test_git_svn { GITV="${GITV% (svn*}" local GITD=( ${GITV//./ } ) # Split version number into decimals if ((GITD[0] < 1 || (GITD[0] == 1 && GITD[1] < 6) )); then - echo FAIL echo "git version is ${GITV}, please update to a version later than 1.6" exit 1 fi - echo OK + echo "found git-svn version ${GITV}" + + echo "Testing git svn init..." + (cd "${TMP}" && git svn init --username="${EMAIL}" --prefix=origin/ \ + -T trunk/src "${SVNSERVER}") & + local pid="$!" + { sleep 10 && kill "${pid}"; } &>/dev/null & + wait "${pid}" &>/dev/null || { + echo "Could not initialize repository, is SVN server ${SVNSERVER} correct?" + echo "The supplied username and password may be incorrect." + exit 1 + } } # Verify we can reach our main git URL. @@ -91,18 +100,17 @@ function test_git_url { git init && git remote add origin git://"${GITSERVER}"/chromium.git && git remote show origin) &>/dev/null & - local pid=$! + local pid="$!" { sleep 10 && kill "${pid}"; } &>/dev/null & wait "${pid}" &>/dev/null || { - echo FAIL - echo "Timeout accessing Chromium git URL, is ${GITSERVER} correct?" + echo "timeout accessing Chromium git URL, is ${GITSERVER} correct?" exit 1 } echo OK } # Grab a clone of the Chromium git repository. -function grab_crgit { +function cr_git_clone { echo "Grabbing Chromium git repository..." git clone git://"${GITSERVER}"/chromium.git src || { echo "git clone exited with error" @@ -112,20 +120,18 @@ function grab_crgit { } # Configure the git repository to know about the upstream SVN server. -function git_svn_init { - echo -n "Configuring upstream SVN... " - (cd src && git svn init --prefix=origin/ -T trunk/src \ - svn://svn.chromium.org/chrome) &>/dev/null || { - echo FAIL +function cr_git_svn_init { + echo "Configuring upstream SVN..." + (cd src && git svn init --username="${EMAIL}" --prefix=origin/ -T trunk/src \ + "${SVNSERVER}") || { echo "'git svn init' exited with error" exit 1 } - echo OK } # Initialize the SVN history in the repository, also sanity checks our upstream # SVN configuration. -function git_svn_fetch { +function cr_git_svn_fetch { echo "Fetching SVN history..." (cd src && git svn fetch && git pull) || { echo "'git svn fetch' exited with error" @@ -143,7 +149,7 @@ function git_config { (cd src && git cl config http://src.chromium.org/svn/) echo OK - echo -n "Configuring email address (git config user.email ${EMAIL})... " + echo -n "Configuring email address... " (cd src && git config user.email "${EMAIL}") echo OK @@ -161,9 +167,9 @@ check_dirs test_git test_git_svn test_git_url -grab_crgit -git_svn_init -git_svn_fetch +cr_git_clone +cr_git_svn_init +cr_git_svn_fetch git_config echo