'Trac'에 해당되는 글 25

  1. 2014.03.12 [Trac] Ticket 메일 템플릿 변경하기
  2. 2012.09.07 [Trac] WikiRename Plugin 한글페이지 수정 안되는 문제 수정
  3. 2012.09.07 [Trac] Wiki 페이지 이름 변경하기
  4. 2012.05.16 [Trac] 로그
  5. 2012.04.25 [Trac] 템플릿 엔진
  6. 2012.04.25 [Trac] 티켓 작성시 사용자가 표시되지 않을 때
  7. 2011.10.27 Trac 리포트 활용
  8. 2011.10.07 Trac 소스 브라우저에서 한글이 깨지는 경우
  9. 2011.08.16 티켓을 안쓸수가 없다.
  10. 2011.06.29 SVN 저장소를 TOW로 옮기기
  11. 2010.05.20 Trac Macros
  12. 2010.03.09 Trac On Windows 설치
  13. 2010.02.23 Ticket에 소스변경사항 링크걸기
  14. 2010.02.21 중복된 티켓 처리하기
  15. 2010.02.17 문서화를 통한 협업(?) 사례
  16. 2009.12.16 Trac에 메일 설정하기 1
  17. 2009.10.22 [Trac] ExcelViewerPlugin
  18. 2009.09.09 Trac 메뉴 추가하기
  19. 2009.09.03 Trac Ticket에 필드 추가하고 리포트 생성하기
  20. 2009.09.01 Trac Links
  21. 2009.08.30 협업을 위한 도구
  22. 2009.08.28 위키 문법
  23. 2009.07.13 [Trac] TOW 사용자 관리
  24. 2009.07.12 [Trac] TOW 권한 관리
  25. 2009.07.10 Trac On Windows 설정

[Trac] Ticket 메일 템플릿 변경하기

TOW\Python\share\trac\templates\ticket_notify_email.cs Ticket 링크가 밑에 있어서 불편하다. 위에도 추가

[Trac] WikiRename Plugin 한글페이지 수정 안되는 문제 수정

WikiRename Plugin에서 한글 위키페이지를 수정하려면 에러가 난다.

Traceback (most recent call last):
  File "C:\TOW\Python\Lib\site-packages\trac\web\main.py", line 406, in dispatch_request
    dispatcher.dispatch(req)
  File "C:\TOW\Python\Lib\site-packages\trac\web\main.py", line 237, in dispatch
    resp = chosen_handler.process_request(req)
  File "C:\TOW\Python\lib\site-packages\tracwebadmin-0.1.2dev_r6060-py2.4.egg\webadmin\web_ui.py", line 119, in process_request
    path_info)
  File "build\bdist.win32\egg\wikirename\web_ui.py", line 54, in process_admin_request
  File "build\bdist.win32\egg\wikirename\util.py", line 71, in rename_page
  File "C:\TOW\Python\lib\urllib.py", line 1117, in quote
    res = map(safe_map.__getitem__, s)
KeyError: u'\uc8fc'

Error with wiki page names including non-ascii characters 를 참고해서 패치를 적용한다.
(util.py를 수정하면된다.)

플러그인을 다시 설치하고 Trac을 재시작한다.


[Trac] Wiki 페이지 이름 변경하기

WikiRename Plugin

0.12부터는 기본적으로 포함되는거 같네.

- 설치
C:\TOW\download\ 에 다운로드받아서 압축을 푼다.
한글 위키 페이지가 변경되지 않는 버그가 있는데 패치한다.

C:\TOW> easy_install.bat C:\TOW\download\wikirenameplugin\0.10
...
Installed c:\tow\python\lib\site-packages\tracctxtnavadd-1.1_r1-py2.4.egg
Finished processing dependencies for tracwikirename==1.2


- 관리페이지에서 활성화시킴. [todo] ini설정을 안해도 여기서만 활성화시키고 trac을 재시작하면 되는거 같다.


- trac.ini 수정
[components]
wikirename.* = enabled

- 페이지 이름을 변경하면 변경이력과 첨부파일을 유지하면서 변경된다.
변경이력에 이름 변경 이력이 남는다.


[Trac] 로그

티켓과 관련된 메일이 오지 않는다.

