2017-09-22 13 views
2

Windows에서 편집하고 GitHub에 체크인하는 XML 텍스트 파일이있는 Windows 응용 프로그램이 있습니다. 파일은 내 dev 컴퓨터에서 올바른 Windows EOL 형식을 가지고 있습니다. 그런 다음 Git 리소스와 Windows 작업자를 사용하여 Concourse CI 파이프 라인을 통해 MSI를 작성합니다. Windows 컴퓨터에 MSI를 설치하면 XML 텍스트 파일에 Linux EOL 형식이 지정됩니다.EOL Windows 파이프 라인 처리

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? Concourse를 올바르게 이해한다면 Git 리소스는 Linux에서 실행되는 도커 컨테이너이므로 Unix EOL 형식으로 파일을 검사하는 이유는 알 수 있지만 컨테이너가 만들어 질 때 Windows 형식으로 변환되지 않는 이유는 알 수 없습니다. 창 작업에 사용할 수 있습니다.

업데이트 : 약간 더 복잡합니다. Linux 작업자에서 실행될 때 파일에 Linux EOL 형식이 있어야하므로 Linux 작업자에서 실행되는 몇 가지 단계가 있습니다. 예를 들어 ... repos를 가져 와서 Linux에서 실행중인 작업으로 전달하여 npm을 수행합니다. 꿀꿀 거리는 소리 | 그런 다음 Windows 작업자에게 파일을 셔틀하여 ASP.NET 웹 API 프로젝트를 만들고 웹 UI로 Linux 출력을 사용하여 MSI로 패키지화합니다.

답변

0

EOL의 일관성을 유지할 수 있도록하는 한 가지 좋은 방법은 .gitattributescore.eol rules

git config core.autocrlf 

true 만약 같은 (모든의 repos를 적용) 글로벌 구성의 영향을 피할 수

, 그 통해 그들을 관리하는 것입니다 글로벌 규칙 (아마도 ConcourseCI에서 활성화)은 자동으로 eol을 변경합니다.
을 리포에 추가 할 수 있으며 우선권을 갖습니다. 그것은 일관성을 보장합니다.

+0

나는 마침내 오늘 이것을 볼 시간을 보았습니다. 나는 세계적인 변화를 만들 권한이 없다. 수백 개의 리포지토리에서 사용자 지정 .gitattributes를 가질 필요가 없습니다. .XML 파일 EOL은 기본적으로 올바르게 처리됩니다. .CONFIG (XML도 가능)는 아닙니다. Concourse에서 Windows Worker로 파일을 옮길 때 XML 파일의 EOL을 업데이트하는 것을 이해하지만 CONFIG 파일을 처리하지 못하는 것이 있는지 궁금합니다. –

+0

@ChristopherPainter 참고 : 모든 저장소에 대해 전역 gitattributes 파일을 만들 수 있습니다. https://stackoverflow.com/a/28027656/6309 – VonC