Windows 환경에서 pre-commit은 bat 형식으로 만들어야 실행이 된다.
bat 파일을 작성해 본 적이 없어서.. 그 과정을 하나 하나 기록해 가보려고 한다.
@echo off
FOR /F "tokens=1,2* delims= " %%i in (test.txt) do (
echo %%i
IF NOT %%i==D (
echo %%j Property Change
)
)
U
cmcnu/session.txt Property Change
D
UU
session_2.txt Property Change
흠냐 .. 일단 테스트 중 ..
1. 변경 상태에 대한 정보 필요
2. 변경대상의 프로퍼티 설정 여부와 설정이 되어 있지 않으면 프로퍼티 설정
2012-02-25 01:30
파일명에 공백이 포함되어 있으면 난감;;; 휴~ 의도치 않게 변수에 값이 이상하게 할당이 되어버린다.
@echo off
set REPOS=%1
set TXN=%2
svnlook changed %1 -t %2 >> c:\test_result.txt
FOR /F "tokens=1,2* delims= " %%i in ('svnlook changed REPOS -t TXN') do (
echo %%i >> c:\test_result.txt
echo %%j >> c:\test_result.txt
)
2012-02-25 02:30
tokens내용을 바꿨더니 정상적으로 출력이 된다.
@echo off
set REPOS=%1
set TXN=%2
svnlook changed %1 -t %2 >> c:\test_result.txt
FOR /F "tokens=1* delims= " %%i in ('svnlook changed REPOS -t TXN') do (
echo %%i >> c:\test_result.txt
echo %%j >> c:\test_result.txt
)
2012-02-25 02:39
set REPOS=%1
set TXN=%2
echo %REPOS% >> c:\%TXN%.txt
@echo off
FOR /F "tokens=1* delims= " %%i in ('svnlook changed %REPOS% -t %TXN%') do (
echo %%i >> c:\%TXN%.txt
echo %%j >> c:\%TXN%.txt
set rslt='svnlook propget -t %TXN% %REPOS% svn:needs-lock "%%j"' >> c:\%TXN%.txt
echo %rslt% >> c:\%TXN%.txt
)
C:\Repository\test_repository
A
바쁜 리더를 위한 '시간 관리 4계명.hwp
ECHO가 설정되어 있지 않습니다.
D
소중한것 먼저하기 과제_김귀남.docx
ECHO가 설정되어 있지 않습니다.
해당 파일에 해당 속성값이 지정되어있지 않으면 오류가 떨어지면서 커밋이 진행되지 않아 실행 결과값을 확인하고 싶어서
실행결과를 변수에 담고 그걸 출력해보려 했지만 'ECHO가 설정되어 있지 않습니다' 라고 떠버린다.
뭔가 다른게 있는 것 같다.
2012-02-25 03:37
@echo %rslt% >> c:\%TXN%.txt
이렇게 하니 되는거 같긴한데.. @echo 와 echo의 차이가 무엇인지 잘 모르겠다;;
2012-02-25 03:59
for문 내에서 set을 사용하여 변수에 값을 지정하면 최종값만 지정되는 거 같다.
일반적인 for문의 개념과는 다르게 동작이 되어지나..?
'ETC' 카테고리의 다른 글
TortoiseSVN Command (1) | 2012.10.09 |
---|---|
[ClearCase] Type manager "_xml2" failed create_version operation. (0) | 2012.08.03 |
[BAT] for문 (0) | 2012.02.20 |
[HP-UX] 계정생성 및 수정(useradd, usermod) (0) | 2012.02.17 |
[SVN] Want to go offline? (0) | 2012.02.08 |