C:\TOW\TracRepo\Projects\HelloTOW\log 에 로그 파일이 있다.
2012-05-16 09:04:37,306 Trac[web_ui] ERROR: Failure sending notification on creation of ticket #21: (535, '5.7.1 Username and Password not accepted. Learn more at\n5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 xsfgnksligb.13')
Traceback (most recent call last):
  File "C:\TOW\Python\Lib\site-packages\trac\ticket\web_ui.py", line 207, in _do_create
    tn.notify(ticket, newticket=True)
  ...
  File "C:\TOW\Python\Lib\site-packages\trac\notification.py", line 287, in begin_send
    self.server.login(self.user_name, self.password)
  File "C:\TOW\Python\Lib\smtplib.py", line 591, in login
    raise SMTPAuthenticationError(code, resp)
SMTPAuthenticationError: (535, '5.7.1 Username and Password not accepted. Learn more at\n5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 xsfgnksligb.13')
2012-05-16 09:05:18,681 Trac[iniadmin] DEBUG: Updating trac.ini
2012-05-16 09:05:42,806 Trac[notification] DEBUG: Sending SMTP notification to smtp.gmail.com on port 587 to [u'1234@gmail.com']

메일 계정 암호가 틀려서 메일이 나가지 않고 있었다.

[Trac] 템플릿 엔진

Trac 0.10까지는 Clearsilver 사용
Trac 0.11 이후부터는 Genshi 사용

[Trac] 티켓 작성시 사용자가 표시되지 않을 때

설정에 restrict_owner를 true로 두면 다른 사람에게 할당할 때 입력란이 아닌 셀렉트로 나와서 지정하게 할 수 있다.

새로운 프로젝트를 생성하고 티켓을 작성하는데 방금 추가한 사용자가 보이지 않는다.
프로젝트를 다시 생성해보기도 하고 다른 사용자를 추가해 봐도 나오지 않는다.
플러그인이 이상한가 싶기도 하고.

여차저차 하던 중에 새로 추가한 사용자가 로그인한 뒤에는 목록에서 보이는 것을 확인했다.
윽...오전 내내 이걸로 검색했네.



Trac 리포트 활용

- 할일, 체크리스트를 티켓으로 정리하고 적절한 리포트를 통해서 보면 관리하기가 편하다.

- 닫힌 티켓은 따로 보여지도록 Resolution별로 그룹을 나눈다.
- 닫힌 티켓도 보여지도록 한다.
- 마일스톤이 있다면 지정한다.


Trac 소스 브라우저에서 한글이 깨지는 경우

Admin - trac.ini - trac - default_charset 을 맞게 설정한다.
소스 인코딩과 동일하게 지정하면 됨.

티켓을 안쓸수가 없다.


일년에 한번씩 하는 작업인데, 기억이 잘 나지 않는다.
누구에게 연락하고 신청은 누가 했는지.
티켓을 뒤져 본다.

SVN 저장소를 TOW로 옮기기

TOW를 사용하면서 기존에 사용하던 SVN 저장소를 가져왔다.

1. SVN 서버에서 옮기려는 저장소를 복사해서 C:\TOW\SvnRepo\Projects\PROJECT에 옮긴다.
2. 싱크를 맞춘다.
C:\TOW> trac-admin PROJECT resync


끝~

- 2016-06-21 Eclipse에서 Commit하고 History까지 확인했는데, Trac에서는 NoSuchChangeset이 발생함.
이런 경우에도 resync를 하면 해결된다.


Trac Macros

- JSPWiki의 TableOfContents와 같은 기능을 찾아보니 PageOutline 매크로가 있다.

= 테스트 프로젝트임 =

[[PageOutline]] //기본적으로 모든 heading을 대상으로 한다.

[[PageOutline(2-4, Title)]] //heading이 2에서 4인 것으로 아웃라인을 만들고 제목은 Title이라고 한다.

== Heading 2 ==

==== Heading 4 ====


