ArcGIS와 함께 Python 개발 프로젝트 팀으로 일하십니까?


14

파이썬 (ArcGIS 10)에 개발 프로젝트가 있습니다. 이 프로젝트에는 툴박스, 맵 템플릿, 레이어 파일, 파일 지오 데이터베이스 템플릿 (스크립트가 맵으로 가져 오는 템플릿의 역할) 및 기타 여러 가지가 혼합되어 있습니다.

우리는 Eclipse를 소스 편집기로, SVN을 소스 코드 리포지토리로 사용합니다.

모든 파일 (py 파일이 아닌)을 동기화 된 프로젝트에 모든 사람이 유지하는 데 문제가 있습니다. 여러 사람이 도구 상자를 편집하면 도구 상자가 일상적으로 엉망이 된 다음 템플릿 파일이 조정 된 다음 다시 체크인하지 않아 다른 사람에 대해 업데이트되지 않습니다.

회사 도구 상자 프로젝트에서 둘 이상의 Python 개발자가있는 조직의 사람들은 프로젝트와 다른 모든 파일의 버전이 올바르게 지정되고 관리되도록하려면 어떻게해야합니까? 아니면 모든 것이 Eclipse에 들어가고 (스크립트에서 사용하는 템플릿 레이어 및 GDB 포함) 프로젝트에 들어가 사람들이 파일을 올바르게 체크 아웃하기를 희망합니까?


그래서 현재 SVN에있는 모든 것이 있습니까 (템플릿, 레이어 파일, 소스 코드, 도구 상자)? 일부 사람들이 제대로 체크인하지 않는 문제입니까?
채드 쿠퍼

레이어 파일 및 템플릿 데이터 세트는 제외합니다. 예, 완료 될 때 체크인하지 않으며 Eclipse에서 최신 버전의 파일 (예 : tbx)을 얻으려면 수동으로 최신 버전으로 업데이트해야합니다. 다른 사람들이 더 현명한 방법을 가지고 있는지 궁금합니다. 지금 시도하고 있습니다
Rob

답변:


5

내가 다른 개발자들과 함께 일할 것이라는 것을 알고 있다면, 요즘 가장 먼저해야 할 일은 Jenkins 와 같은 Continuos Integration 서버 를 설정하는 것 입니다.

아이디어는 체크인 할 때마다 항상 테스트 스위트를 실행하는 것이며, 실패하면 즉시 자동 이메일을 받게됩니다. 귀하의 경우 간단한 Selenium 스크립트 일 수 있습니다 . 브라우저 또는 ArcMap을 자동화하는 일부 ArcObjects 스크립트를 클릭합니다. Selenium에 대한 몇 가지 프레젠테이션이 있습니다 .

Jenkins의 멋진 점 은 다른 기술 (빌드 시스템, 보푸라기 등)을 통합 / 재활용 할 수 있는 여러 플러그인 이 있다는 것 입니다. 테스트에서 다루는 코드의 양에 대한 멋진 보고서를 얻을 수 있습니다. 그들은 정말 설정하기 쉽습니다 .

개인적으로 SVN 대신 Git 및 GitHub와 통합 하고 싶습니다 ... 인증을 위해 GitHub에 의존하는 것과 같은 여러 가지 이점이 있습니다.

물론 첫 단계는 Jenkins를 실행시키는 것입니다. 한 번도 해본 적이 없다면 하루를 예약하고 숨이 막힐 정도로 많이 숨을 쉬십시오. 그러나 일단 달리기를하면 정말 굉장합니다.


7

잘 이해하면 문제 중 하나는 개발자가 SVN을 올바르게 사용하지 않아서 SVN 저장소의 내용을 불안정하게 만드는 것입니다.

따라서 몇 가지를 시도해 볼 수 있습니다.

명확한 저장소 사용 정책 설정

리포지토리를 사용하는 방법과 커밋 할시기 및 대상을 모든 개발자에게 명확히하십시오. 따라서 저장소에는 항상 프로젝트의 작업 사본 이 있습니다.

