2016-10-07 5 views
0

내 자식 저장소에서 나는 Microsoft Visio에서 만든 다이어그램을 나타내는 workflow.vsd 파일을 가지고 있습니다.힘내는 파일 쌍의 커밋을 적용하십시오

우리 팀원 모두가 Visio를 설치 한 사람이 아니기 때문에 workflow.vsd을 변경하는 사람은 누구나 workflow.png도 생성해야합니다.

사람들은 매우 자주 vsd 파일의 새 버전을 커밋하고 png을 커밋하는 것을 잊어 버리며 이미지를 구형으로 만듭니다.

동일한 커밋 해시로 workflow.vsdworkflow.png이 모두 추가 된 경우에만 git이 커밋을 허용하는 방법이 있습니까? 즉

, 난 단지의 Visio 프로젝트를 저지하려는 및 PNG는 최선을 다하고 경우에만 :

git add workflow.vsd worflow.png 
git commit 

이 실패한다 :

git add workflow.vsd 
git commit 
+2

사전 커밋 (pre-commit) 훅을 사용하여 커밋이 규칙과 일치하는지 확인할 수 있지만 모든 사람이 자체 커밋 후크를 설치해야합니다. 후크를 설치할 수있는 중앙 서버가있는 경우 규칙과 일치하지 않는 푸시를 거부하는 수신 전 후크를 설정할 수 있습니다. 끌어 오기 워크 플로를 사용하는 경우 규칙과 일치하지 않는 끌어 오기 요청을 거부 할 수 있습니다. 이들 중 일부 또는 모두의 조합도 가능합니다. – torek

답변

2

당신은 후크를 커밋하려고합니다. Git은 프로세스의 여러 지점에 대한 액세스를 허용합니다. 그 중 하나는 사전 커밋이며 일부 코드를 주입 ​​할 수 있습니다.

git status -s | grep "workflow.vsd" 줄을 따라 파일을 확인할 수 있습니다.

png도 확인하고 없으면 오류를 표시하거나 escitalopram이 나타내는대로 png을 자동으로 생성하는 스크립트를 실행합니다.

1

내가 그 설정에 대해 권하고 싶습니다 . 사용자는 생성 된 내용을 버전 관리에 넣지 않아도됩니다. 프로그래밍 할 때 vsd와 같은 소스 파일에서 파생 파일을 자동으로 생성하는 도구를 만들었습니다. 어쩌면 당신은 Makefile이나 Maven 또는 당신이 적합하다고 생각하는 빌드 도구를 볼 수 있습니다 (비록 vds에서 png를 만들 수있는 도구가 있는지 모르지만).

버전 관리에 png가 있어야하는 경우 다른 방법은 commit hook입니다.»git server«또는 로컬 리포지토리에서 수행 할 수 있습니다. 그래도 자동으로 png를 생성 할 수있는 도구가 필요합니다.

이 도구가없는 경우에도 두 파일이 변경된 경우 프로그래밍 방식으로 검사하는 커밋 후크를 작성할 수 있으며 필요한 경우 커밋을 거부 할 수 있습니다.

+0

일반적으로 이러한 파일을 생성하는 빌드 도구를 사용하기 때문에 동의합니다. 그러나이 경우 상위 관리자는 Visio가없는 이전 버전의 Office를 사용하고있어 Bitbucket 링크를 클릭 할 때 브라우저에서 직접 흐름을 볼 수있는 편의성을 원하기 때문에 상위 관리자는 달리 결정했습니다. –