建立乙個專門存放git庫專案的目錄,例如d:\git。
project專案的本地git庫目錄為d:\git\project\.git。
更新(git pull)d:\git目錄下的所有git/hg專案,在該目錄下執行gitpullall.bat批處理檔案:
:: gitpullall.bat
@echo off
setlocal enableextensions
set mygit="d:\program files\git\bin\git.exe"
set myhg="d:\program files\tortoisehg\hg.exe"
for /d %%x in (*) do (
if exist "%%x\.git\" (
cd /d "%%x"
echo ***** git pull %%x
%mygit% pull --recurse-submodules=yes --ff-only --all --progress
cd /d ..
) else if exist "%%x\.hg\" (
cd /d "%%x"
echo ***** hg pull %%x
%mygit% pull -u
cd /d ..
) else echo ..... skipped %%x
):bye
pause
endlocal
如果只需要fetch所有remote源,執行gitfetchall.bat批處理檔案:
:: gitfetchall.bat
@echo off
setlocal enableextensions
set mygit="d:\program files\git\bin\git.exe"
for /d %%x in (*) do (
if exist "%%x\.git\" (
cd /d "%%x"
echo ***** git fetching %%x
%mygit% fetch --all --recurse-submodules=yes -v --progress
cd /d ..
) else echo ..... skipped %%x
):bye
pause
endlocal
# 打包乙個或多個git庫
:: packdir.bat
@echo off
setlocal enableextensions
set my7z="d:\program files\7-zip\7z.exe"
if "%1" == "" (
for /d %%x in (*) do (
if exist "%%x\.git\" (
del "%%x.7z" 1>nul 2>&1
echo ***** packing %%x\.git\ to %%x.7z
%my7z% a -mx9 "%%x.7z" "%%x\.git\" 1>nul
) else echo ..... skipped %%x
)) else (
del "%1.7z" 1>nul 2>&1
if exist "%1\.git\" (
echo ***** packing %1\.git\ to %1.7z
%my7z% a -mx9 "%1.7z" "%1\.git\" 1>nul
) else for /d %%x in (*) do (
if exist "%%x\.git\" (
echo ***** packing %%x\.git\ to %1.7z
%my7z% a -mx9 "%1.7z" "%%x\.git\" 1>nul
) else echo ..... skipped %%x
)):bye
pause
endlocal
在d:\git目錄下帶引數project執行packdir.bat批處理檔案,則僅將project\.git\目錄打包為project.7z。
如果引數不是乙個子目錄名,則將所有子專案的.git\目錄打為乙個整包,包名為「引數.7z」。
如果不帶引數,則對當前目錄下所有專案的.git\目錄分別打包,包名為對應「子目錄名.7z」,包內儲存路徑"子目錄名\.git\"。
將打包檔案解壓後進入.git\上級專案目錄,執行"git checkout -f --"即可恢復該專案**。
如果需要批量恢復所有子專案目錄下的**,執行gitcheckoutall.bat批處理檔案:
:: gitcheckoutall.bat
@echo off
setlocal enableextensions
set mygit="d:\program files\git\bin\git.exe"
for /d %%x in (*) do (
if exist "%%x\.git\" (
cd /d "%%x"
echo ***** git checkout %%x
%mygit% checkout --recurse-submodules -f --
cd /d ..
) else echo ..... skipped %%x
):bye
pause
endlocalsetlocal enableextensions
Hibernate批量更新和批量刪除
在最近的銀行系統中多處涉及到批量操作問題,起初用hibernate的更新用法沒太注意,開發的時候由於資料量少,看不出有什麼效能問題,到後來造大量資料測試的時候,發現反應超慢,後倆經過仔細分析考慮,採用了儲存過程的方式來解決,果然系統反應快了很多,以下就是解決問題的過程,以客戶資訊表customers...
在Hibernate中處理批量更新和批量刪除
page load marshal data pump 批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction i...
在Hibernate應用中批量更新和批量刪除
批量更新是指在乙個事務中更新大批量資料,批量刪除是指在乙個事務中刪除大批量資料。以下程式直接通過hibernate api批量更新customers表中年齡大於零的所有記錄的age欄位 tx session.begintransaction iterator customers session.fi...