From eabbc8c496cde4eda35e3e7553a3cda6e3329aa6 Mon Sep 17 00:00:00 2001
From: 陈炜 <5856420@qq.com>
Date: 星期五, 09 六月 2023 17:35:20 +0800
Subject: [PATCH] # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch master # Your branch is up to date with 'test/master'. # # Changes to be committed: #	new file:   test01.py #	new file:   "\344\270\200\351\224\256\346\233\264\346\226\260git.bat" #

---
 一键更新git.bat |  397 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 test01.py   |   15 ++
 2 files changed, 412 insertions(+), 0 deletions(-)

diff --git a/test01.py b/test01.py
new file mode 100644
index 0000000..e52541a
--- /dev/null
+++ b/test01.py
@@ -0,0 +1,15 @@
+from git import Repo
+import os
+
+dirfile = os.path.abspath('d:/git/test')
+repo = Repo(dirfile)
+g = repo.git
+
+while True:
+    try:
+        g.pull()
+    except Exception as e:
+        print(e)
+    else:
+        print("Successful pull!")
+        break
\ No newline at end of file
diff --git "a/\344\270\200\351\224\256\346\233\264\346\226\260git.bat" "b/\344\270\200\351\224\256\346\233\264\346\226\260git.bat"
new file mode 100644
index 0000000..e0546c2
--- /dev/null
+++ "b/\344\270\200\351\224\256\346\233\264\346\226\260git.bat"
@@ -0,0 +1,397 @@
+@echo off
+
+set "a=%~dp0"
+rem echo %a%
+set a=%a:\=\\%
+rem echo %a%
+set b="%a%Mixly.exe"
+rem echo %b%
+wmic process where 'executablepath=%b%' call Terminate > nul
+
+"%~dp0\Git\cmd\git" config --global --add safe.directory "%~dp0"
+"%~dp0\Git\cmd\git" config --system core.longpaths true
+
+rem 删除.git_win_stm32文件夹
+if exist "%~dp0\.git_win_stm32" (
+	attrib -h "%~dp0\.git_win_stm32"
+	del /f /s /q "%~dp0\.git_win_stm32" > nul
+	rd /q /s "%~dp0\.git_win_stm32" > nul
+)
+
+rem 判断当前目录下是否有.git目录,如果有则首先将.git目录只读属性去除,并将其重命名
+if exist "%~dp0"\.git (
+	attrib -h "%~dp0\.git"
+	attrib -h "%~dp0\.git_mixly"
+	attrib -h "%~dp0\.git_win_avr"
+	attrib -h "%~dp0\.git_win_esp8266"
+	attrib -h "%~dp0\.git_win_esp32"
+	attrib -h "%~dp0\.git_arduino_libs"
+	if not exist "%~dp0\.git_mixly" (
+		ren "%~dp0\.git\" .git_mixly
+		attrib +h "%~dp0\.git_mixly"
+	) ELSE IF not exist "%~dp0\.git_win_avr" (
+		ren "%~dp0\.git\" .git_win_avr
+		attrib +h "%~dp0\.git_win_avr"
+	) ELSE IF not exist "%~dp0\.git_win_esp8266" (
+		ren "%~dp0\.git\" .git_win_esp8266
+		attrib +h "%~dp0\.git_win_esp8266"
+	) ELSE IF not exist "%~dp0\.git_win_esp32" (
+		ren "%~dp0\.git\" .git_win_esp32
+		attrib +h "%~dp0\.git_win_esp32"
+	) ELSE IF not exist "%~dp0\.git_arduino_libs" (
+		ren "%~dp0\.git\" .git_arduino_libs
+		attrib +h "%~dp0\.git_arduino_libs"
+	) ELSE (
+		del /f /s /q "%~dp0"\.git > nul
+		rd /q /s "%~dp0"\.git > nul
+	)
+)
+
+rem 删除.git目录下index.lock
+IF EXIST "%~dp0\.git_mixly\index.lock" ( 
+	del /f /s /q "%~dp0\.git_mixly\index.lock" > nul
+	rd /q /s "%~dp0\.git_mixly\index.lock" > nul
+)
+
+IF EXIST "%~dp0\.git_win_avr\index.lock" ( 
+	del /f /s /q "%~dp0\.git_win_avr\index.lock" > nul
+	rd /q /s "%~dp0\.git_win_avr\index.lock" > nul
+)
+
+IF EXIST "%~dp0\.git_win_esp8266\index.lock" ( 
+	del /f /s /q "%~dp0\.git_win_esp8266\index.lock" > nul
+	rd /q /s "%~dp0\.git_win_esp8266\index.lock" > nul
+)
+
+IF EXIST "%~dp0\.git_win_esp32\index.lock" ( 
+	del /f /s /q "%~dp0\.git_win_esp32\index.lock" > nul
+	rd /q /s "%~dp0\.git_win_esp32\index.lock" > nul
+)
+
+echo 当前路径为"%~dp0"
+
+@echo off
+title Mixly2.0 安装^&升级助手
+@echo off
+echo. 
+echo ***************************Mixly2.0 安装^&升级助手****************************
+echo 感谢您选择使用Mixly2.0软件,如果您是第一次使用本软件,请仔细阅读本说明。
+echo.
+echo.
+echo 目前Mixly2.0软件支持对多种硬件的编程,因为支持所有硬件编程需要占用您硬盘较大的空间,您可以选择只安装您需要用到的部分功能即可。
+echo.
+echo Mixly2.0软件支持的硬件,具体说明如下:
+echo ·MicroPython/CircuitPython ESP32系列开发板(MicroPython[ESP32_MixGo]、CircuitPython[ESP32S2_MixGoCE]等)为默认支持,无需选择。
+echo ·Python(纯Python,无需硬件,支持图形化和代码互相转换)为默认支持,无需选择。
+echo ·Arduino AVR系列开发板(包括Arduino UNO,Nano,Mega 2560,Pro Mini 等)
+echo ·Arduino ESP8266系列开发板(包括WeMos D1,NodeMCU 等)
+echo ·Arduino ESP32系列开发板(包括MixGo,普通ESP32开发板等)
+echo.
+echo.
+echo 安装^&升级即将开始,您可以选择安装部分功能,输入y表示安装该功能,输入n表示不安装该功能。
+@echo off
+
+rem 询问用户是否安装Arduino ESP8266
+echo.
+set esp8266_select=
+set /p esp8266_select=安装 Arduino ESP8266(y/n):
+IF "%esp8266_select%"=="n" (
+	echo No
+) ELSE (
+	echo Yes
+)
+
+rem 询问用户是否安装Arduino ESP32
+echo.
+set esp32_select=
+set /p esp32_select=安装 Arduino ESP32(y/n):
+IF "%esp32_select%"=="n" (
+	echo No
+) ELSE (
+	echo Yes
+)
+
+rem 询问用户更新后是否启动Mixly
+echo.
+set start_mixly=
+set /p start_mixly=更新结束后启动 Mixly2.0(y/n):
+IF "%start_mixly%"=="y" (
+	echo Yes
+) ELSE (
+	echo No
+)
+
+rem 更新Mixly2.0
+attrib -h "%~dp0\.git_mixly"
+ren "%~dp0\.git_mixly\" .git
+
+@echo on
+echo Mixly2.0 正在升级中,请等待...
+@echo off
+cd "%~dp0\Git\cmd\"
+git fetch --all
+git reset --hard origin/master
+git pull origin master
+git submodule init
+git submodule update
+git submodule foreach "git fetch --all && git reset --hard origin/master && git pull origin master"
+@echo off
+rd/s/q "%~dp0\.git\logs\"
+git gc
+git prune
+git clean -f .git/index.lock
+@echo on
+echo Mixly2.0更新完成
+@echo off
+
+ren "%~dp0\.git\" .git_mixly
+attrib +h "%~dp0\.git_mixly"
+
+echo.
+echo.
+
+rem 更新Arduino AVR 包
+attrib -h "%~dp0\.git_win_avr"
+ren "%~dp0\.git_win_avr\" .git
+
+@echo on
+echo Arduino AVR 包正在升级中,请等待...
+@echo off
+cd "%~dp0\Git\cmd\"
+git fetch --all
+git reset --hard origin/master
+git pull origin master
+
+@echo off
+rd/s/q "%~dp0\.git\logs\"
+git gc
+git prune
+git clean -f .git/index.lock
+@echo on
+echo Arduino AVR 包更新完成
+@echo off
+
+ren "%~dp0\.git\" .git_win_avr
+attrib +h "%~dp0\.git_win_avr"
+
+echo.
+echo.
+
+IF not exist "%~dp0\.git_arduino_libs" (
+	@echo on
+	echo 克隆 Arduino Libs 包中,请等待...
+	@echo off
+	IF EXIST "%~dp0\arduino-cli\libraries" (
+		del /f /s /q "%~dp0\arduino-cli\libraries" > nul
+		rd /q /s "%~dp0\arduino-cli\libraries" > nul
+	)
+	IF EXIST "%~dp0\gitDir" (
+		del /f /s /q "%~dp0\gitDir" > nul
+		rd /q /s "%~dp0\gitDir" > nul
+	)
+	mkdir "%~dp0\gitDir"
+	git clone https://gitee.com/mixly2/arduino-libs.git "%~dp0\gitDir"
+	attrib -h "%~dp0\gitDir\.git"
+	ren "%~dp0\gitDir\.git" .git_arduino_libs
+	echo A|xcopy "%~dp0\gitDir\.git_arduino_libs" "%~dp0\.git_arduino_libs\" /s /c /h > nul
+	
+	attrib +h "%~dp0\.git_arduino_libs"
+	
+	IF EXIST "%~dp0\gitDir" (
+		del /f /s /q "%~dp0\gitDir" > nul
+		rd /q /s "%~dp0\gitDir" > nul
+	)
+	@echo on
+	echo Arduino Libs 克隆完成
+	@echo off
+	echo.
+	echo.
+)
+
+IF EXIST "%~dp0\.git_arduino_libs" (
+	rem 更新Arduino-libs
+	attrib -h "%~dp0\.git_arduino_libs"
+	ren "%~dp0\.git_arduino_libs\" .git
+
+	@echo on
+	echo Arduino Libs 包正在升级中,请等待...
+	@echo off
+	cd "%~dp0\Git\cmd\"
+	git fetch --all
+	git reset --hard origin/master
+	git pull origin master
+
+	@echo off
+	rd/s/q "%~dp0\.git\logs\"
+	git gc
+	git prune
+	git clean -f .git/index.lock
+	@echo on
+	echo Arduino Libs 包更新完成
+	@echo off
+
+	ren "%~dp0\.git\" .git_arduino_libs
+	attrib +h "%~dp0\.git_arduino_libs"
+
+	echo.
+	echo.
+)
+
+IF "%esp8266_select%"=="n" (
+	rem 删除Arduino ESP8266包
+	IF EXIST "%~dp0\arduino-cli\Arduino15\packages\esp8266" (
+		del /f /s /q "%~dp0\arduino-cli\Arduino15\packages\esp8266" > nul
+		rd /q /s "%~dp0\arduino-cli\Arduino15\packages\esp8266" > nul
+	)
+	rem 删除Arduino ESP8266板卡页面
+	IF EXIST "%~dp0\resources\app\board\arduino_esp8266" (
+		del /f /s /q "%~dp0\resources\app\board\arduino_esp8266" > nul
+		rd /q /s "%~dp0\resources\app\board\arduino_esp8266" > nul
+	)
+	attrib -h "%~dp0\.git_win_esp8266"
+	rem 删除Arduino ESP8266 .git\objects
+	IF EXIST "%~dp0\.git_win_esp8266\objects" (
+		del /f /s /q "%~dp0\.git_win_esp8266\objects" > nul
+		rd /q /s "%~dp0\.git_win_esp8266\objects" > nul
+	)
+	rem 删除Arduino ESP8266 .git\refs
+	IF EXIST "%~dp0\.git_win_esp8266\refs" (
+		del /f /s /q "%~dp0\.git_win_esp8266\refs" > nul
+		rd /q /s "%~dp0\.git_win_esp8266\refs" > nul
+	)
+	md "%~dp0\.git_win_esp8266\objects" > nul
+	md "%~dp0\.git_win_esp8266\objects\info" > nul
+	md "%~dp0\.git_win_esp8266\objects\pack" > nul
+	md "%~dp0\.git_win_esp8266\refs" > nul
+	md "%~dp0\.git_win_esp8266\refs\heads" > nul
+	md "%~dp0\.git_win_esp8266\refs\tags" > nul
+	IF EXIST "%~dp0\.git_win_esp8266\index" (
+		del "%~dp0\.git_win_esp8266\index" > nul
+	)
+	IF EXIST "%~dp0\.git_win_esp8266\ORIG_HEAD" (
+		del "%~dp0\.git_win_esp8266\ORIG_HEAD" > nul
+	)
+	IF EXIST "%~dp0\.git_win_esp8266\packed-refs" (
+		del "%~dp0\.git_win_esp8266\packed-refs" > nul
+	)
+	attrib +h "%~dp0\.git_win_esp8266"
+) ELSE (
+	rem 更新Arduino ESP8266 包
+	attrib -h "%~dp0\.git_win_esp8266"
+	ren "%~dp0\.git_win_esp8266\" .git
+
+	@echo on
+	echo Arduino ESP8266 包正在升级中,请等待...
+	@echo off
+	cd "%~dp0\Git\cmd\"
+	git fetch --all
+	git reset --hard origin/master
+	git pull origin master
+
+	@echo off
+	rd/s/q "%~dp0\.git\logs\"
+	git gc
+	git prune
+	git clean -f .git/index.lock
+	@echo on
+	echo Arduino ESP8266 包更新完成
+	@echo off
+
+	ren "%~dp0\.git\" .git_win_esp8266
+	attrib +h "%~dp0\.git_win_esp8266"
+	
+	echo.
+	echo.
+)
+
+IF "%esp32_select%"=="n" (
+	rem 删除Arduino ESP32包
+	IF EXIST "%~dp0\arduino-cli\Arduino15\packages\esp32" (
+		del /f /s /q "%~dp0\arduino-cli\Arduino15\packages\esp32" > nul
+		rd /q /s "%~dp0\arduino-cli\Arduino15\packages\esp32" > nul
+	)
+	rem 删除Arduino ESP32板卡页面
+	IF EXIST "%~dp0\resources\app\board\arduino_esp32" (
+		del /f /s /q "%~dp0\resources\app\board\arduino_esp32" > nul
+		rd /q /s "%~dp0\resources\app\board\arduino_esp32" > nul
+	)
+	rem 删除Arduino ESP32C3板卡页面
+	IF EXIST "%~dp0\resources\app\board\arduino_esp32c3" (
+		del /f /s /q "%~dp0\resources\app\board\arduino_esp32c3" > nul
+		rd /q /s "%~dp0\resources\app\board\arduino_esp32c3" > nul
+	)
+	rem 删除Arduino ESP32S2板卡页面
+	IF EXIST "%~dp0\resources\app\board\arduino_esp32s2" (
+		del /f /s /q "%~dp0\resources\app\board\arduino_esp32s2" > nul
+		rd /q /s "%~dp0\resources\app\board\arduino_esp32s2" > nul
+	)
+	rem 删除Arduino ESP32S3板卡页面
+	IF EXIST "%~dp0\resources\app\board\arduino_esp32s3" (
+		del /f /s /q "%~dp0\resources\app\board\arduino_esp32s3" > nul
+		rd /q /s "%~dp0\resources\app\board\arduino_esp32s3" > nul
+	)
+	attrib -h "%~dp0\.git_win_esp32"
+	rem 删除Arduino ESP32 .git\objects
+	IF EXIST "%~dp0\.git_win_esp32\objects" (
+		del /f /s /q "%~dp0\.git_win_esp32\objects" > nul
+		rd /q /s "%~dp0\.git_win_esp32\objects" > nul
+	)
+	rem 删除Arduino ESP32 .git\refs
+	IF EXIST "%~dp0\.git_win_esp32\refs" (
+		del /f /s /q "%~dp0\.git_win_esp32\refs" > nul
+		rd /q /s "%~dp0\.git_win_esp32\refs" > nul
+	)
+	md "%~dp0\.git_win_esp32\objects" > nul
+	md "%~dp0\.git_win_esp32\objects\info" > nul
+	md "%~dp0\.git_win_esp32\objects\pack" > nul
+	md "%~dp0\.git_win_esp32\refs" > nul
+	md "%~dp0\.git_win_esp32\refs\heads" > nul
+	md "%~dp0\.git_win_esp32\refs\tags" > nul
+	IF EXIST "%~dp0\.git_win_esp32\index" (
+		del "%~dp0\.git_win_esp32\index" > nul
+	)
+	IF EXIST "%~dp0\.git_win_esp32\ORIG_HEAD" (
+		del "%~dp0\.git_win_esp32\ORIG_HEAD" > nul
+	)
+	IF EXIST "%~dp0\.git_win_esp32\packed-refs" (
+		del "%~dp0\.git_win_esp32\packed-refs" > nul
+	)
+	attrib +h "%~dp0\.git_win_esp32"
+) ELSE (
+	rem 更新Arduino ESP32 包
+	attrib -h "%~dp0\.git_win_esp32"
+	ren "%~dp0\.git_win_esp32\" .git
+
+	@echo on
+	echo Arduino ESP32 包正在升级中,请等待...
+	@echo off
+	cd "%~dp0\Git\cmd\"
+	git fetch --all
+	git reset --hard origin/master
+	git pull origin master
+
+	@echo off
+	rd/s/q "%~dp0\.git\logs\"
+	git gc
+	git prune
+	git clean -f .git/index.lock
+	@echo on
+	echo Arduino ESP32 包更新完成
+	@echo off
+
+	ren "%~dp0\.git\" .git_win_esp32
+	attrib +h "%~dp0\.git_win_esp32"
+	
+	echo.
+	echo.
+)
+
+@echo on
+echo Mixly2.0 和 Arduino 包更新完成,Enjoy it!
+@echo off
+pause
+
+IF "%start_mixly%"=="y" (
+	cd "%~dp0\"
+	start "dummyclient" "%~dp0\Mixly.exe"
+)

--
Gitblit v1.10.0