개발 과정에서 perforce를 사용하여 코드 공유를 처리합니다. 회귀 테스트 준비가 될 때까지 변경 사항을 체크인 할 수 없기 때문에 "개정 관리"를 말하지 않을 것입니다. 리비전 제어하에 개인적인 변경 세트를 얻으려면 필자 자신의 자식을 빌드하고 perforce 저장소의 클라이언트 뷰를 git repo로 초기화하는 작업을 진행했습니다.Git repo 계획 질문
그러나 이렇게하는 데는 몇 가지 어려움이 있습니다.
클라이언트보기
~
의 하위 폴더 (~/p4
)에 살고, 나는 자신의 별도의 역사뿐만 아니라 개정 통제하에~
을 넣고 싶다. 하위 모듈을 사용하지 않고~
의 기록을~/p4
과 분리하여 보관하는 방법을 알아낼 수 없습니다. 하위 모듈의 문제점은 서브 모듈이 될 저장소를 만든 다음에git submodule add <repo> <path>
이되어야하는 것처럼 보입니다. 그러나~
을 제외하고는 서브 모듈의 저장소를 만드는 데는 아무 것도 없습니다. git p4 clone을 사용하여 저장소의 초기 클라이언트보기를 만드는 안전한 장소가없는 것 같습니다.(지원되지 않습니다 내가 INITING 또는 자식의 repo의 서브 디렉토리로의 repo를 복제 가정의 떨어져 일하고 있어요. 적어도, 나는 중첩 된 자식의 repos에 권위 아무것도 찾을 수 있습니다.)
편집 :
~/p4
에 중첩 된 저장소를 초기화 할 수있을 정도로~
에 뿌리를 둔 저장소의~/p4
을 무시한 것입니까? 내 __git_ps1 함수는 여전히 git 저장소의 무시 된 하위 디렉토리를 방문 할 때 git 저장소에 있다고 생각하므로 생각하지 않을 것입니다.~/p4의 지점이되도록 git p4 sync에서 만든 "원격"저장소가 필요합니다. ~/p4에 모든 코드를 보관하여 백업되지 않도록해야합니다. 로컬 브랜치 인 "원격"브랜치에서 가져올 수 있습니까?
이 것은 편의를위한 것일 뿐이므로이를 묻는 것으로 뭔가를 배울 수 있다고 생각했습니다. 프로젝트의 99 %에 대해서, 필자는 p4 head 리비전을 inital commit 객체로 시작하려고합니다. 나머지 1 %는 전체 p4 history를 빨아 들여서 git에서 찾아 볼 수 있습니다.
revision 1 of //depot/prod/Foo/Bar/* revision X of other files in //depot/prod/*, where X is the head revision
을하고
remotes/p4/master
분기 Y는 Y가에서 파일을 가지고 변경 목록의 수, 커밋 포함 : 나는 그것을 initalizing 끝났어요 후 IOW는, 초기는 리모컨의 커밋/P4/마스터 지점이 포함됩니다//depot/prod/Foo/Bar/*
, p4 변경 목록 중 하나에 해당하는 히스토리에서 각 커밋 및 p4 머리와 비슷한 HEAD.
편집 : meagar의 답변이 저에게 효과적이지 않았습니다.
나는 initalized ~을하고 거기에 몇 가지 커밋을 확인했습니다. 나는 ~/P4를 무시하고 ~/P4는 객체를 저지하지 않을 =.
[[email protected]] (master) $ git show HEAD:p4
fatal: Path 'p4' exists on disk, but not in 'HEAD'.
내가 다음 ~/P4/자극에 가서, 내가 체크 아웃 할 지점을.
[~/p4/[email protected]] (master) $ git log
(shows the log for the repo rooted at ~)
[~/p4/[email protected]] (master) $ git init
Initialized empty Git repository in ~/p4/prod/.git/
[~/p4/[email protected]] (master) $ git log
fatal: bad default revision 'HEAD'
편집 편집 : :하지만이 REPO가 고장 아차, 나는 ~/p4/prod
에 뭔가를 저지하는 것을 잊었다. 나는 자식/동기화를 시도하고있다 // depot/prod to it ...
하나의 git 저장소를 다른 저장소에 저장할 수 있습니다. 하위 모듈로 표시하지 않으면 git은 특별한 기능을 수행하지 않습니다. 하위 디렉토리 일뿐입니다. 그래도 .gitignore에 추가하는 것이 좋습니다. – Novelocrat
당신의'__git_ps1'은 .git 디렉토리를 찾기 위해 나무를 걷고 있습니다. 현재 하위 트리가 무시되는지 여부를 git에 묻지 않습니다. – Novelocrat
포인트 2 : 회귀 테스트를 통과 할 때까지는 계속 수행 할 수 없으며 백업에서 제외 된 지정된 디렉토리에 작업 복사본을 보관해야합니다. 이것은 실제로 진행중인 작업이 쓸데없는 것으로 간주된다는 것을 의미합니까? – Novelocrat