특정 파일 목록 (SVN이 커밋하려는 파일 목록 중 하나) 만 커밋하는 방법이 있습니까?
UI없이 터미널에서 MAC OS X를 사용하고 있습니다.
특정 파일 목록 (SVN이 커밋하려는 파일 목록 중 하나) 만 커밋하는 방법이 있습니까?
UI없이 터미널에서 MAC OS X를 사용하고 있습니다.
답변:
확실한. 파일을 나열하십시오.
$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png
특정 파일 세트를 무시하도록 지시하는 방법을 모르겠습니다. 물론 커밋하려는 파일이 셸에서 쉽게 나열되면 다음을 사용할 수 있습니다.
$ svn ci -m "No longer sets printer on fire" printer-driver/*.c
svn 명령이 파일에서 커밋 할 파일 목록을 읽도록 할 수도 있습니다.
$ svn ci -m "Now works" --targets fix4711.txt
svn add
리포지토리에 파일을 추가하는 데 사용됩니다.
변경 목록을 사용하십시오. 파일을 지정하는 것의 장점은 커밋하기 전에 원하는 모든 것이 실제로 포함되어 있는지 시각화하고 확인할 수 있다는 것입니다.
$ svn changelist fix-issue-237 foo.c
Path 'foo.c' is now a member of changelist 'fix-issue-237'.
그렇게해서 svn은 이제 당신을 위해 일들을 분리시킵니다. 여러 변경 사항을 저글링 할 때 도움이됩니다.
$ svn status
A bar.c
A baz.c
--- Changelist 'fix-issue-237':
A foo.c
마지막으로 원하는 것을 커밋하도록 지시하십시오.
$ svn commit --changelist fix-issue-237 -m "Issue 237"
svn changelist fix-issue-237 --recursive path/to/directory
기본적으로 커밋하려는 파일을 명령 줄에 넣습니다.
svn ci file1 file2 dir1/file3
서브 버전 상태 때문에 창의력을 발휘해야했습니다. svn st
보여 M
, A
및 ~
상태. 난 단지 싶어 M
하고 A
그래서 ...
svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt
이 명령은 또는로 svn st
시작 하여 공간 구분 기호를 사용하여 잘라낸 다음 열 8을 끝까지 가져옵니다. targets.txt에 덤프하고 덮어 씁니다.M
A
그런 다음 targets.txt를 수정하여 파일 목록을 제거하십시오. 그런 다음 아래를 실행하여 커밋하십시오.
svn ci -m "My commit message" --targets targets.txt
아마도 가장 일반적인 사용 사례는 아니지만 누군가에게 도움이되기를 바랍니다.
grep -v '^~'
원하는 것을 블랙리스트에 올릴 수도 있습니다 .