{{{#!html Emacs에서 KLDP.net 서비스의 Subversion(SVN)이용하기
}}} [[TableOfContents]] == 이 문서는 == [Emacs]의 subversion 확장을 이용하여 kldp.net 서비스에 등록된 프로그램을 다운로드/수정/업로드 하는데 도움이 되기 위한 목적으로 작성되었습니다. == [http://kldp.net KLDP.net ] == KLDP.net 는 Open Source 개발자에게 제공되는 무료 서비스로서, Subversion, 메일링 리스트, 버그 트래킹, 공개 게시판, 임무 관리, 웹사이트 호스팅, 영구적인 파일 아카이브, 백업 서비스를 포함한 완전한 웹기반 관리 인터페이스를 제공합니다. == Linux 환경에서 Emacs + Subversion 사용하기 == === 설치 및 설정 === Emacs 와 Subversion을 연동해서 kldp.net의 프로젝트를 수정하기 위해서는 다음 프로그램들을 설치해야 한다. * Emacs * Emacs Extension - [http://www.xsteve.at/prg/emacs/psvn.el psvn.el] * subversion * ssh ==== Debian/Ubuntu 환경에서 설치 ==== 다음의 명령으로 간편하게 설치가 가능하다. emacs22는 안정버전은 아니지만 최신의 여러 기능을 포함하고 있으며 큰 문제 없이 사용가능하므로 직접 설치해보는것도 좋다. ssh-askpass는 ssh로그인을 하는데 꼭 필요하므로 설치해주어야 한다. 다운로드 받은 psvn.el을 로드하는 것은 [EmacsInstallScript]를 참고한다. {{{ shell > apt-get install emacs21 emacs21-bin-common emacs21-common emacs21-el shell > apt-get install subversion subversion-tools shell > apt-get install ssh openssh-client ssh-askpass shell > wget http://www.xsteve.at/prg/emacs/psvn.el; mv psvn.el Emacs_라이브러리_디렉토리 }}} ==== Gentoo 환경에서 설치 ==== ==== Redhat / Fedora 환경에서 설치 ==== === Checkout하기 === Emacs를 실행하고, *Messages* 창을 통해 psvn이 정상적으로 로드된것을 확인한다. Emacs실행이 정상적으로 완료되었으면 다음 명령을 통해 Subversion에 체크아웃한다. 각 프로젝트의 subversion 서버 주소는 프로젝트 홈페이지의 SCM(Source Code Management) 디렉토리에서 확인할 수 있다. {{{ Emacs > M-x svn-checkout Emacs - Checkout from repository Url: svn+ssh://사용자명@kldp.net/svnroot/프로젝트명 Emacs - Checkout to directory: 소스파일을 다운로드할 디렉토리 }}} 위와 같이 명령을 내리면 Emacs 상태표시창이 "EShell running checkout" 으로 바뀌고 곧 작은 윈도우 창이 생기면서 비밀번호를 물어온다. 이때 정상적으로 비밀번호를 입력하여도 다시 비밀번호 입력창이 뜨는데 당황하지 말고 비밀번호를 다시 입력한다. 비밀번호는 총 3번 입력해야 한다. 이러한 비밀번호 입력과정이 번거로우면 서버에 ssh키를 넣어두고 ssh-agent를 사용하는 방법도 있다. 자세한 방법은 [UsingSshAgent] 또는 [DocbookSgml/SSH-KLDP]를 참고하기 바란다. == Win32 환경에서 Emacs + Subversion 사용하기 == === 처음 시도하였으나 실패한 방법 === 가능한 리눅스와 유사한 환경에서 Emacs+Subversion을 사용하기 위해 다음과 같은 방법을 시도하였으나 실패하였다. ==== 설치 및 설정 ==== * Emacs Win32 [EmacsWin32Install] * psvn - Emacs Subversion 확장 다운로드 : http://www.xsteve.at/prg/emacs/psvn.el * Subversion Win32 홈페이지 : http://subversion.tigris.org/ * ssh Win32 홈페이지 : http://sshwindows.sourceforge.net/ 위의 프로그램을 각각의 링크에서 다운로드하여 설치한다. 다운로드한 psvn.el은 emacs가 읽을 수 있는 디렉토리에 넣고 M-x load-lib명령을 통해 emacs에서 불러들인다. emacs에서 .el파일을 로드하는 것에 대한 자세한 설명은 [EmacsInstallScript]에서 찾을 수 있다. 설치된 ssh를 이용하여 키를 생성하고 서버에 업로드하여 자동으로 로그인할 수 있도록 한다. ssh 키를 이용하여 비밀번호 입력 없이 서버에 접속하는 자세한 방법은 [UsingSshAgent] 또는 [DocbookSgml/SSH-KLDP]에 설명되어 있다. {{{ # 시작버튼 > 실행 > cmd을 이용해 열은 콘솔창에서 다음을 실행한다. shell > ssh-keygen -t rsa shell > cd .shell shell > scp id_rsa.pub user@kldp.net:.ssh/authorized_keys }}} ==== 실행 및 결과분석 ==== 윈도우의 콘솔창에서 다음 명령을 실행하여 Subversion + ssh가 정상적으로 동작하는 것을 확인해 본다. 마지막에 svn명령을 내렸을때 서버에 접근할 수 있는 비밀번호를 세번 묻는데, 이는 처음 입력한 비밀번호가 잘못되어서 다시 묻는것이 아니므로 당황하지 말고 비밀번호를 다시 입력하도록 한다. {{{ shell > cd c:\testdir shell > svn checkout svn+ssh://사용자명@kldp.net/svnroot/프로젝트명 }}} Emacs에서 psvn을 사용하여 svn서버에 접속하는 것을 시험해 본다. psvn.el은 이미 로드되어 있는 상태여야 한다. {{{ Emacs > M-x svn-checkout svn://사용자명@kldp.net/svnroot/프로젝트명 }}} 위의 시험을 통해 Emacs + psvn, ssh + subversion이 정상적으로 동작함을 확인하였다. 그러나 다음 명령을 통해 Emacs + psvn => ssh + subversion의 연동을 시험해보면 제대로 동작하지 않는 것을 알 수 있다. 확인해 보면 "Pseudo-terminal will not be allocated because stdin is not a terminal" 라는 에러메세지와 함께 ssh접속에 실패하고 있는 것을 알 수 있다. Emacs에서 ssh와 같은 외부프로그램을 실행하는데 장애가 있는 것으로 생각된다. {{{ Emacs > M-x svn-checkout svn+ssh://사용자명@kldp.net/svnroot/프로젝트명 }}} === 대안책 === sshwindows + subversion Win32를 Emacs와 연동하지 않고, 별도의 Subversion 프로그램을 사용한다. 가장 널리 알려지고 사용이 쉬운 것은 tortoisesvn( http://tortoisesvn.tigris.org ) 으로, 한글 확장팩까지 있는 자유 소프트웨어이다. 자세한 사용 예는 다음 링크에서 볼 수 있다. i. [TortoiseSVN] i. [TortoiseSVN-USE] == 참고 자료 == * http://www.emacswiki.org/cgi-bin/wiki/SubVersion * http://sshwindows.sourceforge.net/ * [UsingSshAgent] * [DocbookSgml/SSH-KLDP] * http://tortoisesvn.tigris.org/ ---- '''문서 변경사항''' * 처음 만듦: 아빠곰 20070522 ---- See also: * EmacsTinyTips ---- CategoryEmacs