2011-10-04 4 views
1

버전이 지정된 디렉터리를 내 보낸 경우 모든 .svn 폴더가없는 깨끗한 복사본이 만들어 진다고합니다. 이제이 버전을 버전 관리에 다시 적용하려고합니다.내 보낸/깨끗한 디렉토리를 SVN 컨트롤 아래에 넣는 방법은 무엇입니까?

루트 디렉토리에서 SVN 저장소로 다시 연결하는 "체크 아웃"이 작동하지 않는 것 같습니다.

나는 이것이 실제로 발생해서는 안되는 상황이지만 이해를 돕기위한 해결책에 관심이 있음을 알고 있습니다.

답변

0

svn import을 사용하여 버전 제어하에 코드를 다시 가져 오는 것이 좋습니다.

소스 트리에 보존하려는 내용이 변경되었다고 가정합니다. 그렇지 않으면 소스에 버전 제어 메타 데이터를 다시 추가하고 다시 시도 할 이유가 없습니다. svn checkout.

따라서 버전 제어하에 소스를 가져 오려면 svn import을 실행 한 다음 svn merge을 사용하여 소스 트리를 다른 분기와 비교합니다. 그런 다음 변경 사항을 커밋하면 버전 제어를 통해 효과적으로 변경 사항을 적용 할 수 있습니다.

+0

여기에는 저장소를 변경하는 작업이 포함됩니다. SVN 컨트롤 아래에 디렉토리를두기를 원하며 적어도 변경 사항을 커밋하지 마십시오. – Dunaril

0

정확한 시점에 정확한 버전을 체크 아웃하면됩니다 (리비전 번호를 알아야합니다!). 그런 다음 .svn 폴더를 제외하고 모든 것을 버리고 (bash/etc를 사용하여), 그 위에 디렉토리를 복사하십시오.

3

내 보낸 코드를 변경했다고 가정합니다. 그렇지 않으면 모든 코드가 저장소에 있으므로 실제 문제가 발생하지 않으므로 내 보낸 폴더는 일회용입니다.

이름을 변경하거나 삭제하지 않은 경우 새로운 작업 복사본 (즉, 저장되지 않은 로컬 변경 사항이없는 복사본)을 체크 아웃하고 내 보낸 폴더를 맨 위에 놓을 수 있습니다. 메시지가 나타나면 기존 파일을 덮어 쓰면 거의 완료됩니다. 변경 사항을 검토하고 커밋하십시오.

삭제 등이있는 경우 파일 비교 유틸리티를 사용하여 내 보낸 파일을 작업 복사본으로 복사하고 더 이상 존재하지 않는 파일을 제거 할 수 있지만 추가 조정이 필요합니다.

+0

실용적인 컨텍스트에서 작동하지만 내 경우에는 "in place"즉, 원래 파일을 하나의 파일을 삭제하지 않고 SVN 컨트롤에 넣고 싶습니다. – Dunaril

+0

그런 다음 내보내기 사본 위에 작업 카피를 놓고 덮어 쓸 것인지 묻는 메시지가 나타나면 ** 아니요 **라고 대답하십시오. * (정기적으로 내보내기를 편집 하시겠습니까?) * –

+2

체크 아웃 후 원본 파일을 제거하고 내 보낸 트리를 복사하여 삭제 내용을 추적 할 수도 있습니다. – Zak

관련 문제