2010-03-10 7 views
0

우리의 응용 프로그램은 현재 C# ASPX 파일과 RPT 보고서 템플릿 파일이라는 두 개의 큰 엔터티로 구성되어 있습니다.SVN 우수 사례 (분기)

ASPX 파일은 누군가가 개발했으며 RPT 파일은 다른 사람이 개발했습니다.

두 세계가 동기화되어 있지 않습니다. 예를 들어 RPT 템플릿에는 10 개의 새 버전이 있고 C# 파일에는 하나만 만들 수 있습니다.

SVN에서 같은 프로젝트의 개발 부분의 두 논리 스트림을 구분할 수있는 방법이 있습니까? 모든 것을 동일한 저장소에 보관해야합니까? SVN 브랜치가 이것에 좋은 애플리케이션이 될 것입니까?

나는 그것이 같은 같은 응용 프로그램의 모든 디렉토리가하는 것 볼 수있을 방법,

  • /ModuleA/Main.aspx
  • /ModuleB/Admin.aspx
  • /ReportTemplates /Generic.rpt

모든 안내를 받으실 수 있습니다!

은 같은 프로젝트의 일부인 경우

답변

4

, 그들은 동일한 저장소에 있어야합니다 감사합니다. 그리고 정말로 갈라 놓을 필요는 없습니다. 한 사람이 RPT 템플릿에서 작업 할 수 있고 다른 사람이 ASPX 파일에서 작업 할 수 있으며 모든 사람이 서로의 변경 사항을 가져올 수 있습니다.

파일에서 두 줄 이상의 개발 라인을 유지해야하는 경우 분기가 작동합니다. 그러나 Subversion에 대한 표준적이고 일반적인 사용 사례로 분기를 사용하지 않아도됩니다.

1

다른 프로젝트에서도 일부 파일을 사용할 수없는 경우가 아니라면 동일한 프로젝트에 속한 파일을 같은 저장소에 저장해야합니다. 그런 다음 공통 코드 용으로 별도 저장소를 만들고 externals을 사용해야합니다 일부 기능을 연결하는 기능).

분기는 코드를 나누는 방법과 아무 관련이 없습니다. 브랜치는 메인 트렁크 외부에서 시간이 지남에 따라 코드를 변경하여 개발자가 주기적으로 브랜치에 체크인 할 수 있도록하기위한 것입니다.

1

ASPX와 RPT 파일이 서로 의존적 인 경우 (예 : 하나의 변경으로 인해 다른 파일이 손상 될 수 있음) 커밋을 수행하는 사람들이 커밋하기 전에 앱의 기능을 확인하지 못하는 경우 실제로 분리 된 분기의 잠재적 영향을 분리 할 수 ​​있도록 분기를 분리하십시오. 그런 다음 통합 작업을 수행하고 기능을 확인한 후 통합자를 지정해야합니다.

그러나 일반적인 워크 플로에서는 이러한 변경 사항이 모두 동일한 저장소와 분기에 위임되며 기능은 빌드 스크립트와 함께 실행되는 단위 테스트를 통해 이상적으로 커밋되기 전에 적절하게 확인됩니다.

+0

감사합니다. OrbMan, 제 경우에는 RPT 파일이 C# 코드에 직접적인 영향을 미치지 않습니다. –

1

분기하기에 좋지 않습니다. 브랜치는 코드가 같지만 다른 코드 (레거시 또는 릴리스 등)가있는 경우와 같습니다.

나는이 파일들을 모두 trunk에 넣고 필요할 때까지 분기 할 필요가 없다고 말합니다. 릴리스 또는 유사품에 대한 변경 또는 변경을하십시오.