2016-08-19 2 views
3

tutorial에 설명 된 대상 및 지정된 입출력을 작성하여 SASS 파일에서 CSS 파일을 작성했습니다. 이것은 일반적으로 이전 파일 타임 스탬프가있는 이전 Git 브랜치로 전환 할 때를 제외하고 작동합니다. 이 경우 MSBuild에서 내 대상을 실행하여 파일을 다시 작성하지만 MSBuild에서 내 입력의 타임 스탬프가 내 출력보다 이전이므로 MSBuild에서 내 출력이 최신이라고 생각하므로 MSBuild가이 파일을 건너 뛰기를 원합니다.Visual Studio : MSBuild 및 Git을 사용하여 증분 빌드를 수행하는 방법

Visual Studio에서 점진적으로 내 SASS 파일을 빌드하고 Git 분기를 전환 할 때 내 출력을 정리/무시할 수 있습니까? 빌드를 강제 실행하기 위해 컴파일 된 CSS 파일을 수동으로 정리하지 않으려합니다.

+0

파일에 현재 git 해시 및/또는 커밋 날짜를 저장하는 postbuild 이벤트와 해당 파일 (있는 경우)을 '새로운'현재 git 해시/날짜와 비교하는 사전 빌드 이벤트를 가질 수 있습니다. 그런 다음 새로 만든 것이 이전 것보다 이전 커밋 인 경우 정리 된 빌드를 수행하십시오. – stijn

답변

3

포스트 체크 아웃 후크를 사용할 수 있습니다. official Git docs을 참조하십시오.

깨끗한 명령을 .git/hooks/post-checkout 파일에 넣으십시오. 예 :

msbuild myproj.csproj /t:clean 

분기를 전환 할 때마다 해당 명령이 실행되어야합니다.

그러면 브랜치간에 어떤 파일이 변경되는지 알기가 어려울 수 있기 때문에 원하는대로 전체 재 빌드가 수행됩니다.

AFAIK, 모든 Git 후크는 Repo에 로컬이며 체크인 할 수 없습니다. 다른 사용자와 후크를 공유하려면 Repo의 어느 곳에서나이를 저장할 수 있고 사용자에게 직접 수동으로 올바른 위치에 추가하거나 필요한 경우 빌드 이벤트를 복사하여 추가하십시오.

+1

이것은 물론 전체 빌드로 이어질 것입니다. 어떤 출력이 임의의 브랜치로 바뀌면 어떤 출력이 영향을 받을지 알 수 없기 때문에 사실 그것이 옳은 것 같습니다. 심지어 myproj.csproj가 없을 수도 있습니다. –

+0

굉장한 아이디어. git에서 포스트 체크 아웃 훅 파일을 커밋하는 것처럼 보이지 않습니다. 이것은 내 팀의 모든 개발자가이 사후 점검 훅 파일을 수동으로 추가해야한다는 것을 의미합니까? – burnt1ce

+0

수정하십시오. 나는 그것을 구현하는 방법에 대한 몇 가지 아이디어로 내 게시물을 업데이 트했습니다. –