2016-06-02 12 views
2

gitub/bitbucket/gitlab과 같은 git에서 OSS 프로젝트에 대한 가끔 기여를 유지하는 가장 좋은 방법은 무엇인지 궁금합니다. 업스트림은 독점적으로 CVS입니다.업스트림이 100 % CVS 일 때 GIT를 실행하는 가장 좋은 방법은 무엇입니까?

My take는 언제든지 어떤 상자에서 단순히 git에 직접 CVS/{Entries,Repository,Root}를 저지하기가 매우 편리하고 있다는 것입니다, 당신은 단순히 다음 cvs up과 실제 상류에서 업데이트 (git/W), 그리고 자식의 repo를 체크 아웃 할 수 있습니다 이것은 정확하게 my OpenBSD ports-readmes forkmdocml으로 이루어집니다.

그러나 대부분의 사람들은 내 GitHub에서이 CVS 파일을 볼 때 매우 놀랍고 당황 스럽다. 아마 내 생각에 일종의 감독이라고 생각할 것입니다. 또한 예를 들어 reyk's httpd은 업스트림에서 로그를 보존하지 않고 대개 업스트림에서 업스트림에서 업데이트하는 경우에도 이러한 설정이 필요하지 않습니다.

여기에 뭔가가 있습니까? 나는 당신의 자식 저장소 내에서 CVS/{Entries,Repository,Root}을 갖는 것이 좋은 생각이지만, 다른 사람은 본 적이 없다고 생각합니다. 왜?

+0

CVS 메타 데이터를 커밋하는 데있어 큰 문제점 중 하나는 사용자 및 체크 아웃 버전에만 해당된다는 것입니다. 내가 한 일은'.gitignore'에'CVS'를 추가하는 것입니다. 그렇게 함으로서 나는 여전히 git와 cvs를 모두 사용할 수 있으며, 나머지는 단지 cvs repo가 ​​관련되어 있다는 생각없이 git를 사용합니다. –

+0

@BurhanAli, 아니, cvs의 요점이다. CVS 메타 데이터는 나에게 특이하지 않지만, 내 체크 아웃 버전에만 해당된다. 전체 체크 포인트는 git에 위임 된 것과 완전히 똑같은 버전이기 때문이다. 'CVS /'를'.gitignore'에 추가 할 때 어떤 이점도 볼 수 없습니다. CVS 데이터를 복구 할 수 없기 때문에 로컬 git checkout을 정리할 때 복구 할 수 없기 때문입니다. 누구에게나 그게 어때요? 만약 당신이 나를 믿지 않는다면, http://github.com/cnst/mdocml을 시도해보십시오. 현대 시스템에서 git과 cvs (git으로 먼저 체크 아웃 한 후)와 같이 작동해야합니다. – cnst

+0

아마도 cvs가 어떻게 사용되고 있는지에 대한 인위적인 결과 일 수 있습니다. 나는'extssh' 메쏘드를 사용했기 때문에'Root' 파일에'username @ hostname :/repopath'와 같은 내용이 들어있어 다른 사람들에게 유용하지 않았습니다. 나는 또한 항상 적극적으로 작업 중이기 때문에 디렉토리를 삭제하지 않았습니다. 이 파일들이 다른 사람들에게 유용하고 그들의 존재가 혼란을 일으키는 지 여부에 대해 신중히 생각하십시오. –

답변

1

git 저장소 내의 {Entries, Repository, Root}가 좋은 생각이지만 다른 사람이 본 적이 없다고 생각합니다. 왜?

메타 데이터 (CVS 참조)와 메타 데이터 (repo 파일)가 혼합되어있는 것이 좋습니다.

예를 들어 은 동일한 종류의 참조를 git 구성 (로컬 설정 파일, repo의 일부가 아닙니다)에 저장하는 것입니다.
업스트림 SVN 저장소에 참여하려는 사람은 git svn clone으로 다시 이동해야합니다.

중간 해결책은 에서 repo가 ​​복제 된 후에 사용자가 CVS 참조 파일을 작성해야 할 때 (CVS) 다시 업스트림에 기여해야한다고 설명하는 것입니다.

+0

- git-cvs 통합은 녹슬지 않습니다. 따라서 이전 스타일의 메타 데이터를 데이터와 혼합하는 것이 가장 좋은 방법 인 것 같습니다. README에서 어떻게 그'CVS' 파일을 생성하는지 설명 할 수 있습니까? 저장소가 포함해야하는 정확한 버전을 참조해야하므로 매우 간단합니다. – cnst

+0

@cnst 동의합니다. 중간 위치를 찾으려고했지만 git-cvs를 사용하지 않을 것을 제안했습니다. 그 종류의 파일이 일반적으로 git repo에서 아닌지 설명하기 위해 git-svn을 사용하고있었습니다. – VonC

+0

하지만 당신이 제안하는 중간 해결책은 실제로 어떤 대안보다 더 나쁘다고 생각합니다. 심지어 그 자체로도 가능하지 않다면 왜 그것을 가능성으로 제시할까요? – cnst