분산 제어 시스템 사용

이 같은 분산 제어 시스템을 사용하는 경우 힘내 이나 의욕 , 각 사용자는 자신의 저장소에 커밋 할 수 당신은 어쩌면 설정할 수 있으며, 그것이 작동 확신하는 경우에만 중앙 집중화 된 하나에 해당 버전을 보내 커밋의 창을 그들이 돈 때문에 각 사용자에 대해 서로 코드를 밟지 마십시오.

이것을 말하면, 귀하의 경우 Mercurial에 갈 것입니다 .Python에서 개발되었으며 필요에 맞게 후크를 만들 수 있기 때문입니다. 그리고 SVN의 학습 곡선은 매우 쉽습니다. 시작하기에 좋은 점 은 실제로 SVN 재교육이라는 섹션이있는 hginit 튜토리얼입니다.


2

담당자와 책임이 더 필요하다고 생각합니다. 툴박스 관리자를 임명하거나 채용하는 것이 좋습니다. 관리자를 제외한 공용 도구 상자와 해당 공간의 모든 내용을 읽기 전용으로 만듭니다. 관리자는 사물이 테스트, 체크인 (또는 SVN 공간이 아닌 항목의 경우 관리)되었는지 확인할 책임이 있습니다. 관리자는 사람들이 무엇을하고 있는지 알 수있는 기회를 갖게되므로 누군가 훈련이 필요한시기를 알 수 있습니다. 즉, 사람들이 부적절한 일을하는 사람들을 잡을 수 있습니다.


2

이것은 기술 문제가 아닌 사람 문제입니다. 도구 상자와 템플릿 파일은 소스 제어 외부에서 편집되므로 제어 할 수 없습니다. 이 파일은 이진 파일이지만 차이점을 비교하거나 비교할 수없는 경우에도 버전을 제어해야합니다. Thumb의 일반적인 규칙으로, 코드에서 생성되지 않고 코드를 실행하거나 컴파일하는 데 필요한 것은 소스 제어하에 있어야합니다.

이렇게하면 전체 프로젝트가 소스 제어하에 있으며 항상 작업중인 사본이 있습니다. 개발자는 잠금 후 로컬 버전에서 도구 상자와 템플릿을 편집하고 로컬 복사본이 작동 할 때 다시 커밋해야합니다.

에 관해서

... 다른 사람이 다시 체크인하지 않았기 때문에 업데이트되지 않았습니다.

이것은 사람들의 문제이며, 모든 개발자가 이것이 왜 중요한지 이해하지 않는 한, 어떤 기술도 도움이되지 않습니다.


2

여러 사람이 도구 상자를 편집하면 도구 상자가 일상적으로 엉망이됩니다.

이 특별한 문제를 위해 툴박스를 ArcSDE 데이터베이스에 넣습니다. 다른 유형의 데이터베이스로는 시도하지 않았습니다! 두 사람이 동시에 같은 도구를 편집하지 않는 한 훌륭하게 작동합니다. 파일 도구 상자 (.tbx)보다 문제가 훨씬 적습니다.


여러 사람이 동시에 다른 도구를 편집 할 수 있도록 SDE에서 도구 상자의 버전을 지정한다고하십니까? 이 접근 방식에 문제가 없었습니까?
Cindy Jayakumar 2016 년

아니요, 도구 상자의 버전을 지정할 수 있다고 생각하지 않습니다. SDE에서 도구 상자 만 작성하면됩니다. 여러 사람이 동시에 다른 도구를 편집 할 수 있습니다. 누군가 동일한 툴을 편집하고 ArcToolbox가 툴박스 (SDE)를 열 때 컨텐츠를로드하고 메모리에 보관하는 경우, 누군가 툴박스 (SDE)를 연 후 편집 된 툴을 열면 두 가지 문제가 발생합니다. . 나중에 알려진 것처럼 최소화 할 수 있습니다. ArcMap을 다시 설정하거나 SDE 연결을 닫았다가 다시 열 수 있습니다. 이것이 분명하기를 바랍니다.
jeb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.