https://github.com/joliver/SourceServer-GitExtensions/blob/master/InSystemPath/gitcontents.bat
%~1 : ssh 연결 주소
%~2 : temp git repository 저장 경로
%~3 : git object id
%~4 : 출력된 소스 파일 전체 경로
@echo off if ()==(%1) exit /b if ()==(%2) exit /b if ()==(%3) exit /b if ()==(%4) exit /b setlocal set GIT_NODE_URL="%~1" set GIT_NODE_URL=%GIT_NODE_URL: (fetch)=% set GIT_WORKING_DIR="%~2" set GIT_OBJ_ID="%~3" set GIT_CONTENTS_OUTPUT="%~4" if exist %GIT_WORKING_DIR% goto update md %GIT_WORKING_DIR% git --git-dir=%GIT_WORKING_DIR% init git --git-dir=%GIT_WORKING_DIR% fetch %GIT_NODE_URL% goto show :update for /f "usebackq delims=" %%i in (`git --no-pager --git-dir=%%GIT_WORKING_DIR%% show %%GIT_OBJ_ID%%`) do ( goto show ) echo *Updating...* git --git-dir=%GIT_WORKING_DIR% fetch %GIT_NODE_URL% :show if not exist %~dp4 mkdir %~dp4 git --no-pager --git-dir=%GIT_WORKING_DIR% show %GIT_OBJ_ID% > %GIT_CONTENTS_OUTPUT% :cleanup endlocal
%~2 : temp git repository 저장 경로
%~3 : git object id
%~4 : 출력된 소스 파일 전체 경로
%~1의 ssh 연결 주소의 ID가 잘못 들어오는 경우에만 ID를 강제로 설정해서 사용하면 된다.
%~2의 temp git repository를 현재 사용중인 git 저장소로 사용하지 않는다.
git 저장소에 git object가 없을때 fetch로 서버에서 받아와야 하는데, 이 부분을 고치면 받아올 수 없다.
fetch를 해서 볼 수 없으므로
덧글을 달아 주세요