웹마스터 팁

현재 이슈트래커 기능은 리눅스 서버에 설치된 제로보드에서만 정상적으로 동작이 됩니다.

만일, 윈도우나 맥서버에 설치된 제로보드에서 이슈 트래커를 정상적으로 이용하려면 약간의 코드를 수정해야 합니다.

이러한 문제가 발생하는 원인은 각 운영 체제 별로 줄바꿈 문자에 대한 처리가 틀려서 나타나는 현상입니다.

각 운영체제별 줄바꿈 문자는 아래와 같이 처리됩니다.

윈도우 : 캐리지 리턴(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 파일을 해당 위치에 덮어씌우기 하시면 됩니다.
태그 연관 글
  1. [2013/01/02] 묻고답하기 SVN, 트렁크, 브런치, 구글프로젝트 by Apollos2304
  2. [2012/01/06] Blog XE core 10000리비전 돌파... by XE *11
  3. [2011/08/29] 묻고답하기 xe 1.4.7 정도에서 svn 연동 사용이 가능한지요? by enzoy
  4. [2011/05/17] 웹마스터 팁 XE 프로젝트 호스팅 SVN 내용을 Google 프로젝트 호스팅으로 이전하기 by 난다날아
  5. [2011/03/24] Blog XE - SVN 배포 절차 변경. by XE Developers *3
제목 글쓴이 날짜
통합검색의 기본값을 '제목' 이 아니라 '제목+내용' 으로 하고 픈 경우 [2] sejin7940 2017.02.24
반응형 기본 개념 Ansi™ 2017.02.27
다음 우편번호 5자리 적용 [1] file 뒤늦게입문 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] file 안드류KIM 2018.04.03