Subversion 대신 Perforce를 사용하면 어떤 이점이 있습니까?
우리 팀은 몇 년 동안 SVN을 왔습니다. 이제 Perforce로 전환 할 수있는 옵션이 있습니다.
어떤 이점 (및 함정)이 있습니까?
- P4는 서버에서 작업 복사본을 추적합니다. 이
- 큰 작업 복사본은 훨씬 빠르게 처리됩니다. 저는 큰 SVN 프로젝트를 가지고있는 업데이트는 로컬 작업 복사본 (수천 개의 개의 폴더)의 트리를 포함 때문에 15 분이 걸렸습니다. 파일 액세스가 느립니다. P4는 작업 복사본에 대한 정보를 데이터베이스에 저장하여 모든 작업이 항상 거의 실행됩니다.
- 파일을 엉망으로 만들고 서버에 알리지 이름 문제가 있습니다! 파일을 작성하지 않습니다. 서버가 알 수 있도록 P4 클라이언트로 파일을 삭제해야합니다. 로컬에서 파일을 삭제하면 서버에서 이미 파일이 다운로드되지 않습니다. 이런 일이 많이 발생하여 동기화가 많이 중단 될 때, 보통 로컬 사본을 정리하고 다시 다운로드해야합니다. 은 당신 해야 우리한다 이것에 대해주의해야 우리합니다.
- Explorer 셸 확장 클라이언트 (TortoiseSVN 생각)는 짜증나고 완전히 사용할 수 없습니다.
- 최상의 기능을 제공하는 두 가지 GUI 클라이언트 응용 프로그램이 있습니다. P4Win 및 P4V, 그중 P4V는 더 새롭고 사용하기 쉽지만 기능이 강화됩니다.
- 고급 기능이 많지는 않지만 잘 작동하는 Visual Studio 및 Eclipse가 있습니다.
- 일반적으로 P4는 SVN보다 약간 기능을 제공하며 혼란 스럽습니다.
- 작업 복사본 정의는 훌륭하고 유연했습니다. 여기에서 P4가 SVN보다 우수하다고 생각합니다. 작업 복사본 폴더에 대한 마스크를 정의하고 종류의 기괴한 트리를 만들 수 있으므로 여러 체크 아웃을 수동으로 수행 할 필요없이 원하는 위치에 정확히 원하는 다운로드 할 수 있습니다. 이 서버에 기가 바이트의 항목이 특정 하위 집합 만 원할 때 매우 유용했습니다. 나는 훨씬 더 번거 로움과 상황에서 SVN을 사용했습니다.
- P4 아래의 분기는 ... 이상합니다. 분기 세트 및 다양한 종류의 분기 및 혼란스러운 UI. 불행히도 이것에 대한 자세한 내용을 기억하지 못합니다.
그 외에는 꽤 표준입니다.
거대한 코드베이스를 다루거나 파일 시스템을 흩 뜨리는 .svn 폴더를 싫어하지 않는 한 SVN을 유지하는 것이 좋습니다. SVN + TortoiseSVN은 대부분의 상황에서 훨씬 편안합니다.
나는 현재 다른 프로젝트에서 둘 다 사용하고 있습니다.
- 퍼 포스 분기가 우수합니다.
- Perforce 충돌 해결 도구가 더 좋습니다.
- 나는 perforce의 변화 목록에 대한 강한 개념을 정말 좋아합니다.
- Perforce가 더 빠른 것
- 설정하고 실행하는 것이 더 자율적입니다.
- 우리 회원 중 일부는 perforce 용 MS 오피스를 정말 좋아합니다. 저는 Mac을 사용하고있어서 사용할 수 없습니다.
그러나
- SVN 클라이언트, 특히 eclipse가 더 좋습니다.
- Perforce는 더 비쌉니다.
이것은 잘못된 의견입니다. :)
이미 둘 중 하나를 사용하고 있었다면 어느 쪽도 다른 것보다 실제로 중요한 이점을 제공하지 않는 것처럼 보이지만 전환의 중단이 클 수 있기 때문에 전환하기가 매우 어려운 것입니다.
업데이트 :이 글을 쓴 이후로 저는 개인적 및 상업적 목적으로 GIT를 사용하는 완전히 완전히 전환되었습니다. 나는 SVN이나 Perforce를 선택할 것입니다.
팀이 Git을 평가 했습니까? Perforce에서 사용할 수있는 기능과 기능이 있습니다 (FOSS).
둘 중 하나는 민족 팀과 함께 할 때 SVN의 훌륭한 작업 대안입니다.
나는 직장에서 perforce를 사용하고 집에서 svn을 사용합니다.
perforce GUI는 꽤 멋지지만 익숙해지면 한 번만 사용할 수 있습니다. 프로그래머가 아닌 사람이 perforce를 사용하기 시작하면 일반적으로 개념을 이해하는 데 시간이 있습니다.
거북이는 굉장하고 사용하기 매우 우수합니다. 내 변호사 아내는 그것을 사용하여 모든 문서를 전복합니다.)
분기는 perforce에서 있습니다. 사실 너무 빨리 서 사람들은 그다지 많은 분기합니다. 그런 다음 분기 때문에 통합합니다. 그것은 당신이하는 유일한 일이 될 수 있습니다.
Svn은 더 많은 제품에 통합됩니다. 내가 사용하는 더 많은 제품. 개발 환경 외부에서 둘 중 하나를 사용하는 경우 둘 다 투박해지기 때문에 큰 이점입니다.
대략적인 우리는 로컬 사본이 최신이라고 생각하는 것입니다. 그런 다음 강제로 동기화하고 여전히 좋지 않은 로컬 파일을 삭제하고 다시 동기화합니다. svn에 그런 문제가 없었습니다. 오래된 사본으로 작업하고 사실조차 모르기 때문에 실제로 큰 문제입니다.
생각해야 할 또 다른 사항은 변화를 원하는 이유입니다. 작동하는 시스템이 모든 사람이 이에 익숙하고 만족한다면 무엇입니까?
Perforce 웹 사이트에는 P4와 SVN 의 두 가지를 비교하는 논문이 있습니다.
분명히 소스를 고려할 때 SVN보다 Perforce의 장점을 강조하지만 여전히 유용한 읽기입니다. 당신은 강력한 알지 못합니다. 장점 중 하나는 자신의 고유 한 상황에서 팀이 이익을 얻을 수있는 킬러 아이템 일 수 있습니다.
나는 이미 다른 답변에서 다룬 여러 가지 사용하지 않은 SVN과 거기에있는 것이 있습니다.
분기 및 분기를 네임 스페이스의 일부로 만드는 것이 Perforce에서 볼 수있는 가장 큰 이점입니다. 병합은 보유. Subversion에서 멀어 질 때 단점이 없습니다.
나는 SVN을 많이 사용하지 않습니다. Perforce를 약 3 년 동안 사용했습니다. 대단 생각했습니다. 고객 서비스는 훌륭하고 오류가 내가 어리석은 제거하고 판명 된 문제를 해결하는 데 매우 빠르며 심지어 내가 제안한 기능을 구현했습니다.
다른 개발자들과 표현했던 비 개발자들은 특히 클라이언트 사양 (서버의 폴더를 로컬 폴더로 매핑)을 사용할 때 사용 방법을 배우는 것이 약간 까다로웠다.
파일을 들어오고 나가는 것이 매우 빠르며 매우 안정적이라는 것을 알았습니다. 제가 함께 일했던 대부분의 개발자들이 익숙해지면 정말 좋아합니다. 우리는 전환하기 전에 Visual Source Safe를 사용하고 있고 그보다 훨씬 더 나은 것이 있습니다.
단점은 돈이 든다는 것입니다. 저는 SVN이 매우 좋은 시스템이라고 믿습니다. SVN은 무료로 Perforce가 배우는 데 시간이 걸리고 많은 전환해야 할 이유가 있습니다. SVN이 당신을 위해 일하고 당신이 당신이 존재하는 불만이있는 것처럼, 나는 당신이 거기에 머물고 비오는 날을 위해 돈을 절약하는 것이 좋습니다!
나는 두 가지를 모두 사용하는 내 경험상 Perforce는 큰 팀 및 / 또는 코드베이스가있는 경우 많은 의미가 있습니다. 개체는 SVN을 선택합니다. 설정 및 유지 관리가 더 자율적입니다.
원하는 경우 Perforce에서 오프라인으로 항목을 편집 할 수 있습니다. workapce는 파일이 읽기 전용인지 쓰기 가능한지 정의 파일을 모두 쓰기 가능하게 만들고 해킹 한 다음 Perforce에 체크인해야 할 항목을 제출할 수 있습니다.
파일을 읽기 전용으로하고 필요한 것을 확인하여 다른 사람 (및 자신)이 사용자가 무엇을했는지 알 수 있습니다.
더 나은 시스템은 요구 사항에 따라 증가합니다. 요구 사항이 포함 Perforce가이 경쟁합니다.
누가 Subversion을 사용합니까? 소규모 비 상업 팀 또는 소규모 상업 팀
Perforce를 사용하는 누가? Google Sony Samsung nVidia Symantec
최신 버전에서 Perforce는 선반 변경을 위한 새로운 기능이 있습니다 .
Shelving은 변경 목록을 제출하지 않고 Perforce Server에 진행중인 작업을 임시로 저장하는 프로세스입니다. Shelving은 동일한 파일 집합에서 여러 개발 작업 (예 : 우선 순위가 높은 작업의 중단, 여러 플랫폼에서 테스트)을 수행하거나 작업을 저장소에 커밋하기 전에 코드 검토를 위해 파일을 공유해야 할 때 유용합니다.
이것은 멀티 태스킹이 필요할 때 한 로컬 브랜치에서 다른 브랜치로 쉽게 전환 할 수있는 git의 브랜칭 모델과 유사합니다.
AFAIK, Subversion에는 유사한 기능이 없습니다.
Perforce는 서버가 클라이언트를 소유하도록 허용합니다.
Perforce 서버는 클라이언트에서 임의의 파일을 읽고 쓸 수 있으므로 임의의 코드를 실행할 수 있습니다. Perforce 구성은 모두 서버 측이므로 서버는 클라이언트 컴퓨터의 전체 하드 디스크를 저장소로 취급하고 원하는대로 수행 할 수 있습니다.
SELinux 샌드 박스를 제외하고는 Perforce를 실행하지 마십시오.
기억하십시오 : Perforce 클라이언트는 서버의 꼭두각시입니다. 원하지 않는 작업을 수행하지 못하도록 운영 체제의 보안 기능을 사용해야합니다. 항상 Perforce 클라이언트를 적대적으로 취급하십시오.
내가 회상하는 것처럼 Perforce 라이선스는 사용자 수가 증가함에 따라 비용이 감소합니다. 따라서 좌석 당 정확히 $ 900가 아닙니다. 서버 기반 라이선스이기도합니다. 당신은 그것을 사용하는 기계 클라이언트 당이 아니라 그것을 사용하는 인간 개발자의 총 수에 대해 지불합니다. 따라서 200 명 규모의 상점 인 경우 200 석 라이선스를 통해 집에서도 모두 perforce를 사용할 수 있습니다.
제 생각 에 SVN과 Perforce 중에서 선택하는 이유 # 1 은 비용 입니다.
작은 저장소 : SVN은 무료로 잘 작동합니다.
큰 저장소 : SVN을 사용하는 것은 치명적입니다 : http://yoawsconsult.blogspot.com/2009/05/whenwhy-you-cant-afford-to-use.html . Perforce는 대규모 리포지토리를 수행 할 수 있지만 이에 대해 알아보고 이에 대한 비용을 지불해야합니다.
내 연습에서 :
Perforce는 소프트웨어 배포와 같은 거대한 blob 파일도 저장하도록 설계되었으며 svn은 모든 데이터를 텍스트로 저장합니다. 이러한 바이너리 데이터를 svn에 효과적으로 저장하는 것은 불가능합니다.
Perforce는 "변경 보류"와 같은 유용한 기능을 지원합니다. 사용자는 perforce 서버에 "패치"와 같은 변경 사항을 저장하도록 요청했습니다. 그런 다음 작성자가 요청하면 다른 사용자가 변경 사항을 검토 할 수 있습니다. Svn은 그것을 지원하지 않습니다
Svn 명령 줄 형식은 이해하고 기억하기가 더 쉽고 매일 사용하기 쉽습니다.
Svn은 무료입니다
"git"과 "svn"에서 repo에서 파일을받은 후 로컬 파일 시스템에서 파일을 편집하여 직접 변경 사항을 편집합니다. perforce에서 파일 작업에 "올바른"방법은 파일에 작업 할 것임을 표시하는 것입니다 (p4 편집) .... 이론상 다른 사람이 파일을 볼 수 있습니다. 실제로는 불편합니다.
수행해야하는 추가 구성으로 인해 로컬 시스템에서 Perforce 클라이언트 작업 영역을 준비하려면 svn보다 더 많은 시간이 필요합니다.
TortoiseSVN을 통해 exlorer로부터 모든 것을 할 수 있다는 것은 매우 편안합니다! 따라서 P4 Extention도 설치되어 있습니다. 하지만 정말 그렇게 정교하지 않습니다!
반면에 P4 클라이언트는 서버 저장소에 대한 액세스 가능한보기를 제공하므로 완전한 체크 아웃없이 작업 할 수 있습니다. 이것은 항상 TSVN만을 사용하는 SVN 날에 약간 번거 로움을 느꼈습니다.
이렇게 말하면 최고의 포스터 댓글을 이해할 수 없습니다.
- Explorer 셸 확장 클라이언트 (TortoiseSVN 생각)는 짜증나고 완전히 사용할 수 없습니다.
FOSS TortoiseSVN은 훌륭합니다! (아이콘은 각 컴퓨터에서 조금씩 다르게 작동했지만 ..)
TortoiseSVN과 함께라면 :
- 기능 재정렬 가능
- 예를 들어 'get lock ..'앞에
- 실제로 탐색기에서 모든 기능에 액세스 할 수 있습니다.
- 쉘 메뉴에 아이콘이 있습니다.
- 업데이트 알림
하위 버전에 대한 perforce의 한 가지 단점은 svn의 내보내기 명령입니다. 일부 버전의 코드를 어디로 든 내보내거나 다운로드하는 것이 더 쉽습니다. 이를 위해 작업 공간을 만들 필요가 없습니다. 그러나 Perforce에서는 버전 별 코드를 작업 공간으로 만 가져올 수 있습니다.
Perforce보다 Subversion 을 사용할 때의 주요 이점은 오프라인에서 동료와 동시에 편집 할 수 있다는 것 입니다.
데이터 인프라가 느슨하게 결합 된 경우 (오프라인 시간이 있음) svn은 흔들립니다. 서버에 연결할 수 없더라도 많은 일을 할 수 있습니다. Perforce에는 기본적으로 항상 사용 가능한 서버 연결이 필요합니다.
면책 조항 : Perforce에 대한 내 정보는 오래되어 svn으로 완전히 전환하기 전에 2005-06 년에 잠시 사용했습니다.
'ProgramingTip' 카테고리의 다른 글
PhpStorm을 사용하여 선택 항목을 따옴표로 묶는 방법은 무엇입니까? (0) | 2020.11.17 |
---|---|
botocore의 NoSuchKey 운영을위한 방법은 무엇입니까? (0) | 2020.11.17 |
xpath : 값에 노드가 포함 된 주어진 속성이있는 노드를 찾습니다. (0) | 2020.11.17 |
UIControl을 선택 하위 클래스 화하는 방법은 무엇입니까? (0) | 2020.11.17 |
Java의 공유에서 새 개체 만들기 (0) | 2020.11.17 |