특정 파일 하나만 SVN 저장소에서 체크아웃하는 것은 기본적으로 SVN에서 지원하지 않습니다. SVN은 주로 전체 디렉토리나 프로젝트를 체크아웃하는 데 사용됩니다.

그러나 필요에 따라 특정 파일을 체크아웃하는 방법이 있습니다. 이를 위해서는 svn export 명령어를 사용할 수 있습니다. 이 명령어는 .svn 디렉토리를 제외한 특정 디렉토리나 파일을 다른 디렉토리로 내보내는 역할을 합니다.

예를 들어, SVN 저장소에서 특정 파일을 체크아웃하려면 다음과 같이 사용할 수 있습니다:

$ svn export URL/파일이름 [대상디렉토리]

여기서 URL/파일이름은 체크아웃하려는 파일의 URL 또는 경로를 나타냅니다. 대상디렉토리는 파일이 내보내질 로컬 디렉토리를 나타냅니다. 만약 대상 디렉토리를 지정하지 않으면 현재 디렉토리에 파일이 내보내집니다.

예를 들어, 파일 example.txt을 체크아웃하고자 할 때:

& svn export https://svn.example.com/repository/trunk/example.txt

 

이렇게 하면 해당 파일이 현재 디렉토리에 내보내집니다. 필요에 따라 대상 디렉토리를 변경하여 내보낼 수 있습니다.

 

좀더 상세하게 export할 디렉토리 지정 및 svn사용자정보를 추가 옵션으로 선택할수도있습니다.

$ svn export --non-interactive --username <username> --password <password> \
      https://svn.example.com/repository/trunk/example.txt --force /path/to/local/directory

'SVN' 카테고리의 다른 글

SVN Import  (0) 2024.03.13
두개의 원격 SVN간에 diff 비교  (0) 2024.03.13

svn import 명령어를 사용하여 새로운 디렉토리나 파일을 SVN 저장소에 강제로 추가할 수 있습니다. 이 명령어는 일반적으로 로컬 파일 시스템의 파일이나 디렉토리를 SVN 저장소에 추가할 때 사용됩니다.

기본적인 사용법은 다음과 같습니다

svn import [로컬 디렉토리 경로] [SVN 저장소 URL] -m "커밋 메시지"

 

여기서 [로컬 디렉토리 경로]는 추가할 로컬 디렉토리의 경로이고, [SVN 저장소 URL]은 추가할 위치의 SVN 저장소 경로입니다. -m 옵션은 커밋 메시지를 지정하는 옵션입니다.

그러나 svn import는 이미 존재하는 디렉토리나 파일을 추가하는 것을 허용하지 않습니다. 따라서 "강제로" 추가하는 것은 기본 기능이 아니며, 일반적으로 필요하지 않습니다.

만약 이미 존재하는 디렉토리나 파일을 추가해야 하는 상황이라면, 먼저 해당 디렉토리나 파일을 삭제한 후 다시 svn add 명령어를 사용하여 추가해야 합니다. 이렇게 하면 SVN에서 강제로 추가하는 것이 아니라 일반적인 방법으로 파일이나 디렉토리를 추가할 수 있습니다.

 

$ svn help import
import: Commit an unversioned file or tree into the repository.
usage: import [PATH] URL

  Recursively commit a copy of PATH to URL.
  If PATH is omitted '.' is assumed.
  Parent directories are created as necessary in the repository.
  If PATH is a directory, the contents of the directory are added
  directly under URL.
  Unversionable items such as device files and pipes are ignored
  if --force is specified.

Valid options:
  -q [--quiet]             : print nothing, or only summary information
  -N [--non-recursive]     : obsolete; try --depth=files or --depth=immediates
  --depth ARG              : limit operation by depth ARG ('empty', 'files',
                             'immediates', or 'infinity')
  --auto-props             : enable automatic properties
  --force                  : force operation to run
  --no-auto-props          : disable automatic properties
  -m [--message] ARG       : specify log message ARG
  -F [--file] ARG          : read log message from file ARG
  --force-log              : force validity of log message source
  --editor-cmd ARG         : use ARG as external editor
  --encoding ARG           : treat value as being in charset encoding ARG
  --with-revprop ARG       : set revision property ARG in new revision
                             using the name[=value] format
  --no-ignore              : disregard default and svn:ignore property ignores

Global options:
  --username ARG           : specify a username ARG
  --password ARG           : specify a password ARG
  --no-auth-cache          : do not cache authentication tokens
  --non-interactive        : do no interactive prompting
  --trust-server-cert      : accept SSL server certificates from unknown
                             certificate authorities without prompting (but only
                             with '--non-interactive')
  --config-dir ARG         : read user configuration files from directory ARG
  --config-option ARG      : set user configuration option in the format:
                                 FILE:SECTION:OPTION=[VALUE]
                             For example:
                                 servers:global:http-library=serf

$

 

파일하나를 Import 할경우

$ svn import file.txt http://svn.example.com/repo/trunk/file.txt

 

쉘에서 사용자와 비밀번호를 지정해야 하는 경우

$ svn import --non-interactive --username <username> --password <password> \
    -m "Comment" /path/to/file path/to/svn/repo/filename

 

 -N 플래그를 사용하여 비재귀적으로 코드를 체크아웃 할경우, 모든 하위 디렉터리를 체크아웃하지는 않으며 파일 하나를 추가하려는 경우 사용할수 있습니다.

$ svn co -N http://svn.example.com/repo/trunk

'SVN' 카테고리의 다른 글

SVN export  (0) 2024.03.13
두개의 원격 SVN간에 diff 비교  (0) 2024.03.13

두 개의 원격 SVN 저장소 간에 변경 사항을 비교하는 것은 SVN 자체에서 직접 지원하지 않습니다. 대신에 두 저장소를 체크아웃한 후 svn diff 명령어를 사용하여 로컬 작업 디렉토리의 변경 사항을 비교해야 합니다.

 

일반적인 단계는 다음과 같습니다

 

1. 첫 번째 SVN 저장소를 체크아웃합니다

svn checkout [첫 번째 저장소 URL] [첫 번째 로컬 디렉토리]

 

2. 두 번째 SVN 저장소를 체크아웃합니다

svn checkout [두 번째 저장소 URL] [두 번째 로컬 디렉토리]

 

3.두 로컬 디렉토리 간에 변경 사항을 비교합니다

svn diff [첫 번째 로컬 디렉토리] [두 번째 로컬 디렉토리]

 

위와 같은 단계를 따르면 두 개의 원격 SVN 저장소 간에 변경 사항을 비교할 수 있습니다. 하지만 이 방법은 로컬 저장소를 사용하여 변경 사항을 비교하기 때문에 두 저장소가 크다면 시간과 저장 공간이 많이 필요할 수 있습니다.

'SVN' 카테고리의 다른 글

SVN export  (0) 2024.03.13
SVN Import  (0) 2024.03.13

+ Recent posts