svn에는 수정 버전 22334에서 생성 된 브랜치가 있습니다. 그런 다음 브랜치에서 커밋이 이루어졌습니다.
트렁크에있는 것과 비교하여 브랜치에서 변경된 모든 파일의 목록을 얻으려면 어떻게해야합니까? 브랜치가 생성 된 때와 “지금”사이에 트렁크에서 변경된 파일을보고 싶지 않습니다.
답변
이것은 내가 생각할 것입니다.
svn diff -r 22334:HEAD --summarize <url of the branch>
답변
-u 옵션과 함께 상태 명령을 사용하여 원하는 경우 변경된 파일의 빠른 목록을 얻을 수도 있습니다.
svn status -u
그러면 현재 코드베이스에있는 파일 개정과 저장소의 최신 개정 버전이 표시됩니다. 실제로 파일 자체의 차이점을보고 싶을 때만 diff를 사용합니다.
다음과 같은 일반적인 시나리오를 설명하는 svn 명령에 대한 좋은 자습서가 있습니다. SVN Command Reference
답변
다음 명령을 사용할 수 있습니다.
svn status -q
svnbook 에 따르면 :
With --quiet (-q), it prints only summary information about locally modified items.
경고 :이 명령의 출력에는 수정 사항 만 표시됩니다. 따라서 svn up
파일의 최신 버전을 가져오고 svn status -q
수정 한 파일을 가져 오는 데 사용 하는 것이 좋습니다 .
답변
수정 된 파일 만 나열됩니다.
svn status -u | grep M
답변
-u 옵션은 컴파일 중에 추가 된 경우 개체 파일을 포함하여 표시됩니다.
따라서이를 극복하기 위해 추가로 이와 같이 사용할 수 있습니다.
svn status -u | grep -v '\?'
답변
echo You must invoke st from within branch directory
SvnUrl=`svn info | grep URL | sed 's/URL: //'`
SvnVer=`svn info | grep Revision | sed 's/Revision: //'`
svn diff -r $SvnVer --summarize $SvnUrl
답변
svn log -q -v
경로를 표시하고 주석을 숨 깁니다. 모든 경로가 들여 쓰기되어 공백으로 시작하는 줄을 검색 할 수 있습니다. 그런 다음에 파이프 cut
와 sort
깔끔한 최대 :
svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u
이것은 분기점 이후 분기에 언급 된 모든 경로를 가져옵니다. 삭제 및 추가 된 파일과 수정 된 파일이 나열됩니다. 나는 방금 이것을 사용하여 새로운 개발자의 약간 지저분한 브랜치에 대한 검토에 대해 걱정해야 할 것들을 얻었습니다.