.svn 폴더와 하위 내용을 제외한 Rsync?


10

서브 버전 리포지토리 (reversion repo) 및 작동 방식을 잘 이해하지 못한 새로운 사용자를 다루기.

짧은 이야기, 무작위 .svn 폴더 복사로 인해 로컬 구조가 엉망이되었으므로 다음을 수행했습니다.

  • 스테이징이라는 폴더에 로컬 구조를 복사했습니다.
  • 준비 디렉터리에서 모든 .svn 폴더를 반복적으로 삭제했습니다.
  • 저장소를 "클린 폴더"에 체크 아웃

이제 마지막 단계에 있습니다. 준비 폴더 내용을 가져 와서 깨끗한 내용을 덮어 씁니다.

스테이징 디렉토리의 내용을 클린 디렉토리에 복사하여 클린 디렉토리에만있는 모든 것을 제거하지만 클린 폴더의 .svn 폴더를 그대로 두는 명령이 필요합니다.

이것은 rsync 작업처럼 들립니다. 다음 명령이 정확합니까?

rsync -avr --exclude=.svn* [staging] [clean]

6
당신은 항상 실행할 수 있습니다 rsync와 함께 --dry-run알아 옵션!
Tim

하하, 고마워! 그 옵션이 존재하는지 전혀 몰랐습니다. 그 남자를 좀 더주의 깊게 읽어야했다!
SeanKilleen

답변:


31

-Crsync에 대한 옵션은 당신이 원하는 것을 할 수있다.

매뉴얼 페이지의 짧은 설명이 당신을 속이게하지 마십시오. 옵션은 CVS에만 적용되는 것처럼 보이지만 rsync 버전에 따라 존재하는 거의 모든 일반 버전 제어 시스템의 파일을 건너 뜁니다.

# rsync version: 3.0.7

-C, --cvs-exclude           auto-ignore files in the same way CVS does

...

          The exclude list is initialized to exclude the  following  items
          (these  initial  items are marked as perishable — see the FILTER
          RULES section):

                 RCS  SCCS  CVS  CVS.adm   RCSLOG   cvslog.*   tags   TAGS
                 .make.state  .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak
                 *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so  *.exe
                 *.Z *.elc *.ln core .svn/ .git/ .bzr/

          then,  files  listed in a $HOME/.cvsignore are added to the list
          and any files listed in the CVSIGNORE environment variable  (all
          cvsignore names are delimited by whitespace).

2
이러한 확장명은 예를 들어 복사하려는 파일에 사용될 수 있으므로 매우주의하십시오. *.aiOS 정적 라이브러리 용입니다.
맥스 추키 미아

NB 파일 및 디렉토리는 제외됩니다. "core"라는 폴더는 복사되지 않습니다. 예 : / myproj / api / / myproj / core / <-백업되지 않음!
teknopaul

7

거의 – 이것은

rsync -av --exclude='.svn*' [staging] [clean]

또는 쉘이 와일드 카드를 확장하지 못하게하는 다른 형태의 인용. (와일드 카드는 이름이로 시작하는 가능성이 낮은 파일과 만 일치 --exclude=.svn하지만 위험을 감수하지 않고 셸이 일치하지 않는 와일드 카드를 질식 시키거나 빈 목록으로 확장하도록 구성된 경우에도 올바르게 작동하는 것이 좋습니다. )

-r에 이미 포함되어 -a있습니다. 여분 r은 불필요하며 아무런 해를 끼치 지 않습니다.

--exclude인수와 일치하는 파일을 복사하거나 재귀 순회를 고려하지 않습니다. rsync의 일반적인 어려움은 다른 부분으로 이동하는 것입니다 (일부 디렉토리 제외). Rsync 필터 : 일부 팁에 대해서만 하나의 패턴 복사를 참조하십시오 .

이 경우 버전 제어 디렉토리를 제외 하면 원하는 것을 빠르게 얻을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.