웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
윈도우, 리눅스, 맥서버에서 이슈트래커 동작가능하게 하기
2009.03.02 14:44
현재 이슈트래커 기능은 리눅스 서버에 설치된 제로보드에서만 정상적으로 동작이 됩니다.
만일, 윈도우나 맥서버에 설치된 제로보드에서 이슈 트래커를 정상적으로 이용하려면 약간의 코드를 수정해야 합니다.
이러한 문제가 발생하는 원인은 각 운영 체제 별로 줄바꿈 문자에 대한 처리가 틀려서 나타나는 현상입니다.
각 운영체제별 줄바꿈 문자는 아래와 같이 처리됩니다.
윈도우 : 캐리지 리턴(Cr) & 라인 피드(Lf)
리눅스 : 라인 피트(Lf)
맥 : 캐리지 리턴(Cr)
그러므로 줄바꿈 문자를 처리하기전에 한가지 형식으로 통일 후 처리하도록 코드를 수정하면 모든 운영체제에서 사용가능하게 됩니다.
xe설치경로/modules/issuetracker/classes/svn.class.php 파일에서 '\n' 으로 각 문자열을 분리하기 전에 치환함수를 이용해서 처리 후 분리하도록 아래의 소스코드에서 18라인과 같이 소스코드를 수정해야 합니다.
function getList($path, $revs = null) { if(substr($path,0,1)=='/') $path = substr($path,1); if(strpos($path,'..')!==false) return; $command = sprintf( '%s --non-interactive %s --config-dir %s list %s%s%s', $this->svn_cmd, $this->_getAuthInfo(), $this->tmp_dir, $this->url, $path, $revs?'@'.(int)$revs:null ); $buff = $this->execCmd($command, $error); // 운영체제 별 줄바꿈 문자 처리가 틀리므로 \n으로 통일시키기 $buff = str_replace(array("\r\n", "\r"), "\n", $buff); $list = explode("\n",$buff); if(!count($list)) return null; $file_list = $directory_list = $output = array(); foreach($list as $name) { if(!$name) continue; $obj = null; $obj->name = $name; $obj->path = $path.$name; $logs = $this->getLog($obj->path, $revs, null, false, 1); $obj->revision = $logs[0]->revision; $obj->author = $logs[0]->author; $obj->date = $this->getDateStr("Y-m-d H:i",$logs[0]->date); $obj->gap = $this->getTimeGap($logs[0]->date); $obj->msg = $this->linkXE($logs[0]->msg); if(substr($obj->path,-1)=='/') $obj->type = 'directory'; else $obj->type = 'file'; if($obj->type == 'file') $file_list[] = $obj; else $directory_list[] = $obj; } return array_merge($directory_list, $file_list); }
코드에서 위의 18라인에서 처럼 추가해야 하는 부분이 총 3군데가 있습니다.
찾아서 직접수정하기 힘드시면 첨부된 svn.class.php 파일을 해당 위치에 덮어씌우기 하시면 됩니다.
태그 연관 글
- [2013/01/02] 묻고답하기 SVN, 트렁크, 브런치, 구글프로젝트
- [2012/01/06] Blog XE core 10000리비전 돌파... *11
- [2011/08/29] 묻고답하기 xe 1.4.7 정도에서 svn 연동 사용이 가능한지요?
- [2011/05/17] 웹마스터 팁 XE 프로젝트 호스팅 SVN 내용을 Google 프로젝트 호스팅으로 이전하기
- [2011/03/24] Blog XE - SVN 배포 절차 변경. *3
댓글 0
제목 | 글쓴이 | 날짜 |
---|---|---|
통합검색의 기본값을 '제목' 이 아니라 '제목+내용' 으로 하고 픈 경우 [2] | sejin7940 | 2017.02.24 |
반응형 기본 개념 | Ansi™ | 2017.02.27 |
다음 우편번호 5자리 적용 [1] | 뒤늦게입문 | 2017.03.15 |
비밀글에 대해서도 썸네일이미지는 출력되도록 하고 싶으면 | sejin7940 | 2017.04.12 |
사용자정의에서 URL형, email형, textarea 형등에서도 기본값 인식하게 하려면 | sejin7940 | 2017.04.25 |
SASS? CSS확장판 | 키큰아이 | 2017.05.09 |
포인트 적립 횟수 일별 제한하기 (게시글 및 댓글 작성시) | Redback | 2017.06.18 |
스케치북 갤러리 제목에 카테고리 추가하기. [1] | 보보2 | 2017.07.17 |
폰갭 버전 업데이트 후 push 안되시는 분들께.. | 한꼬마 | 2017.08.09 |
폰갭 자기 전화번호 추출 | 한꼬마 | 2017.08.14 |
글등록시 포인트차감으로 등록불가 설정시 개별설정이 아닌 전체 설정 기준으로만 사용할 경우는 적용 안 되는 버그 수정법 | sejin7940 | 2017.08.23 |
폰갭 모바일 사진 분석 부터 번역까지 | 아토피뉴스 | 2017.10.16 |
모바일앱, 모바일 어플에서 카카오톡, 카카오 스토리 앱으로 공유하기 | 한꼬마 | 2017.10.31 |
성공적인 홈페이지 제작을 위해 점검해야 될 사안 | 웹369 | 2017.12.05 |
bitnami ssl 클라우드플레어 설정법 | 키큰아이 | 2017.12.06 |
XE에 채팅 연동 하기 [1] | younggyo | 2017.12.15 |
css 팁 : 색상코드 검색이필요할때 | Dotcomsoft | 2018.01.17 |
css팁 : 웹폰트 저장소 | Dotcomsoft | 2018.01.17 |
게시글 상하단에 광고삽입하기 | veplay2 | 2018.03.08 |
요즘 제가 jquery 웹앱 솔루션을 개발했습니다. [2] | 안드류KIM | 2018.04.03 |