2009-03-08 2 views
1

Trac 용 플러그인을 작성 중입니다. 플러그인이 Git post-receive 훅에서 데이터를 수신 할 때마다 타임 라인에 이벤트를 추가하고 싶습니다.Trac 이벤트 타임 라인에 어떻게 이벤트를 추가합니까?

the timeline API에서 보니 새로운 이벤트 소스 만 추가 할 수 있습니다. 따라서 데이터를 검색하고 표시하는 것은 귀하의 책임입니다. 내 이벤트를 기존 소스에 저장하는 것이 좋습니다.

어디에서 Trac API를 사용하여 이벤트를 저장해야합니까?

ps : 내 계획은 원격 저장소와 원격 웹 인터페이스를 Github과 같은 코드에 의존하는 것입니다.

pss : 타임 라인은 메인 프로젝트 git 저장소와 그 클론의 커밋을 표시해야합니다. 프로젝트에 중요한 모든 저장소의 사본을 호스팅하고 싶지 않습니다.

답변

2

타임 라인 API는 필요한 것보다 높은 레벨입니다. ChangesetModule에는 일반 VCS 구현이 있으며 변경 집합 (이벤트) 검색 자체를 VCS 관련 Repository에 위임합니다. 따라서 대신 the versioncontrol API을 구현해야합니다.

이 API는 Trac이 타임 라인을 구성 할 때 VCS에 쿼리하는 "끌어 오기 모델"용으로 설계되었습니다. "푸시 모델"(왜?)을 선호한다면 the CacheRepository implementation을 기본으로 삼아 이벤트를 캐시에 삽입하거나 이벤트 저장소를 처음부터 작성하는 방법을 시도해 볼 수 있습니다. 이것이 기존 디자인의 단점에 반하는 것이며, 아마도 불필요한 추가 노력 일 것임을 알아 두십시오.

정상적인 모델을 대신 사용하는 것이 좋습니다. 더 쉽고 깨끗합니다. the Subversion implementation 또는 the Mercurial implementation을 참조로 사용하면 을 사용하여 git과 대화 할 수 있습니다.

+0

프로젝트 및 모든 복제본의 활동을 추적하기 전에 밀어 넣기 모델을 사용할 것입니다. – Dinoboff

관련 문제