SVN- 한 번에 여러 파일을 커밋하는 방법


104

아래와 같이 한 번에 여러 디렉터리에 걸쳐 여러 파일을 커밋하려고했습니다.

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

이후 커밋 목록에서 일부 파일을 제외하고 싶었으므로 위와 같이 명령 줄에 각 파일 이름을 배치했습니다. 메모장에 정리해 놓았는데 약 25 개의 파일이 나왔습니다. 명령 줄에 복사하여 붙여 넣으면 마지막 몇 개의 파일이 누락되어 명령 줄 버퍼 제한 (?) 일 수 있습니다. 버퍼 길이를 늘릴 수있는 옵션이 있습니까?

모든 파일을 텍스트 파일에 넣고 svn commit에 대한 인수로 제공 할 수있는 옵션이 있습니까?


8
@Thi-Subversion에 GUI를 사용하지 않는 사람들은 매저 키스트입니다. Tortoise SVN을 가져 오거나 Linux에 해당합니다.
tpow

1
버퍼 길이에 제한이있는 경우 SVN에 있지 않고 사용중인 모든 셸에 있습니다.
Colin Fine

20
@cinquTimo : 모든 것에 GUI를 사용하는 것을 선호 할 수 있습니다. 다른 사람들은 그렇지 않습니다.
Colin Fine

@Colin, 그렇게 생각합니다.이 경우 쉘 버퍼 길이를 늘리는 방법은 무엇입니까?
Thi

3
"전복에 GUI를 사용하지 않는 사람들은 마조히스트입니다." -마조히즘은 전복을 사용하는 것이지만 우리 중 일부는 선택의 여지가 없습니다.
Daniel

답변:


157

svn changelist 를 사용하여 함께 커밋하려는 파일 집합을 추적 할 수 있습니다 .

링크 된 페이지는 많은 세부 사항으로 이동하지만 다음은 요약 예입니다.

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist

30

--targets ARGARG가 커밋 대상이 포함 된 텍스트 파일의 이름 인 옵션 을 사용할 수 있습니다 .

svn ci --targets myfiles.txt -m "another commit"

이 bash 명령에서 나를 위해 작동합니다.find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

다음과 같은 몇 가지 파일을 커밋하는 데 문제가 없었습니다.

svn commit fileDir1/ fileDir2/ -m "updated!"

이것은 나를 위해 작동하지 않습니다. "svn : '/'is not a working copy"오류가 발생합니다. 여기에 내 질문을 게시했습니다. 볼 수 있습니다. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…

네 잘 했어요. 또한 내 문서 루트 내에서> svn commit을 사용하여 작업 복사본 트리 구조 내의 모든 변경 사항을 커밋 할 수 있습니다. -m '대량 커밋 메시지'
Grigoreas P.

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