bundle_file運用
GitのBundleファイル運用
Gitの使い方としてローカルのリポジトリとリモートの共有リポジトリという構成が基本だろう。だが、オンラインでのリポジトリアクセスができない場合がある。こういう時にBundleファイルを用いてリポジトリ間でデータ同期が可能である。 BundleファイルはGitコマンドで作成したり読み込みができるのだが、何度も行う作業であればスクリプト化してしまうべきであろう。 これらのバッチ/スクリプトをリポジトリ直下に置いて起動すれば、バンドルファイルの作成や読み込みがメニュー選択するだけで実行可能になる。 これらのスクリプトでバンドルファイルを読み込むと、importブランチに反映される。確認して問題が無ければmasterブランチにマージする。
バッチ版
- Git-Bundle.bat
@echo off set BUNDLE=Git-RepoExport.bundle set ARCHIVE_ZIP=Git-Archive.zip set ARCHIVE_TGZ=Git-Archive.tgz :MENU cd %~dp0 echo. echo *** MENU *** echo 1: Verify Git bundle file echo 2: Fetch Git bundle file echo 3: Create Git bundle file echo T: Create Git tgz-archive file echo Z: Create Git zip-archive file echo q: Quit set /P INPUT=">>> " echo. set SELECT=%INPUT:~0,1% if "%SELECT%"=="1" goto SELECT_1 if "%SELECT%"=="2" goto SELECT_2 if "%SELECT%"=="3" goto SELECT_3 if "%SELECT%"=="T" goto SELECT_T if "%SELECT%"=="Z" goto SELECT_Z if "%SELECT%"=="q" goto eof goto MENU :SELECT_1 echo [ Verify Git bundle file ] git bundle verify %BUNDLE% goto MENU :SELECT_2 echo [ Fetch Git bundle file ] git fetch %BUNDLE% master:import goto MENU :SELECT_3 echo [ Create Git bundle file ] git bundle create %BUNDLE% HEAD master goto MENU :SELECT_T echo [ Create Git tgz-archive file ] git archive HEAD --format=tgz -o %ARCHIVE_TGZ% goto MENU :SELECT_Z echo [ Create Git zip-archive file ] git archive HEAD --format=zip -o %ARCHIVE_ZIP% goto MENU
shell版
- Git-Bundle.sh
#! /bin/sh # BUNDLE=Git-RepoExport.bundle ARCHIVE_ZIP=Git-Archive.zip ARCHIVE_TGZ=Git-Archive.tgz # # Function menu_list() { n=1 cat << END | while read text *** Menu *** 1) Verify Git bundle file 2) Fetch Git bundle file 3) Create Git bundle file T) Create Git tgz-archive file Z) Create Git zip-archive file q) Quit END do echo "$text" n=`expr $n + 1` done return } # Main menu_list echo -n ">>> " while read input do case $input in 1) echo "[ Verify Git bundle file ]" git bundle verify $BUNDLE ;; 2) echo "[ Fetch Git bundle file ]" git fetch $BUNDLE master:import ;; 3) echo "[ Create Git bundle file ]" git bundle create $BUNDLE HEAD master ls -ld $BUNDLE ;; T) echo "[ Create Git tgz-archive file ]" git archive HEAD --format=tgz -o $ARCHIVE_TGZ ls -ld $ARCHIVE_TGZ ;; Z) echo "[ Create Git zip-archive file ]" git archive HEAD --format=zip -o $ARCHIVE_ZIP ls -ld $ARCHIVE_ZIP ;; q) echo "Bye!" break ;; *) echo "?" ;; esac echo menu_list echo -n ">>> " done
bundle_file運用.txt · 最終更新: 2023/06/14 06:00 by Minoru Kijima