답변:
간단한 대답은 svn export
파일을 체크 아웃하는 대신 파일입니다.
그러나 그것은 당신이 원하는 것이 아닐 수도 있습니다. 필요없는 GB의 정크를 다운로드하지 않고도 파일을 작업 한 후 다시 체크인 할 수 있습니다.
Subversion 1.5 이상을 사용하는 경우 스파 스 체크 아웃을 수행하십시오.
svn checkout <url_of_big_dir> <target> --depth empty
cd <target>
svn up <file_you_want>
SVN의 이전 버전의 경우 다음과 같은 이점이 있습니다.
대안은 (예를 들어, 디렉토리가 작성된 개정판에서 너무 많은 정크 권한을 가진 경우) 저장소의 새로운 위치에 원하는 파일의 URL-> URL 사본을 수행하는 것입니다 (효과적으로 작동하는 분기입니다) 파일). 해당 디렉토리를 확인하고 수정하십시오.
대상의 작업 복사본없이 수정 된 복사본을 리포지토리에 완전히 다시 병합 할 수 있는지 확실하지 않습니다. 그렇다면 그렇게하십시오.
그렇지 않다면 불행히도 전체 디렉토리를 체크 아웃 한 다른 사람을 찾아서해야 할 수도 있습니다. 또는 수정을 할 때까지 나머지는 다운로드를 완료했을 것입니다 ...
svn export
을 사용하므로 원하는 파일을 알고 있다면 웹 인터페이스를 사용하는 것보다 사용하는 것이 더 간단합니다 . 질문자는 이미 SVN을 사용하므로 어떤 클라이언트와 클라이언트가 사용하기 쉬운 지에 달려 있습니다 svn export
. 그래도 웹 브라우저가 브라우징에 더 낫다는 것을 알았습니다 svn ls
:-)
svn export
대신 사용해보십시오 svn checkout
. 단일 파일에서 작동합니다.
제한 이유 checkout
는 리포지토리, 개정판, 특성 등에 대한 메타 정보가 포함 된 작업 복사본 을 생성하기 때문입니다 . 해당 메타 데이터는 '.svn'이라는 하위 디렉토리에 저장됩니다. 그리고 단일 파일에는 하위 디렉토리가 없습니다.
svn
단일 파일 내보내기를 수행하지 않습니다.
svn cat $url_to_file_in_repo > $local_file_name
합니다.
svn cat
또는을 사용하십시오 svn export
.
이를 위해 작업 디렉토리를 가져올 필요는 없지만 변경 사항을 커밋 할 수는 없습니다. 변경하고 커밋해야하는 경우 작업 디렉토리가 필요하지만 완전히 가져올 필요는 없습니다. 디렉토리가 여전히 / 거의 비어있는 개정판을 확인한 다음 'svn cat'을 사용하여 HEAD에서 파일을 추출하십시오.
svn cat svn://.../my_file.txt
내가 찾던 것입니다. 나는 svn://
유일한 (아니 http://
) 저장소 에서 일하고 최신 websvn 인터페이스가 원시 파일 다운로드를 제공하지 않는 것 같습니다 (또는 잘못 구성되었거나 눈이 멀었습니다). 파일을 다운로드하는 것보다 checkout
+ 보다 쉬운 방법 up
입니다.
확인하지 않고 리포지토리에서 readme.txt를 보려면 다음을 수행하십시오.
$ svn cat http://svn.red-bean.com/repos/test/readme.txt
이것은 README 파일입니다. 이것을 읽어야합니다.팁 : 작업 사본이 오래되었거나 로컬로 수정 한 경우 작업 사본에 파일의 HEAD 개정을 보려면 svn cat은 경로를 제공 할 때 HEAD 개정을 자동으로 가져옵니다.
$ cat foo.c
이 파일은 로컬 작업 복사본에 있으며 변경 한 내용이 있습니다.$ svn cat foo.c
저장소에서 최신 개정!
curl
나 wget
.
허용 된 답변에 대한 TortoiseSVN 동등한 솔루션 (SVN을 새로 채택함에 따라 회사의 내부 문서에 이것을 작성했습니다). 여기에서도 공유하는 것이 도움이 될 것이라고 생각했습니다.
단일 파일 체크 아웃 : Subversion은 단일 파일의 체크 아웃을 지원하지 않으며 디렉토리 구조의 체크 아웃 만 지원합니다. (참조 : http://subversion.tigris.org/faq.html#single-file-checkout ). 작업중인 사본으로 체크 아웃 된 모든 디렉토리에서 수정 / 파일 개정에 관한 메타 데이터는 내부 숨겨진 폴더 (.svn / _svn)로 저장되기 때문입니다. 단일 파일에 대해서는 현재 (v1.6) 지원되지 않습니다.
대체 권장 전략 : 단일 파일을 직접 체크 아웃 할 수 있도록 체크 아웃 디렉토리 부분을 한 번만 수행해야합니다. 상위 폴더 및 디렉토리 구조의 스파 스 체크 아웃을 수행하십시오. 스파 스 체크 아웃은 기본적으로 컨텐츠 파일을 채우지 않고 폴더 구조 만 체크 아웃합니다. 따라서 디렉토리 구조 만 체크 아웃하고 모든 파일을 체크 아웃 할 필요는 없습니다. 참조 : http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html
1 단계 : 리포지토리 브라우저로 진행
2 단계 : 작업하려는 모든 파일이 포함 된 저장소 내의 상위 폴더를 마우스 오른쪽 단추로 클릭하고 체크 아웃을 선택하십시오.
3 단계 : 새 팝업 창에서 체크 아웃 디렉토리가 로컬 PC의 올바른 위치를 가리키는 지 확인하십시오. “체크 아웃 깊이”라고 표시된 드롭 다운 메뉴도 있습니다. 요구 사항에 따라 "이 항목 만"또는 "폴더를 포함한 즉각적인 하위 항목"을 선택하십시오. 중첩 된 폴더에서 작업하려면 다음에 바로 진행할 수 있으므로 두 번째 옵션을 사용하는 것이 좋습니다. 그렇지 않으면 중첩 된 폴더에 대해이 전체 절차를 다시 수행해야합니다.
4 단계 : 이제 상위 폴더를 로컬에서 선택한 폴더 내에서 사용할 수 있고 SVN으로 모니터링하고 있습니다 (숨겨진 폴더 ".svn"또는 "_svn"이 있어야합니다). 이제 리포지토리 내에서 단독으로 체크 아웃하려는 단일 파일을 마우스 오른쪽 단추로 클릭하고 "수정할 항목 업데이트"옵션을 선택하십시오. 이제 단일 파일을 작업하고 리포지토리에 다시 체크인 할 수 있습니다.
이게 도움이 되길 바란다.
두 단계로 수행 할 수 있습니다.
메타 정보 만있는 빈 SVN 저장소를 체크 아웃하십시오.
$ cd /tmp
$ svn co --depth empty http://svn.your.company.ca/training/trunk/sql
svn up
지정된 파일을 업데이트하려면 실행하십시오 .
$ svn up http://svn.your.company.ca/training/trunk/sql/showSID.sql
파일이 다른 폴더의 체크 아웃에 포함되도록하여 실제로 필요한 경우의 업데이트를 처리 할 수 있습니다.
SVN 1.6부터는 일종의 svn 링크 인 파일 externals를 만들 수 있습니다. 즉, 단일 파일을 포함하는 다른 버전의 폴더를 가질 수 있습니다. 이 폴더를 체크 아웃 할 때 파일 변경 사항을 커밋 할 수도 있습니다.
매우 간단합니다. 파일을 포함하려는 폴더를 체크 아웃하고 폴더에 속성을 추가하십시오.
svn propedit svn:externals .
다음과 같은 내용으로 :
file.txt /repos/path/to/file.txt
이 커밋 후에는 나중에 폴더를 체크 아웃 할 때 파일이 나타납니다. 기본적으로 작동하지만 위에 링크 된 설명서에 설명 된대로 몇 가지 제한 사항이 있습니다.
Steve Jessop의 답변 이 저에게 효과적이지 않았습니다. SVN에 대한 도움말 파일을 읽었으며 이미지가있는 경우 Photoshop을 수행하지 않는 한 다시 체크인하지 않으려 는 경우 내보내기 가 버전 화되지 않은 체크 아웃보다 명령이 더 좋습니다 (그러나 사소합니다).
그리고 --depth ARG는 안 비어 있지만 파일은 즉각적인 디렉토리에있는 파일을 얻을 수 있습니다. 따라서 필드뿐만 아니라 모든 필드를 얻을 수 있지만 empty 는 저장소에서 아무것도 반환 하지 않습니다 .
svn co --depth files <source> <local dest>
또는
svn export --depth files <source> <local dest>
다른 답변에 관해서는, 고양이 는 모든 것의 이미지가 아니라 텍스트에만 적합한 내용을 읽을 수 있습니다.
--depth empty
다른 파일을 체크 아웃해서는 안되며을 사용하여 단일 파일 만 가져올 수 있다는 것입니다 svn up <source/file>
. 을 사용 svn export
하면 파일을 지정하기 만하면됩니다.
스파 스 체크 아웃 기술을 사용하면 이미 체크 아웃되었거나 존재하는 특정 파일을 간단한 트릭으로 확인할 수 있습니다.
Windows 탐색기에서 '이 항목 만'옵션을 사용하여 저장소의 최상위 레벨을 체크 아웃 한 후에는 먼저 업데이트해야하는 파일을 마우스 오른쪽 단추로 클릭해야합니다. 상황에 맞는 메뉴에서 Repo Browser를 선택하십시오. 저장소 브라우저에서 해당 파일을 다시 찾아 마우스 오른쪽 단추로 클릭하십시오. 이제 상황에 맞는 메뉴에 "수정할 항목 업데이트"가 표시됩니다.
문서화되지 않은 기능인지 또는 단순히 버그인지 확실하지 않습니다. 마침내이 트릭을 찾기 위해 연장 된 근무 시간이 걸렸습니다. 내가 사용하고 TortoiseSVN을 1.6.2.
작업 복사본의 일부가 아닌 디렉토리에 단일 파일을 체크 아웃하고 싶었습니다.
다음 URL에서 파일을 가져 오십시오. http : //subversion.repository.server/repository/module/directory/myfile
svn co http://subversion.repository.server/repository/module/directory/myfile /**directoryb**
그래서 나는 목표 디렉토리가 들어있는 주어진 디렉토리를 확인했다. 나는 더미 디렉토리 (예 :로 끝나는 URL 등)에 도착했다 /etc
.
그런 다음 필요하지 않은 대상 디렉토리의 모든 파일에서 .svn / entries 파일을 비우고 원하는 파일 만 남겨 두었습니다. 이 .svn / entries 파일에는 속성이있는 각 파일에 대한 레코드가 있으므로 가져오고 저장하려는 파일에 관한 레코드 만 남겨 두십시오.
이제 ''.svn ''을 새로운 "작업 카피"디렉토리에 복사하면됩니다. 그런 다음 다음을 수행하면됩니다.
cp .svn /directory
cd /directory
svn update myfile
이제 디렉토리 디렉토리 는 버전 제어하에 있습니다. ``임시 작업 복사본 ''인 디렉토리 directoryb 를 제거하는 것을 잊지 마십시오 .
다른 답변 중 어느 것도 나를 위해 일하지 않았 으므로이 해킹을 사용하여 수행했습니다.
$ cd /yourfolder
svn co https://path-to-folder-which-has-your-files/ --depth files
이렇게하면 원격 경로의 파일 만있는 새 로컬 폴더가 만들어집니다. 그런 다음 여기에 원하는 파일에 대한 심볼릭 링크를 수행 할 수 있습니다.
svn co
는 이미지 파일로 가득 찬 전체 디렉토리를 피하기 위해 하나의 파일에 대해 물었습니다 . 또한 심볼릭 링크를 추가하면 복잡성을 더할 수 있으며 임시 디렉토리에서 이동하면 효과가 있지만 여전히 하나의 이미지에 대해 전체 그림 디렉토리를 확인해야합니다. @ steve-jessop은 옳은 생각을했습니다
이 문제는 다음과 같습니다.
http://subversion.tigris.org/issues/show_bug.cgi?id=823
svn에서 단일 파일을 체크 아웃하고, 변경하고, 변경 사항을 다시 저장소에 커밋 할 수있는 스크립트가 첨부되어 있지만 "svn up"을 실행하여 디렉토리의 나머지를 체크 아웃 할 수는 없습니다. svn-1.3, 1.4 및 1.6으로 테스트되었습니다.
svn up
컴퓨터의 로컬 디렉토리에 로그인하십시오.