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

Unified Diff: update_depot_tools.bat

Issue 12755033: Execute a temp copy of update_depot_tools.bat (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: copy to %TEMP% Created 7 years, 9 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: update_depot_tools.bat
diff --git a/update_depot_tools.bat b/update_depot_tools.bat
index f880d9b895a384c616915c6d1f4ce5bc7c063319..20ac0d7cd45bf214220a1eca40708e7f4cc9358a 100644
--- a/update_depot_tools.bat
+++ b/update_depot_tools.bat
@@ -7,13 +7,25 @@
setlocal
+:: Windows freaks out if a file is overwritten while it's being executed. Copy
+:: this script off to a temporary location and reinvoke from there before
+:: running any svn or git commands.
+IF %~nx0==update_depot_tools.bat (
+ COPY /Y %~dp0update_depot_tools.bat %TEMP%\update_depot_tools_tmp.bat >nul
+ if errorlevel 1 goto :EOF
+ %TEMP%\update_depot_tools_tmp.bat %~dp0 %*
+)
+
+set DEPOT_TOOLS_DIR=%1
+SHIFT
+
set GIT_URL=https://chromium.googlesource.com/chromium/tools/depot_tools.git
:: Will download svn and python.
:: If you don't want to install the depot_tools version of these tools, remove
:: the 'force' option on the next command. The tools will be installed only if
:: not already in the PATH environment variable.
-call "%~dp0bootstrap\win\win_tools.bat" force
+call "%DEPOT_TOOLS_DIR%bootstrap\win\win_tools.bat" force
if errorlevel 1 goto :EOF
:: Now clear errorlevel so it can be set by other programs later.
set errorlevel=
@@ -22,19 +34,19 @@ set errorlevel=
IF "%DEPOT_TOOLS_UPDATE%" == "0" GOTO :EOF
:: We need either .\.svn\. or .\.git\. to be able to sync.
-IF EXIST "%~dp0.svn\." GOTO :SVN_UPDATE
-IF EXIST "%~dp0.git\." GOTO :GIT_UPDATE
+IF EXIST "%DEPOT_TOOLS_DIR%.svn\." GOTO :SVN_UPDATE
+IF EXIST "%DEPOT_TOOLS_DIR%.git\." GOTO :GIT_UPDATE
echo Error updating depot_tools, no revision tool found.
goto :EOF
:SVN_UPDATE
-call svn up -q "%~dp0."
+call svn up -q "%DEPOT_TOOLS_DIR%."
goto :EOF
:GIT_UPDATE
-cd /d "%~dp0."
+cd /d "%DEPOT_TOOLS_DIR%."
call git config remote.origin.fetch > NUL
if errorlevel 1 goto :GIT_SVN_UPDATE
for /F %%x in ('git config --get remote.origin.url') DO (
@@ -51,6 +63,6 @@ call git rebase -q origin/master > NUL
goto :EOF
:GIT_SVN_UPDATE
-cd /d "%~dp0."
+cd /d "%DEPOT_TOOLS_DIR%."
call git svn rebase -q -q
goto :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