출처 : http://magenta.egloos.com/1454578

Subversion(SVN)과 Mantis의 연동

1. 연동하려는 SVN 저장소에 속성 설정합니다.
bugtraq:label = issue
bugtraq:url = http://localhost/mantis/view.php?id=%BUGID%
bugtraq:message = issue %BUGID%
bugtraq:warnifnoissue = true

2. SVN 저장소의 hooks디렉토리에 다음에 나오는 배치 명령이 들어있는 post commit hook 파일 생성(C:\Repository\hooks\post-commit.bat). SVN이 commit되는 동안에 Mantis에 이슈노트로 추가될 내용들을 넣습니다.
REM Post-commit hook for MantisBT integration
SET REPOS=%1
SET REV=%2
SET DETAILS_FILE=C:\Repository\GNIS4M\svnfile_%REV%
SET LOG_FILE=C:\Repository\GNIS4M\svnfile_%REV%_Log

echo ****** Source code change ******>>%DETAILS_FILE%
svnlook info -r %REV% %REPOS%>>%DETAILS_FILE%
echo SVN Revision:%REV%>>%DETAILS_FILE%
svnlook diff -r %REV% %REPOS%>>%DETAILS_FILE%

C:\APM_Setup\Server\PHP4\php.exe C:\APM_Setup\htdocs\mantis\core\checkin.php <%DETAILS_FILE% >%LOG_FILE%
DEL %DETAILS_FILE%
DEL %LOG_FILE%

3. 다음 내용을 Mantis config_inc.php에 추가합니다.
#Integration to SVN
$g_source_control_notes_view_status = VS_PRIVATE;
$g_source_control_account = 'Administrator';
$g_source_control_set_status_to = OFF;
$g_source_control_regexp = "/\bissue [#]{0,1}(\d+)\b/i";

추가로 연동할 SVN저장소에는 1,2만 반복하면 됩니다.

해보니까 연동은 잘되는데 한글이 깨지는 문제가 생깁니다.

Windows의 Command Prompt는 기본적으로 시스템의 locale을 따르는데..

그게 euc-kr입니다...

문제는 연동배치파일에서 svnlook을 쓰는데 이 프로그램은 Command Prompt의 Locale에 맞춰서 문자열을 출력한다는거..

우리의 Mantis는 UTF-8을 써서 한글을 표현하기 때문에...euc-kr로 된 SVN 정보들은 다 깨집니다.
(물론 euc-kr로 할수도 있지만...그러면 Mantis가 자꾸 워닝을 뿌리기때문에...)

해결책으로 Mantis의 Core디렉토리에 있는 checkin.php를 직접 수정합니다..

42번째 줄의...

