2011-11-04 3 views
1

시나리오로 설명하려고합니다. 웹 사이트. 특정 그래픽 요소가 필요하다고 가정하고 PSD 파일을 만들도록 선택하고 버전 제어하에 놓습니다. 그러나 커밋 간의 일관성을 유지하려면 생성 된 PNG 파일도 제출해야합니다.소스 및 출력 파일 모두를 제어하는 ​​버전

이 문제에 대한 적절한 접근 방법입니까?

보너스 : 그런 종류의 관행에 대해 이야기하는 좋은 온라인 참조 자료를 제공해 줄 수 있습니까?

나는이 특정 소프트웨어에 주로 관심이 있기 때문에 Git 태그를 추가하지만 일반적 문제라고 생각합니다.

+0

가능한 복제본 [소스 제어에 생성 된 코드를 저장해야합니까?] (http://stackoverflow.com/questions/893913/should-i-store-generated-code-in-source-control) – CharlesB

답변

2

예, 생성 파일과 생성 된 파일을 버전 관리하에 둘 수있는 좋은 이유가 있습니다. 그러나 프로젝트에서 일하는 모든 개발자가 발전기에 액세스 할 수 있다고 가정하면 (아마 일부 Adobe 소프트웨어가 *.psd 파일을 *.png 파일로 변환하는 데 사용되므로 모든 개발자가 액세스 할 수 있다고 가정하면 시나리오가 그 중 하나가 아닐 것입니다. 그 어도비 소프트웨어에, 그리고 그들은 건물 절차에서 그것을 실행할 수 있습니다). 예를 들어 이미지 파일을 보관할 수도 있습니다. SVG 파일로 (inkscape에 의해 편집 됨).

생성 및 생성 된 변형을 유지하는 좋은 이유는 부트 스트랩 된 시스템을 포함합니다. 자체 번역자가 번역 한 언어를 자체 개발할 때는 두 버전 모두 버전 제어하에 있어야합니다. 적어도 Ocaml의 바이트 코드 인 & 네이티브 컴파일러는 Ocaml로 작성되었으므로 컴파일러의 바이트 코드 형식이 SVN 아래에 보관되고 GCC의 상위 도메인 특정 언어 인 GCC MELT이 유지됩니다. MELT 번역기 (MELT DSL에서 C로)는 MELT로 코딩되어 있으므로 번역 된 양식 (생성 된 C 코드)을 버전 제어하에 MELT 소스 코드 형식과 함께 유지합니다.

+1

예, 이론적으로 PSD에서 PNG를 재생성하는 것은 언제나 가능하지만 속도가 매우 느릴 수도 있고 Git 워크 플로우 전체를 느리게 할 수도 있습니다. 예를 들어 분기를 전환합니다. PNG를 버전 관리하에 두는 것이 합법적입니까? 이것은 HTML이 소스와 출력 모두이고 HTML이 PNG를 사용하기 때문에 소스 코드 -> 실행 가능한 IMO와는 다릅니다. – cYrus

+0

VC에서 생성 및 생성 된 파일을 모두 유지하면 VC에서 너무 오래된 생성 된 파일과 같은 잘못된 오류가 발생합니다. 생성 시간이 걱정되어야한다고 생각하지 않습니다. 그리고 사람들은 분기를 자주 전환하지 않습니다. (그리고 그들은 개발 기계의 다른 파일 트리에 여러 분기를 유지할 수 있습니다) –

+0

무슨 뜻입니까? _ 그리고 그들은 개발 기계의 다른 파일 트리에 여러 분기를 유지할 수 있습니다 _? 이것이이 상황을 어떻게 도울 수 있습니까? – cYrus

0

원본에서 전체 사이트를 단일 스크립트로 빌드 할 수 있다면 생성 된 파일을 소스 제어해서는 안됩니다. 이 방법의 역사는 근본적인 요소 인 출처로 축소되기 때문에이 방법이 선호됩니다 (때로는 쉽지 않음).

+0

[내 의견] (http://stackoverflow.com/questions/8008124/version-controlling-both-source-and-output-file/8008210#8008210)을 참조하십시오. – cYrus

관련 문제