2012-02-03 2 views
0

각 푸시에서 최신 원격 수정 버전 번호를 원격 트리 파일에 커밋하려고합니다. following thread은 로컬에서 커밋 할 때의 질문에 대답합니다. 푸시 할 때 원격으로 수행 할 수있는 방법이 있습니까?Bazaar : 푸시시 원격 지점에 대한 자동 원격 수정 작성

즉, start_commit과 유사한 "start_push"유사성/해결 방법이 있습니까?

'중앙'트리에 대한 별도의 버전 관리를 유지하면서 고유 한 버전 관리를 사용하여 분기하는 로컬 트리를 허용하려면이 작업을 수행하고 싶습니다. 따라서 서로 다른 개발자가 중앙 서버에서 분기 한 다음 로컬 커밋을 통해 로컬 트리로 분기하고 다시 밀어 넣거나 병합 할 수 있어야합니다. 모든 트리는 트리 시퀀스와 트리의 일부인 파일에 기록 된 버전의 조합에 의해 자동으로 고유하게 버전 관리되어야합니다. 예를 들어, 트리 (xyz) 트리의 리비전 번호 127을 가진 (개발자의 xyz 로컬) 커밋은 'xyz.127'을 트리의 VERSION 파일로 커밋합니다. 그러나이 수정본을 '중앙'트리로 밀어 넣으면 중앙 트리에 'central.98'을 적용해야합니다 ('중앙 트리'의 마지막 수정본이 97 인 경우).

로컬 커밋에는 문제가 없지만 원격 푸시에서 원하는 동작을 얻는 방법을 모르겠습니다. 리비전의 로컬 포크가 리모트 포크와 다를 것입니다. 실제로는 바람직합니다.

또는 동일한 목표 (다른 로컬 트리를 다른 버전으로 배포하고 '중앙'트리를 별도로 버전 관리하는)를 달성하는 다른 설정도 매우 환영받을 것입니다.

+0

아무도 솔루션을 제공 할 수없는 것 같다. 바자회가 너무 제한적입니까, 아니면 내 질문이 너무 어리석은/특이한/나쁘게 공식화 되었습니까? – jvm

답변

2

post-change-branch-tip 후크를 등록하는 서버에 플러그인을 설치해야합니다.

테스트되지 않은 예 :

from bzrlib.urlutils import local_path_from_url 
from bzrlib.osutils import pathjoin 

def post_change_branch_tip_hook(params): 
    root = local_path_from_url(params.branch.base) 
    path = pathjoin(self.root, 'revno.txt') 
    f = open(path, 'w') 
    try: 
     f.write('%s\n' % params.new_revno) 
    finally: 
     f.close() 
+0

문제는 내가 아는 한 post-change-branch-tip은 트리를 수정할 수 없다는 것입니다. 이 문제를 해결할 수있는 방법이 있다면 어떻게해야할까요? – jvm

+0

여기에서 파일을 수정할 수없는 이유가 표시되지 않습니다. 파일을 커밋/버전 제어하려는 경우 다른 접근 방식을 취해야합니다. 나는 답변에 대한 예제를 추가했다. – AmanicA

+0

예를 들어 주셔서 감사 드리며 부정확 한 점에 대해 사과드립니다. 파일을 실제로 커밋해야합니다. (나는 '나무에 저장된'부정확 한 공식을 사용하기 전에, 나는 지금 '나무에 헌신'으로 대체했다.) – jvm

관련 문제