while ( ( $t_line = fgets( STDIN, 1024 ) ) ) {

...를

while ( ( $t_line_euc = fgets( STDIN, 1024 ) ) ) {
        $t_line = ( iconv("EUC-KR","UTF-8",$t_line_euc)?iconv("EUC-KR","UTF-8",$t_line_euc):$t_line_euc );

...로 바꾸니까 해결되는군요..

윈도우2003서버에서 Mantis 1.0.6과 svn 1.4.0으로 작업했습니다.

'자료 > Article' 카테고리의 다른 글

/ENTRY(진입점 기호)  (2) 2007.03.01
Compiler Support for Type Traits  (0) 2007.02.13
라그나로크2 클라이언트 분석  (2) 2006.12.31
[펌] 디스크 캐쉬 제대로 알기  (2) 2006.12.29
[펌] Resource Management Best Practices  (0) 2006.11.02

- 파일 분석


- 그래픽 분석


머 전체적으로는 특별히 눈에 띄는 내용은 수영과 점프로 아무데나 올라갈 수 있다와 다양한 페이셜 연출...
말고는 특별한건 보이지 않았다.
다만 생각보다 메모리 사용량이 많지 않았다.

파일이 패킹되어 있지 않아서 분석하기는 좋았지만...
혹시 오베까지 저렇게 내용이 오픈되어있는 상태로 가면 좀 문제가 있겠다..;

평가는 첫 클베치고는 괜찮았다..라고도 생각되지만 개발기간과 언리얼2.x를 생각할때는 생각보다 별로.. 라고도 생각된다.

출처 : http://testors.net/tt/767

오래간만에 재미난 퀴즈.

Q. Win32 환경에서 모든 함수가 성공적으로 수행되었다고 가정할 경우, #END 시점에서 데이터가 실제로 disk 에 쓰여졌다고 기대할 수 있는 코드를 모두 선택하시오.

1.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
// #END

2.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
// #END

3.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fclose( fp );
// #END

4.
FILE *fp = fopen( "test", "wb" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
fclose( fp );
// #END

5.
HANDLE hFile = CreateFile( "test", 0, FILE_SHARE_WRITE, 0, TRUNCATE_EXISTING, FILE_ATTRIBUTE_NORMAL );
DWORD sz = 0;
WriteFile( hFile, "data", 4, &sz, NULL );
CloseHandle( hFile );
// #END



 

정답은 놀랍게도 하나도 없다. -_-;

우선 Win32 API 의 경우 CloseHandle() 을 이용해서 파일 핸들을 닫았다고 해서 실제로 disk 에 write 되는것은 아니다. CloseHandle() 이 flush 를 해줄것이라고 생각할지도 모르겠지만 CloseHandle 한다고 해서 file 이 flush 된다는 얘기는 MSDN 어디에서도 찾아볼 수 없다. 실제로도 CloseHandle() 만으로는 물리적으로 disk 에 write 되지 않고 단지 캐쉬에 write 저장될 뿐이다. 다시 open 해보면 변경된 내역을 확인이 가능한것처럼 보이겠지만 그것은 write/close/open/read 가 모두 OS 의 디스크 캐쉬상에서 이루어 졌기 때문이다. CloseHandle() 후에 PC 코드를 뽑았다 다시 부팅해서 읽게 되면.. 운이 나쁘면 뒤의 일부분은 write 되지 않는것을 발견할 수 있을 것이다.

그렇다면 Win32 에서 데이터가 원하는 시점에 disk 에 기록되게 하려면 어떻게 해야하느냐? 방법은 FlushFileBuffers() 를 명시적으로 호출 해 주는 것이다. 여전히 CloseHandle() 과는 별개라는것을 주의 할것. CloseHandle() 은 내부적으로 FlushFileBuffers() 를 호출하지 않는다.

이제 CRT 의 경우를 살펴보자. CRT 의 fflush() 가 disk 에 write 해주는것 아니었냐고? 안타깝게도 대답은 'No' 이다. CRT 의 fopen()/fwrite()/fclose() 들은 내부적으로 FILE 단위의 버퍼링을 가지고 있으며 fflush() 는 그 버퍼링을 flush 해주는 것일 뿐이다. 그러니까 CRT 에서 fflush() 를 호출하게 되면 FlushFileBuffers() 가 호출되는게 아니라 그동안 쌓여있던 데이터를 그냥 WriteFile() - UNIX 계열에서는 write() - 해 줄 뿐이다. 결국 여전히 데이터가 OS 의 디스크 캐쉬에만 기록되고 물리적으로는 기록되지 않을 가능성이 남아있게 된다. system-call 로 구현될 수 밖에 없는 CRT 의 특성상 이는 모든 OS 에서도 일어날 수 있는 증상이다.

그래서 M$ 의 경우 fopen()/fflush() 의 extension 을 제공한다. 물론 이것은 표준이 아니다. 사용법은 간단한데 fopen() 시에 'c' 플래그를 추가하게 되면 fflush() 시에 FlushFileBuffers() 가 추가적으로 호출된다.물론 여기서도 fclose() 만으로는 물리적인 기록을 기대할 수 없다.

정리해보면, Win32 의 경우 disk 에 저장될 것이라 기대할 수 있는 코드는 다음 두가지다.

FILE *fp = fopen( "test", "wbc" );
fwrite( "DATA", 4, 1, fp );
fflush( fp );
fclose( fp );
// #END

HANDLE hFile = CreateFile( "test", 0, FILE_SHARE_WRITE, 0, TRUNCATE_EXISTING, FILE_FLAG_WRITE_THROUGH );
DWORD sz = 0;
WriteFile( hFile, "data", 4, &sz, NULL );
FlushFileBuffers( hFile );
CloseHandle( hFile );
// #END

아래에 PC 의 전원을 꺼버리는 험악한 방법을 사용하지 않고 이 동작을 확인할 수 있는 코드를 소개한다.

while( true )
{
    FILE *fp = fopen( "test", "wb" );   // #1
    fwrite( "data", 4, 1, fp );         //
    //fflush( fp );                     // #2
    fclose( fp );
}

위의 코드를 수행해 보고 HDD 램프를 지켜보라. 간헐적으로 깜빡일 것이다. fclose() 만으로는 실제 disk 에 기록이 되지 않는다는 얘기다. #2 의 주석을 제거해도 마찬가지다. "wb" 옵션을 "wbc" 로 바꾸고 #2 의 주석을 제거해야 비로소 HDD 램프가 미친듯이 깜빡이고 시스템이 엄청나게 느려지는것을 확인할 수 있을 것이다. Win32 API 도 마찬가지.

어찌보면 사소한 문제로 보일수도 있지만 어플리케이션의 업데이트 루틴을 작성하는 사람이라면 꼭 알아두어야 한다. 유저가 수만명 단위로 늘어나게 되면, 분명히 발생하기 때문이다. 나역시 직접 당해보기 전까지는 fflush() 를 하고 파일 핸들을 닫으면 당연히 disk 에 저장 될거라고 알고 있었기 때문에 이것을 알아내는데에 고생을 좀 했다. 부디 이 포스팅을 읽는 분들은 같은 삽질을 하지 마시길...

사용자 삽입 이미지

간만의 마우스 지름

VS2005 실행모듈 배포하기 참고


sp1을 깔았더니 redist dll들이 바껴버렸다..
으악!!

redist셋업파일로 설치하도록 한 경우는 상관이 없지만..
그전에 배포를 직접 파일을 포함해서 배포하는 형태였기 때문에 문제가 심각하다.
XP의 경우는 폴더를 나누고 manifest를 직접 구성을 해주면 vc2005버전 dll과 vc2005sp1버전 dll을 동시에 쓸 수 있지만 2000의 경우는 manifest를 생까..; 주시기 때문에 그런식의 배포가 불가능하다..;;;

그럼 그전에 2005로 배포하고 있던 모든 dll및 실행파일을 sp1으로 통일시켜버리면 간단하지만..;
다시 싹 빌드하는데 시간도 오래걸리고 소스없는-_-(가이블..;)dll들이 있어서 피곤...;;
소스없는 dll 새버전으로 해달라고 하면 sp1에서 밖에 안된다고 안해주면 어쩌지..;

'잡담' 카테고리의 다른 글

요즘  (5) 2007.01.24
티스토리 탁상용 달력을 받게되다.  (5) 2007.01.11
2007년 토정비결  (1) 2006.12.14
티스토리 새기능중에 키워드기능  (4) 2006.12.10
allgd.net의 데브루키..라는 네이버 카페.  (6) 2006.11.19

'자료 > Program' 카테고리의 다른 글

bugtrap bugfix  (2) 2007.04.10
bugtrap 소스공개  (6) 2007.04.10
스칼렛 2.0 - dds와 알파채널을 지원 하는 이미지뷰어  (0) 2006.10.18
멋진 HeightMap툴  (0) 2006.10.11
Catch all bugs with BugTrap!  (3) 2006.08.03

- 운세총론
청룡이 하늘로 오르니 조화가 무궁하여 변화가 심한 시기입니다
이미 여의주를 얻었으니 앞으로는 길상이 크게 될 것입니다
몸이 고단하더라도 시기를 얻었으니 분주하게 움직여야 합니다
길방이 있으면 이사를 하여도 좋은 시기입니다
가을이 되어도 추수하지 않으면 얻을 것이 없듯이 노력하지 않고 얻어지는 것은 없습니다
분주하여 움직이면 모두가 재물이요 인연이니 시간을 헛되이 낭비하는 일이 없도록 하셔야 합니다
부와 명성 중 택하여 얻어야 할 시기가 있으니 둘 중 하나는 버려야 할 것입니다
얻고자 하는 것을 분명히 하여 택함에 어려움이 없도록 하시고 버려야 얻음을 지혜로 깨닫기 바랍니다
지위를 얻을 징조가 보이니 책임이 높아 질 것입니다
만약 지위가 높아지지 않으면 횡재가 끼어 있으니 한 해중 큰 기쁨을 누릴 때가 반드시 찾아 올 것입니다
얻기 위하여 버린 것에 미련을 두면 봄이 와도 싹이 트지 않을 것이니 버린 것은 다시 돌아보지 않는 것이 현명함이 될 것입니다
겨울은 봄을 준비하는 시기임을 인지하시고 어려울 때 부귀를 준비하는 지혜로 삼으시면 얻은 것을 지키는데 아무런 어려움이 없을 것입니다

* 에.. 머 대략 좋은것 같다..지만 사실 토정비결이 안좋은 경우가 없었어서-_-;
* 지위가 높아지지 말고(제발-_-) 횡재가 오시길-_-;;


-----------------------------------------

머 토정비결을 믿는 편도 아니고 안좋다고 나와도 잘되고 좋다고 나와도 안좋을때도 많으니..
머 심심풀이다.

참고로 중간중간 상용화와 관련된 얘기는 내운세로 봤을때는 이때쯤이겠다..라는 얘기지..
실제 일정하고는 완전 상관없으시다..;;

내가 돈버는거보단 사장님이 버는게 훠월씬-_- 크실테니 사장님 금전운에 맞춰서 하는게..쿨럭-_-;;

대략 Ssook Path Engine라는 이름이다..;
사실은 지형데이터이지만 Level이란 네이밍은 지형렌더링쪽에 쓰고 있고, Space란 네이밍은 실제 폴리곤용 네이밍에 쓰고 있는데다..공간 데이터도 아닌지라..;;
마땅히 쓸 네이밍이 없어서 결국 Path라는 네이밍을 썼다..;

알고리즘의 내용은 Multi Height Tile정도가 되겠다.
여러개의 높이를 가지고 있는 타일 데이터다..

김성민씨의 Space Filling Volume을 보고 나니 이럴바엔 예전 2D때 쓰던 방식을 그냥 쓰는게...으흠? 그거 괜찮겠는걸... 하고 만든 내용이다..
사실 만든 내용이라기보단 말한대로 2D때 많이 쓰던 내용이다.
( 아닌가 나만 쓴 내용인가-_-a 2D때도 어디서 보고 만든건 아니긴 했지만 )

일단 잡설은 접어두고 스샷부터 보쟈
사용자 삽입 이미지

대충 이런식이다.
보면 다리위와 아래에 높이 데이터가 있고 오브젝트가 있는부분은 높이 데이터가 없다.
그냥 타일로 나누었고, 하나의 타일은 갈 수 있다/없다가 아니라 높이 값을 가진다.
그리고 여러개의 높이 값을 가지고, 그 높이 값을 비교해서 갈 수 있다/없다 를 판단한다는 내용이다.

내용이 긴 관계로 자세한 내용을 보실분은 more를 클릭해서 보세요.


어쨋건 전에 패스엔진을 고려해서 테스트 해보았는데 위에 있는 내용처럼 높이에 대한 처리라던가 메모리라던가 하는 내용들이 감당이 안되서 만든 시스템인데..
필요하신 분들이 있을까봐 정리해서 공개해둔다.

'자료 > 내자료' 카테고리의 다른 글

mpl::is_vector  (2) 2009.02.17
SPE 길찾기용 지형구조 - V2  (1) 2007.02.22
게임을 위한 GUI모듈  (4) 2006.07.31
MSB/LSB template  (0) 2006.05.18
is_template  (0) 2006.05.10
글쓰기를 보니 키워드라는게 있어서 테스트를 해보았다.
색깔표시가 되고 클릭하면 그 글의 내용과 그 키워드가 들어간 글을 검색해주었다.

하지만 마우스를 가져갔을때 아무런 표시가 되지 않아서 클릭을 해야한다는걸 알기 힘들고..
(검색을 해보니 마우스커서가 클릭용으로 바뀌는 블로그도 있던데 현재 기본스킨을 사용하는데 표시가 안되는건 지원안되는거나 마찬가지..)
이전 글에는 적용되지 않고 그 글보다 나중에 쓴 글에만 적용이 되었다.
혹시나 저장 날자나 새로 저장할때 먼가 데이터가 들어가나 싶어서 등록일자 갱신으로 다시 저장했는데도 인식이 되지 않았다.

흐음..위에 두사항은 좀 수정이 되었으면 좋겠는데..

그리고 다른 분이 써놓으셨지만
여러개의 키워드를 하나의 글로 연결시키는 기능도 있으면 좋겠다.

'잡담' 카테고리의 다른 글

vs2005 sp1 실행모듈배포 좌절..;  (0) 2006.12.19
2007년 토정비결  (1) 2006.12.14
allgd.net의 데브루키..라는 네이버 카페.  (6) 2006.11.19
아.. 바쁘다..  (0) 2006.11.13
티스토리 + GoogleApp 설정 완료  (4) 2006.10.16

'지르기 > 게임' 카테고리의 다른 글

[XBOX360] 블루드래곤 완전환글판  (2) 2007.05.22
[PC] 커맨드앤컨커3 타이베리움 워  (2) 2007.03.29
기어스 오브 워 : 티셔츠 한정판  (3) 2006.11.01
오오카미 영문판  (2) 2006.10.27
[PSP] 기타루맨  (0) 2006.06.28

+ Recent posts