2010-05-08 3 views
3

현재 프로젝트에 대한 플러그인과 함께 체크 아웃 된 SVN 프로젝트에서 작업하고 있습니다. 모든 SVN 체크 아웃의 현재 버전을 포함하여이 모든 작업을 단일 git 저장소에 보관하고 싶습니다.SVN 작업 사본을 Git 저장소에 복사합니다.

나는 SVN 작업 복사본을 git로 체크인하여이 작업을 수행했다고 생각했습니다. 그러나, 내가 새 컴퓨터를 당기면 SVN 작업 복사본이 손상되었습니다. 특히 그것은 자식이 .svn/tmp/및 .svn/props/폴더 중 하나를 선택하지 않았던 것으로 보입니다.

이제 SVN 프로젝트를 새로 체크 아웃했습니다. 거기에 내 자식 repo에 자식 폴더를 추가 할 수있는 방법이 있나요 (git status는 내 .gitignore가 비어 있어도 그들을 무시합니다) 또는 강제로 SVN을 다시 생성합니까?

답변

2

마침표로 시작하는 파일 확장명은 규칙에 따라 숨김 파일로 간주됩니다. 따라서 Git 전문가는 아니지만 Git이 기본적으로 이러한 파일을 무시한다고 생각합니다.

Git에서 svn 메타 데이터를 유지함으로써 달성하고자하는 것이 있는지 물어볼 수 있습니까?

+0

git을 사용하여 svn을 사용하는 오픈 소스 프로젝트에 대한 패치 작업을 관리하고 싶습니다. 필자의 접근 방식 (필자가 작동 할 때)을 통해 패치에 여러 개의 자식 버전을 만들고 tortoisesvn을 사용하여 쉽게 패치 파일을 생성 할 수 있습니다. 이 모든 것은 저장되는 메타 데이터에 의존하기 때문에 정상적인 svn 도구가 여전히 작동합니다. – mchr

+0

하지만 git이 .svn 디렉토리를 모니터/변경하지 않는다면 그 디렉토리는 보존되고, 완료되면 패치를 생성하기 위해 사용할 수 있습니다. btw, 그냥 신선한 체크 아웃을 덮어 씀으로써 패치를 생성하는 것도 쉽지 않을 것입니다. 파일 이름을 변경하거나 파일을 옮길 경우이 정보가 Git에서 SVN으로 전송되므로 .svn 파일을 저장할 수 있다는 것은 다른 원시 파일을 체크 아웃 한 것보다 훨씬 도움이되지 않습니다. –

+0

이것들은 모두 합리적인 제안입니다. 그러나 나는 신속하게 svn 작업 복사본을 포함하여 내 repo를 끌어와 모든 "그냥 일할"수 git 수있게하는 것이 좋습니다. 그것은 가능하지 않은 것 같아 내일 아침에 필자는 빠진 tmp와 props 디렉토리를 재 생성하는 빠른 스크립트를 작성할 것입니다. – mchr

1

.svn/tmp/.svn/props/ 디렉토리 중 일부가 비어 있다면 단순히 git 저장소에 추가되지 않는다는 것을 잊지 마십시오.
by design이며 .gitignore과 아무 관련이 없습니다.

+0

빈 디렉터리 제한을 잊어 버렸습니다. 아마도 필자는 이러한 누락 된 디렉토리를 재생성하는 스크립트를 작성하여이 문제를 해결할 수있었습니다. – mchr

+0

요청에 따라 담당자가 다시 계산되었습니다. –

+0

@Bill : 담당자에게 감사드립니다. – VonC

0

왜 자식 svn의 복제를 사용하지 :

http://ftp.kernel.org/pub/software/scm/git/docs/git-svn.html

이 자식 저장소에 전체 SVN의 역사를 가져옵니다.

+0

나는 자식 - svn을 알지 못했습니다. 그것은 내가 원하는 것을 성취 할 수있는 것처럼 보이지만 덜 직관적이라고 느낍니다. git-svn을 시작하기위한 좋은 자습서를 권할 수 있습니까? – mchr

관련 문제