- Image
[[Image(photo.jpg)]]
[[Image(http://some.com/imgs/photo.jpg)]]
[[Image(photo.jpg, 300)]] //width
[[Image(OtherWikiPage:deploy5.png)]] //다른 페이지의 이미지

- Trac Macros

Trac On Windows 설치

- http://sourceforge.net/projects/traconwindows/
TOW-0.2.2-Standard-ko.ZIP (Trac 0.10.4)

- 설치는 C:/에 압축을 풀기만 하면 된다.

- 프로젝트, 사용자 생성

create-trac-repo.bat //이거 변경했음->////

//프로젝트 생성
> add-project PROJECT 

//사용자 관리
//admin 제거 : %TOW%/SvnRepo/Projects/trac.htpasswd 에서 제거한다.

//anonymous의 권한을 없앤다.     //원본 배포파일하고 비교===git에 올려두는게 좋은지..
> remove-perm PROJECT anonymous *
> add-user USER PASSWORD //비밀번호 변경도 가능

> list-perm PROJECT
admin      TRAC_ADMIN
admin      XML_RPC
anonymous  BROWSER_VIEW
anonymous  CHANGESET_VIEW
...

//해당 프로젝트에서 사용자에 대한 권한을 준다. 참고
> add-perm PROJECT USER PERMISSION //대소문자 구분 주의

 

Ticket에 소스변경사항 링크걸기

티켓을 처리하고 소스변경사항을 링크를 걸어둔다.
캬~좋다.



중복된 티켓 처리하기

어떤 티켓과 중복되었는지 알려주자.
내용은 지워서 더이상 신경쓰지 않도록 한다.


티켓을 삭제하는 플러그인도 있긴 한데...티켓을 신중하게 작성하자.


문서화를 통한 협업(?) 사례

  1. 데이터 수정에 대한 요청이 들어왔는데 해당 업무에서 손을 놓은지 오래 되어서 기억이 가물가물하다.
    Trac에서 검색해보니 비슷한 경우가 나온다.
  2. 업무에 대해 진행상황이 어떤지 확인하는 전화가 왔다. 진행상황에 대해 잘 알지 못하고 있는데 일단 Trac 위키에 기록되어 있는 진행상황을 보고 알려줬다.(진행상황에 대해 주기적으로 보고하라고 해야겠다.)


Trac에 메일 설정하기

Gmail 을 이용해서 설정했음.

trac.ini

[notification]
always_notify_owner = true //담당자에게 메일을 보낼지 여부
always_notify_reporter = false //작성자에게 메일을 보낼지 여부
always_notify_updater = false //변경자에게 메일을 보낼지 여부
mime_encoding = base64
smtp_always_bcc = //모든 티켓에 대한 고지 메일을 받을 주소
smtp_always_cc = //모든 티켓에 대한 고지 메일을 받을 주소, 여러명일 경우 쉼표로 구분하면 된다.
smtp_default_domain = gmail.com
smtp_enabled = true
smtp_from = trac@localhost //보내는 사람 메일 주소(안넣어도 됨)
smtp_password = 111222
smtp_port = 587
smtp_replyto = trac@localhost //회산받을 메일 주소(안넣어도 됨)
smtp_server = smtp.gmail.com
smtp_subject_prefix = __default__
smtp_user = xxx.trac@gmail.com //전송에 사용할 메일 계정
use_public_cc = false
use_short_addr = false
use_tls = true

 

- 각 사용자들의 메일 주소 등록하기
사용자 생성시 수정하지 않았다면 각 사용자가 로그인해서 환경설정(우측상단)에서 자신의 메일 주소를 설정할 수 있다.
프로젝트마다 설정해야 함.

?티켓 닫으면서 comment를 달았는데 전달이 되나?
안되는거 같은데 위 설정에 있는거 같다.

[Trac] ExcelViewerPlugin

2009-11-24 조금 사용해보다가 엑셀프로그램으로 보는것이 나아서 제거했음.

- ExcelViewerPlugin

  1. xlrd 설치
    download\xlrd-0.6.1> C:\TOW\python setup.py install

  2. 플러그인 설치
    > easy_install download\excelviewerplugin\0.10

이미 업로드된 파일된 파일은 미리보기가 안된다.

Trac 메뉴 추가하기

- http://trac.edgewall.org/wiki/TracNavigation
Trac 0.11 부터는 설정이 가능하지만 0.10에서는 플러그인(Add custom items to main and meta navigation bar)을 설치해야 한다.

- 플러그인 설치
> easy_install.bat download/navaddplugin

> easy_install http://trac-hacks.org/svn/navaddplugin/0.9 //안된다.

- 설정
//navadd 플러그인을 활성화시키면 trac.ini가 수정된다.
[components]
...
navadd.navadd.navadd = enabled

//메뉴 추가
[navadd]
add_items = projects,hot_ticket
hot_ticket.perm = TRAC_ADMIN //권한설정
hot_ticket.target = mainnav //기본값
hot_ticket.title = Hot Ticket
hot_ticket.url = /projects/HelloTOW/report/9
projects.title = Projects
projects.url = /projects

[trac]
...
mainnav = projects,wiki,timeline,roadmap,browser,hot_ticket,tickets,newticket,search
metanav = login,logout,settings,help,about

[todo] 비슷한 메뉴의 url 이 권한에 따라 다른 경우 ....어떤 메뉴의 권한이 TICKET_VIEW 이면 TRAC_ADMIN 도 가능하다. 그래서 admin 권한이 있으면 메뉴가 두개 나온다. ticket_view 권한만 있는 경우로 제한할수는 없나?

Trac Ticket에 필드 추가하고 리포트 생성하기

- Custom Ticket Fields

설정 파일 수정하고 리포트에서 보이게 할수도 있음.

Trac Links

TracLinks are a fundamental feature of Trac, because they allow easy hyperlinking between the various entities in the system—such as tickets, reports, changesets, Wiki pages, milestones, and source files—from anywhere WikiFormatting is used.

Ticket에 Wiki로 링크를 걸 수 있다. 반대도 가능.

- 첨부파일 링크
attachment:the_file.txt

//다른 위키페이지의 첨부파일 링크
attachment:the_file.txt:wiki:MyPage //안됨
attachment:wiki:MyPage:the_file.txt
[attachment:wiki:MyPage:the_file.txt 클릭하세요]
[/projects/MyProject/attachment/wiki/MyPage/한글%20파일.txt] //파일명이 한글인 경우에는 이렇게 밖에 안됨.

attachment:Settlement_SqlMap.xml#L349 //첨부파일의 라인을 지정할 수 없음. source만 가능

//다른 티켓의 첨부파일 링크
attachment:ticket:42:error.log //42번 티켓에 첨부된 error.log

- 마일스톤 링크
[milestone:demo demo 마일스톤]

- 티켓 링크
[ticket:15 Link to Ticket 15]

- 소스 링크
[source:/demo/trunk/resources/data/script/demo_function_dev.sql@3 함수 생성]
source:/demo/trunk/WebContent/WEB-INF/ibatis_config/sql/Settlement_SqlMap.xml@12#L349 //리비전 12의 소스에서 349번째 줄

http://1.2.3.4:1234/projects/XxxPrj/browser/com.xxx.ep.logon/trunk/PORTAL-INF/page.jsp?rev=383#L23
source://com.xxx.ep.logon/trunk/PORTAL-INF/page.jsp@383#L23

- 특히 SVN과 연동해서 변경사항이나 소스에 대한 링크를 걸어서 Ticket이나 Wiki에 기록할 수 있다.
[15]

http://1.2.3.4:1234/projects/XxxPrj/changeset/1
r1, [1], changeset:1, or (restricted) [1/trunk], changeset:1/trunk


- 위키 페이지 작성시 "변경사항에 대한 설명 (부가정보)"에 링크를 걸 수 있다.
#1 //티켓
http://google.com //외부 링크
[wiki:link]에서 확인 가능함. //같은 프로젝트 위키 페이지
[/projects/XxxPrj/wiki/sysinfo] //다른 프로젝트 위키 페이지

- 다른 프로젝트로 링크
[/projects/XxxPrj/wiki/sysinfo]
http://1.2.3.4/projects/XxxPrj/wiki/sysinfo //이것도 가능, 그러나 위와 같이 하자.


협업을 위한 도구

업무 개선, 협업을 위해 툴을 몇개 도입했다.

- Subversion 도입
CVS를 사용하다 Subversion을 도입했고 소스형상관리를 하도록 강제했다.
결과는 만족스러운데 아직 부족한 부분이 많다.   
  • 로컬, 개발기, 운영기 소스가 모두 다를수가 있다. 배포 프로세스를 만들어서 소스를 직접 적용하지 못하도록 해야 한다.
  • 개발도중에 수정사항이 발생한다. 브랜칭을 사용해 보자.
- 위키 사용
협업을 위해서 위키 도입
결과는 만족스럽지만 강제할 방법이 별로 없다.

- 팀 공용 주소록
구글 문서도구를 이용해서 야후에 있던 내 주소록을 올렸다.
그리고 팀원들에게 공유를 했다.
도입한지 얼마 되지 않지만 일정 규칙만 잘 지킨다면 좋은 도구가 될거 같다.

- Trac
지금 도입 준비중
꽤 쓸만할거 같다.

- Maven
개발 프로세스를 따라 하는 부분은 괜찮을거 같은데 너무 복잡하지 않나 싶다.
강력한 기능은 좋지만 진입장벽이 너무 높을 듯.

위키 문법

- JSPWiki 형식
- Trac Wiki 형식

Trac Wiki
= 유지보수 = / === 작은 제목 ===

JSPWiki
!!!유지보수 / !작은 제목

Trac Wiki
[wiki:SystemInfo 시스템 정보]
[wiki:시스템_정보 시스템 정보] //링크될 페이지 이름에 공백이 있으면 안됨
[/projects/OtherProject/wiki/시스템_정보 시스템 정보] //다른 프로젝트의 위키로 링크를 건다.
[attachment:wiki:인터페이스:인터페이스_정의서_v1.4.xlsx?format=raw 인터페이스 정의서] 참고 //Ticket에서 다른 wiki페이지에 첨부된 파일 링크

JSPWiki
[시스템 정보|SystemInfo]

Trac Wiki
 * LIST1 //* 앞뒤로 공백이 있어야 함.
  * LIST2
   * LIST3

JSPWiki
* LIST1
** LIST2
*** LIST3

Trac Wiki
 1. LIST1
 1. LIST2
  1. LIST2.1
  1. LIST2.2

JSPWiki
# LIST1
# LIST2
## LIST2.1
## LIST2.2

Trac Wiki
||Cell 1||Cell 2

- *와 테이블을 같이 사용할 때 (공백)||Cell 1... 이렇게 사용하면 보기 좋게 정렬된다.

Trac Wiki
~~취소선~~

JSPWiki
%%strike 취소선/%

Trac Wiki
'''강조'''


[Trac] TOW 사용자 관리

- 사용자 관리
add-user.bat 는 htpasswd로 암호를 생성한다.
사용자계정은 %TOW%/SvnRepo/Projects/trac.htpasswd 에 저장된다.
이 계정은 전체 TOW 시스템에서 사용된다.
httpd.conf에서 Trac과 서브버전에 대한 AuthUserFile이 trac.htpasswd로 설정되어 있다.

사용자를 추가하면 anonymous의 권한을 상속받는다.
anonymous의 모든 권한을 제거하면 이후 추가한 사용자는 아무런 권한이 없다.
권한은 각 프로젝트의 데이터베이스에 저장된다.


각 프로젝트별로 사용자에 대한 권한 관리가 가능한다.

- SVN 은 별도로 권한 설정을 해야 한다.

[Trac] TOW 권한 관리

- http://trac.edgewall.org/wiki/TracPermissions#AvailablePrivileges

- Trac 0.10.4, TOW 0.2.2a-Standard-ko 에서 테스트되었음.

- 티켓 권한
구분   권한  
 관찰자  이슈 열람만 가능
 REPORT_VIEW
 TICKET_VIEW
 @observer
 보고자  이슈 생성
 TICKET_CREATE
 TICKET_APPEND
 TICKET_CHGPROP(마일스톤, 버전 수정이 필요하다면 할당)
 @reporter
 개발자  이슈 생성, 할당받고, 처리  TICKET_MODIFY TICKET_ADMIN[각주:1]  @developer
 관리자  모든 권한  TICKET_ADMIN  @manager
  • REPORT를 수정하면 모든 사용자에게 영향을 미친다.

- 사용자에 그룹 권한을 준다.
> add-perm PROJECT USER @developer

- 권한 그룹을 생성하는 스크립트
@echo off

if "%1"=="" goto usage

call add-perm %1 @observer REPORT_VIEW TICKET_VIEW

call add-perm %1 @reporter REPORT_VIEW TICKET_VIEW TICKET_CREATE TICKET_APPEND

call add-perm %1 @developer REPORT_VIEW TICKET_VIEW TICKET_CREATE TICKET_MODIFY //또는 TICKET_ADMIN =-=> ticket_admin 권한이 아니고 이 권한만 있으면 답글이 안나옴.=>??? ticket_admin권한을 주면될거 같다.
call add-perm %1 @developer WIKI_ADMIN TIMELINE_VIEW ROADMAP_VIEW
call add-perm %1 @developer BROWSER_VIEW LOG_VIEW FILE_VIEW SEARCH_VIEW CHANGESET_VIEW
//BROWSER_VIEW는 소스 브라우저, CHANGESET_VIEW은 변경사항, FILE_VIEW는 파일내용보기 권한임.
call add-perm %1 @developer XML_RPC

call add-perm %1 @manager REPORT_ADMIN TICKET_ADMIN
call add-perm %1 @manager WIKI_ADMIN TIMELINE_VIEW ROADMAP_VIEW ROADMAP_ADMIN MILESTONE_ADMIN
call add-perm %1 @manager BROWSER_VIEW LOG_VIEW FILE_VIEW SEARCH_VIEW CHANGESET_VIEW
call add-perm %1 @manager XML_RPC

goto end

:usage
echo Usage : _add-perm-group PROJECT
goto end

:end

  1. 개발자가 작업완료후 그룹아이디로 할당을 시킬수 있어야 함. [본문으로]

Trac On Windows 설정

Ticket Type을 task를 기본으로 두는 것도 미리 설정해 두자...(아닌가? 시스템에 따라 defect가 기본으로 되어야 하나?)

- trac.ini 변경
C:\TOW\Setup\TracRepo\Projects\HelloTOW\conf\trac-std-ko.ini.tpl 파일이 복사되므로 아래 내용을 적용시켜두면 프로젝트가 생성될때 적용된다.
각 프로젝트의 Admin(어떤 플러그인을 설치해야 되는지는 잘모르겠다. TOW에는 기본적으로 있음)을 이용해서도 가능
  • [ticket] - restrict_owner를 true로 두면 사용자를 선택해서 할당할 수 있게 Select 목록으로 나온다.
  • [header_logo] - src를 비워두면 General - Basic Settings - Project - Name 이 좌측상단에 나온다.(Project - Name은 /projects(Available Projects) 에서 출력된다.)
  • [header_logo] - link를 /projects /projects/PROJECT 로 둔다.
  • [logging] - log_type을 file로 둔다.
  • [wiki] - ignore_missing_pages를 true로 둔다.(Camel형식으로 된 단어에 자동으로 링크를 걸어주는 옵션)
  • 업로드 용량 수정
  • 확인자를 추가한다.
    [ticket-custom]
    closer = text
    closer.label = 확인자

- 리포트 추가
http://pantarei.tistory.com/384

- 메뉴 추가
http://pantarei.tistory.com/397

- Subversion
  • C:\TOW\SvnTemplate\trunk, branches, tags 를 가지고 저장소를 생성, 이 디렉토리가 여기에 없으면 생성하지 않는다.
  • authz 파일 수정해야 함.
- Wiki
  • C:\TOW\Python\share\trac\wiki-default 에 있는 내용이 위키에 기본적으로 들어감.
  • WikiStart를 제목만 생성되게 하자.
- 사용자 추가
  • create-trac-repo.bat 에서 사용자 생성 부분을 삭제하거나 admin 대신 적당한 아이디를 넣는다.
- 기초 데이터 입력 수정
C:\TOW\Python\Lib\site-packages\trac\db_default.py
  • Report 수정(마일스톤에 따른 모든 티켓들 (닫혀진 것을 포함해서) 리포트에서 owner 변경)
  • Report 추가(closer가 있는 리포트)
  • Components, Milestones, 버전 : 제거
  • Priorities : 우선 순위를 쉽게 알아볼 수 있게 1, 2(default), 3으로 설정
  • Ticket Types : 해야 할일은 task, 문제점은 defect로 두자.
  • anonymous 제거
* 위 내용을 적용한 파일(처음 설치후 적용, Subversion항목 제외)

- 참고
http://trac.edgewall.org/
http://trac.tistory.com/
http://eclipseforum.net/
http://www.hosted-projects.com/trac/TracDemo/Demo