2

이전에 nAnt 스크립트를 사용하여 파일을 복사하고 exec 태스크를 통해 makensis.exe를 실행하여 설치 프로그램 exe를 빌드 한 NSIS 설치 관리자가 있습니다. nant 스크립트가 완료된 후, 필자의 CD와 우리의 다운로드를위한 compelte 구조를 가지고있다.지속적인 통합을 통한 변경 사항의 통합 제어

나는 사용하지 않는 데스크탑에 소스 세이프 (sourceafe)를 설치하고 거기서 컴파일하면서 빌드 박스로 사용했다. 때때로 우리는 몇 가지 파일을 점검하여 중요한 내용을 점검 할 것입니다. 이 경우에는 빌드 상자로 이동하여 매우 선택적으로 해당 파일 만 가져 와서 아직 출시 할 준비가되지 않은 다른 변경된 파일을받지 못하게합니다. 기본적으로 개발을 계속 진행하고 특정 변경된 파일을 설치 프로그램에 선택적으로 포함시킬 수 있습니다.

이제 무료 상자가 없어서 서버에서 구축해야합니다. 그래서 CI Factory를 설정하여 개발자가 서버에 원격으로 작업하지 않고 빌드를 실행할 수 있도록합니다. 내가 고민하고있는 한 가지 문제는이 선택 변경 통제가 계속해서 발생할 수있는 최선의 방법이다. CI Factory가 구현하는 CI의 기본 개념은 내부 개발 "머리"에 적합합니다. 그러나이 "공개 릴리스"빌드 유형의 강제 빌드를 통해 필요할 때만 실행되는 CCNet 프로젝트를 설치하려고합니다.

이것은 CCood와 CI Factory가 무엇에 관한 것인지 아직 파악하지 못했다면 이것이 얼마나 효과가 있을지 아직까지는 두뇌를 몰아 챘습니다. "public release"CCNet 프로젝트 config/build는 이 아니고이 최신이되도록 설정 될 것입니다. 수정은 이 아니며은 빌드를 트리거합니다. 변경 사항이 감지 될 때 최신 CI 가져 오기의 기본 CI 방법론 (이를 "CI 프로젝트"라고 부름)을 사용하는 다른 CCNet 프로젝트 이후로이 두 프로젝트는 동일한 작업 디렉토리를 공유 할 수 없습니다. 따라서 "공용 릴리스"는 다른 작업 복사본이 필요하므로 CI 프로젝트의 빌드가 트리거 될 때 해당 파일이 업데이트되지 않습니다. 개발자는 서버에 원격으로 접속해야하며, 하나의 VSS는 "공용 릴리스"의 작업 사본을 선택적으로 가져 와서 CI Factory를 통해 강제로 빌드해야합니다.

이 단점은
입니다. 1) 원격으로 가져 오기를 선택적으로 수행해야합니다.
2) 단일 CI Factory 프로젝트에 Product 폴더의 두 가지 작업 복사본이있는 것을 허용하여 각 프로젝트 구성 블록에 자체 소유권을 부여하는 방법을 알지 못합니다.
3) 나는 이것이 어떤 종류의 이상함을 초래할지 두려워합니다. CCNet 프로젝트 구성 블록에서 소스 제어 블록을 지정하는 방법은 아직 확실하지 않지만 빌드가 완료되면 최신 블록을 수행하지 못하도록합니다. 나는 점차적으로 점차적으로 스크립트에있는 것이 무엇인지 알아 내고 있으며, 다른 것들을 깨지 않고 쉽게 꺼내 질 수 있습니다. 대충 돌아 다니거나 구성 할 수없는 것을 제외하고는 쉽게 제거 할 수 있습니다.

나는 비슷한 상황에 처한 사람들이 변화를 선택적으로 발표하는이 문제를 어떻게 다루고 있는지 정말 듣고 싶습니다. 나는 VSS에 제약이있어, 즉각적인 필요성을 염두에두고이를 해결하는 것이 필요하지만, 동시에 다른 소스 제어 시스템으로 어떻게 이것을 관리 하는지를 듣고 싶다. 아마 당신은 당신의 최신 개발 지점 인 지점을 가지고있을 것이고, 그 지점에서 언제든지 변경 사항을 트렁크에 병합 할 수있을 것입니다. 분기/병합을 위해 VSS를 정말로 신뢰하지는 않습니다. 분기 개념이이 상점에 대해 너무 많은 오버 헤드와 학습 곡선이 될 수 있다고 생각합니다. 제가 말했듯이, 다른 소스 제어 시스템에 관한 이야기는 나에게 유용한 미래의 지식이 될 것입니다.

미리 감사드립니다.

답변

1

이 작업을 위해 저장소에 분기 구조가 필요합니다. 릴리스 분기 방법과 같은 것입니다. 선택된 개인 만이이 지점으로 커밋 할 수 있습니다 (또는 그럴 경우 릴리스/안정화).릴리스 CI에서 출시 된 CI 출시를 설정하여 야간에 이정표로 승격하거나 이정표로 최종 결정을 내릴 수 있습니다. 나는 당신의 빌드 머신에서 수동으로 수정하는 아이디어를 좋아하지 않는다. 버전 관리에서 변경 사항을 안전한 장소에 설정하여 릴리스를 준비하고 거기에서 CI 빌드를 허용하지만 수동으로 트리거하십시오.

체크 아웃 : branching patterns 필자는 릴리즈 당 코드 라인 (codeline-per-release)을 제안했는데, 종종 릴리스 브랜칭이라고 불렀습니다.

병합 링크가 포함 된 VSS 브랜칭에있는 article입니다.

question과 비슷합니다.

어쩌면 당신은 이런 종류의 것을 더 잘 지원하는 또 다른 소스 제어 시스템으로 이동할 수 있습니다. MS 사람들이 보낸 제안은 없습니까?

+0

감사합니다. 따라서 VSS를 사용하면 "헤드"와 "공개 릴리스"모두의 작업 복사본을 만들고, 헤드 작업 복사본의 복사본을 공용 복사본 작업 복사본으로 선택적으로 복사하여 체크인 할 수 있습니까? VSS에서 병합을 사용한 적은 한번도 없었습니다. – AaronLS

+0

잠시 동안 vss를 사용하지는 않았지만 제 제안은 트렁크의 변경 사항을 사용 가능 해지면 릴리스와 트렁크의 변경 사항을 병합하고 필요할 경우 릴리스에서 트렁크로 백 포트하는 기능이 필요할 것입니다. –