[svn] 버전없는 파일을 모두 SVN에 ‘svn add’하는 방법은 무엇입니까?

SVN 저장소에 작업 사본의 모든 버전 화되지 않은 파일을 자동으로 ‘svn add’하는 좋은 방법을 찾고 있습니다.

소스 제어하에 있어야 할 파일을 만들 수있는 라이브 서버가 있습니다. 한 번에 하나씩 추가하고 추가하는 대신 자동으로 추가 할 수있는 짧은 스크립트를 갖고 싶습니다.

내 서버에서 Windows Server 2003을 실행 중이므로 Unix 솔루션이 작동하지 않습니다.



답변

svn add --force * --auto-props --parents --depth infinity -q

좋은 팁! 한 가지 언급 : 내 Eclipse 는 새 파일을 무시 목록에 자동으로 추가합니다. 구성 문제 일 수 있지만 어쨌든 --no-ignore도움 이되는 옵션이 있습니다.

이 후에 커밋 할 수 있습니다.

svn commit -m 'Adding a file'


답변

이것은 것과 다른 질문 이지만이 질문에 속하는 답변이 있습니다.

svn status | grep '?' | sed 's/^.* /svn add /' | bash


답변

작동하는 것은 다음과 같습니다.

c:\work\repo1>svn add . --force

하위 디렉토리의 내용을 추가합니다.

무시 된 파일을 추가하지 않습니다.

추가 된 파일을 나열합니다.

명령의 점은 현재 디렉토리를 나타내며, 현재 디렉토리와 다른 디렉토리를 추가하려는 경우 특정 디렉토리 이름 또는 경로로 바꿀 수 있습니다.


답변

이것은 나를 위해 일했다 :

svn add `svn status . | grep "^?" | awk '{print $2}'`

( 소스 )

Windows의 문제점을 이미 해결 했으므로 이것은 Sam 솔루션 인 UNIX 솔루션입니다. 제목에 키워드 “WINDOWS”가 포함되어 있지 않기 때문에 같은 질문을하는 사람들에게 여전히 유용하다고 생각하면서 여기에 추가했습니다.

참고 (2015 년 2 월) : “bdrx”로 주석을 달면 위 명령을 다음과 같이 단순화 할 수 있습니다.

 svn add `svn status . | awk '/^[?]/{print $2}'`


답변

svn add --force .

현재 디렉토리와 모든 버전 하위 디렉토리에 버전없는 파일이 추가됩니다.


답변

이 방법은 공백의 개수 / 조합이있는 파일 이름을 처리해야합니다.

svn status /home/websites/website1 | grep -Z "^?" | sed s/^?// | sed s/[[:space:]]*// | xargs -i svn add \"{}\"

다음은 해당 명령의 기능에 대한 설명입니다.

  • 변경된 모든 파일을 나열하십시오.
  • 이 목록을 ‘?’가있는 행으로 제한하십시오. 처음에는-즉 새로운 파일.
  • ‘?’를 제거하십시오. 줄의 시작 부분에 문자.
  • 줄의 시작 부분에서 공백을 제거하십시오.
  • 파일 이름을 xargs로 파이프하여 svn add를 여러 번 실행하십시오.

공백이있는 파일 이름을 ‘svn add’로 가져올 수 있도록 xargs에 -i 인수를 사용하십시오. 기본적으로 -i는 {}를 플레이스 홀더로 사용하도록 설정하여 ‘svn에서 사용하는 파일 이름 주위에 “문자를 넣을 수 있습니다. 더하다’.

이 방법의 장점은 공백이있는 파일 이름을 처리해야한다는 것입니다.


답변

비 명령 행 솔루션을 사용하려는 경우 TortoiseSVN 에는이 기능이 내장되어 있습니다. 최상위 폴더를 마우스 오른쪽 버튼으로 클릭하고 추가 …를 선택 하십시오 .