2008-09-02 3 views
2

버전 제어 시스템에 온라인 인터페이스를 사용하는 것이 가장 최신 버전의 코드에 대해 게시 된 위치를 얻는 좋은 방법입니다. 예를 들어, 내가 (실제로 작동에 변경이 확인 될 때마다 CTAN에 공개되어있는) 여기에 LaTeX의 패키지가 :"파생 된"파일 버전입니까?

http://github.com/wspr/pstool/tree/master

자체가 (이 경우 하나의 파일에서 파생 패키지, pstool.tex)이 파일은 처리 될 때 LaTeX에서 사용하는 패키지를 구성하는 문서, readme, 설치 프로그램 파일 및 실제 파일을 생성합니다.

이 자료를 다운로드하려는 사용자가 쉽게 사용할 수 있도록 위의 모든 파생 파일을 저장소 자체와 마스터 파일 pstool.tex에 포함합니다. 이는 패키지 파일 pstool.sty가 마스터 파일의 생성 된 하위 집합이기 때문에 커밋 할 때마다 변경 횟수가 두 배가된다는 것을 의미합니다.

버전 제어 버전입니까?

대신 다운로드 서버로 버전 관리에 의존, 다운로드 다른 곳에서 생성 된 파일을 게시 할 수있는 또 다른 방법이 있나요 : Jon Limjap @


좋은 지적을 제기?

정말이 경우 문제의 핵심입니다. 예. 패키지의 출시 버전은 다른 곳에서 구할 수 있습니다. 따라서 실제로는 생성되지 않은 파일의 버전을 만드는 것이 더 합리적입니다.

장면

뒤에 부담 비용을 능가, 실제 반복되는 편의, 또한 오히려 관련입니다 : 한편

,의 의견이 Madir @ 사용자가 버그를 발견하고 바로 고친다면 그들은 저장소로 가서 "설치"단계를 수행하지 않고도 작업을 계속하기 위해 필요한 파일을 가져올 수 있습니다.

그리고 내 생각에이 프로젝트는 내 특정 프로젝트에 대해 더 중요한 사용 사례 입니다.

답변

2

작은 시스템 ASP.NET 개발을 위해 Tortoise SVN을 사용하고 있습니다. 대부분의 코드는 ASPX로 해석되지만 수동 컴파일 단계에서 생성 된 약 12 ​​개의 이진 DLL이 있습니다. 이론적으로이 소스 코드를 버전 화하는 것은 많은 의미가 없지만 개발 환경에서 프로덕션 시스템으로 정확하게 미러링되도록하는 데 유용합니다 (한 번 클릭). 또한 - 재난의 경우 - 이전 단계로의 롤백은 SVN에서 한 번의 클릭으로 다시 이루어집니다.

그래서 총알을 비틀어서 SVN 아카이브에 포함 시켰습니다. 편리하고 반복적 인 것은 비용을 능가하며 장면 뒤에서 발생합니다.

1

소스 컨트롤에 대한 모범 사례는 분명한 이유 때문에 생성 된 파일을 포함하지 말 것을 권유하지만 반드시 그렇지는 않습니다.

버전 컨트롤을 사용하여 다운로드 서버가 아닌 다른 곳에서 생성 된 파일을 다운로드 할 수있는 다른 방법이 있습니까?

1

일반적으로 파생 된 파일은 버전 제어에 저장하면 안됩니다. 귀하의 경우 파생 된 파일을 포함하는 타르볼을 만든 릴리스 절차를 만들 수 있습니다.

말한 것처럼 파생 된 파일을 버전 제어로 유지하면 처리해야 할 잡음이 증가합니다.

4

우리는 저장소 자체에 포함 된 스크립트를 사용하여 자동으로 생성 할 수있는 파일을 버전 화하지 않습니다.그 이유는 체크 아웃 후에는 이러한 파일을 한 번 클릭하거나 명령으로 다시 작성할 수 있기 때문입니다. 우리 프로젝트에서 우리는 항상 이것을 쉽게 만들려고 노력하고 따라서 이러한 파일들을 버전화할 필요가 없습니다.

출력을 생성하는 데 필요한 도구를 사용할 수없는 프로덕션 환경 (또는 비 개발 환경)에서 사용하기 위해 제품의 특정 릴리스에 '태그 지정'하는 것이 유용한 경우가 하나 있습니다.

우리는 또한 출시 된 버전의 제품으로 아카이브를 만들고 업로드 할 수있는 빌드 스크립트에 타겟을 사용합니다. 이는 프로덕션 서버에 업로드하거나 제품 사용자가 다운로드 할 수 있도록 HTTP 서버에 업로드 할 수 있습니다.

0

경우에 따라 사용하는 sysadmin 유형의 경우가 많습니다. 생성 된 파일 (예 : 스크립트로 작성된 DNS 영역 파일)은 고유 한 권한을 가지며 수정 관리가 더 많이 사용됩니다 선형 감사 추적은 분기 및 태그 지정 소스 제어보다

관련 문제