Programing

SVN에서 체크 아웃과 내보내기의 차이점

lottogame 2020. 10. 27. 07:46
반응형

SVN에서 체크 아웃과 내보내기의 차이점


SVN 체크 아웃과 SVN 내보내기의 정확한 차이점은 무엇입니까?

내가 아는 바에 따르면 내보내기에는 메타 데이터를 포함하는 .svn 디렉토리가 포함되지 않으며 체크 아웃에는 해당 .svn 디렉토리가 포함됩니다. 그러나 내 동료는 최근에 SVN 저장소에서 체크 아웃하고 내 보낸 소스에서 컴파일 된 항목에 대해 다른 동작이 있다는이 문제를 겪었습니다. 둘 다 올바르게 컴파일되었지만 svn export작품에서 컴파일 된 것이지만 체크 아웃 된 것은 전혀 작동하지 않습니다.

추신 : 컴파일되는 것은 임베디드 장치에서 사용되는 Linux 2.4 커널입니다. 이미지가 올바르게 컴파일되고로드되지만 체크 아웃 된 이미지가 작동하지 않습니다. insmod 중에 커널 패닉이 발생합니다. 왜 이런 일이 일어날 수 있습니까?

PPS : SVN에서 내보내고 체크 아웃 한 두 디렉터리의 차이를 확인하기 위해 체크섬 및 비교 도구를 사용해 보았습니다. 둘 다 .svn 디렉토리를 제외하고 동일합니다.


svn export단순히 개정판에서 모든 파일을 추출하고 개정판 제어를 허용하지 않습니다. 또한 각 디렉토리에 .svn 디렉토리가 포함되어 있지 않습니다.

svn checkout만들어진 디렉토리에서 버전 제어를 사용할 수 있습니다 (예 : svn updatesvn commit.


언급했듯이 체크 아웃에는 .svn 디렉토리가 포함됩니다. 따라서 작업 복사본이며 커밋을 다시 만들기위한 적절한 정보를 갖게됩니다 (권한이있는 경우). 내보내기를 수행하는 경우 저장소의 현재 상태의 복사본을 가져 오는 것이며 변경 사항을 다시 커밋 할 방법이 없습니다.


체크 아웃을 다시 실행하거나 기존 디렉토리로 내보내십니까?

그렇다면 체크 아웃은 파일 삭제를 포함하여 작업 복사본을 업데이트하기 때문입니다.

그러나 내보내기는 단순히 저장소의 모든 파일을 대상으로 전송합니다. 대상이 동일한 디렉토리 인 경우 저장소에서 삭제 된 파일은 삭제되지 않습니다.

따라서 내보내기 사본은 저장소에서 삭제 된 파일에 의존하기 때문에 작동 할 수 있습니까?


빌드 프로세스가 하위 디렉토리를 조사하고 있으면 안되는 것을 포함 할 가능성이 있습니까? BTW, 합법적 인 체크 아웃을 한 다음 .svn과 포함 된 모든 것을 제거 할 수 있습니다. 그것은 당신에게 수출과 같은 것을 줄 것입니다. 메타 데이터를 제거하기 전후에 그대로 컴파일 해보십시오.


(제럴드의 대답을 보완하기 위해 ...) 또 하나의 미묘한 차이점은 명령은 다음과 같습니다.

svn checkout ...repos_location/my_dir .

my_dir현재 디렉토리 ( .svn폴더 포함)에 파일을 넣습니다.

특정 버전의 svn에서 다음 명령은 다음과 같습니다.

svn export ...repos_location/my_dir .

my_dir현재 디렉토리에 라는 폴더를 만든 다음 내 보낸 파일을 그 안에 넣습니다.


추가 숙고. 당신은 insmod가 충돌한다고 말했습니다. Insmod는 모듈을로드합니다. 모듈은 커널 빌드에서 다른 컴파일 작업으로 빌드됩니다. 커널과 모듈은 동일한 헤더 등으로 빌드해야합니다. 커널 빌드 중에 모든 모듈이 빌드됩니까, 아니면 "존재"합니까?

다른 아이디어와 내가 거의 알지 못하는 것은 svn externals로, (사용되는 경우) 프로젝트에 체크 아웃되는 항목에 영향을 미칠 수 있습니다. 내보낼 때 이것이 다른지 확인하십시오.


프로젝트를 업로드 (또는 다른 사람에게 제공)하려면 내보내기를 사용하십시오. 프로젝트로 작업하는 경우 체크 아웃을 사용하십시오.


아주 간단한 차이점은 프로젝트의 구조 만보고 싶다면 내보내기를 수행합니다.

그리고 파일 작업을하려면 작업 복사본을 만드는 메타 데이터를 포함하는 .svn 폴더가 포함되어 있으므로 체크 아웃해야합니다. 그렇지 않으면 내보내기 오류가 발생합니다.

당신이 경우 svn export다음 편집 일부 파일을 다음 커밋에, 당신은 오류가 발생합니다 :

../../xxx는 작업 복사본이 아닙니다.

참고 URL : https://stackoverflow.com/questions/419467/difference-between-checkout-and-export-in-svn

반응형