批量转化.bat 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. @echo off & title 根据列表list.txt自动svn转化git
  2. setlocal enabledelayedexpansion
  3. set "SVN_HOST=http://127.0.0.1:8080"
  4. set "GIT_HOST=http://192.168.50.184:3000"
  5. goto :main
  6. :FUNC_SVN2GIT
  7. set "svn_name=%1"
  8. set "git_name=%2"
  9. if not exist %svn_name% (
  10. echo 1.从svn下载本地
  11. echo 初始化svn:%svn_name%
  12. call subgit configure %SVN_HOST%/svn/%svn_name% %svn_name%
  13. echo 配置svn:%svn_name%
  14. if not exist %svn_name%\subgit\config.bak (
  15. copy /y %svn_name%\subgit\config %svn_name%\subgit\config.bak
  16. )
  17. ::copy /y common_config\config %svn_name%\subgit\config
  18. cd tools\
  19. sed -i "s/ trunk = trunk:/ trunk = :/g" "..\%svn_name%\subgit\config"
  20. sed -i "s/ branches = branches/ #branches = branches/g" "..\%svn_name%\subgit\config"
  21. sed -i "s/ tags = tags/ #tags = tags/g" "..\%svn_name%\subgit\config"
  22. sed -i "s/ shelves = shelves/ #shelves = shelves/g" "..\%svn_name%\subgit\config"
  23. cd ..
  24. )
  25. echo 下载svn:%svn_name%
  26. call subgit install %svn_name%
  27. echo 2.从本地push到git git上建立%svn_name%
  28. call git clone .\%svn_name% %svn_name%.git
  29. cd %svn_name%.git
  30. ::创建一个新的仓库
  31. if not exist .git (
  32. echo .>README.md
  33. call git init
  34. call git add README.md
  35. call git commit -m "首次推送"
  36. )
  37. call git remote set-url origin "%GIT_HOST%/kinve/%git_name%.git"
  38. call git push origin master
  39. cd ..
  40. exit /b
  41. ::其他
  42. ::git push origin remotes/origin/feature:refs/heads/feature
  43. ::git push origin remotes/origin/bugfix:refs/heads/bugfix
  44. ::git push origin remotes/origin/develop:refs/heads/develop
  45. ::git push --tags
  46. :main
  47. for /f "tokens=1,2 delims=|" %%i in (list.txt) do (
  48. echo "执行工程:%%i %%j"
  49. call:FUNC_SVN2GIT %%i %%j
  50. )