일부 확실하지 않은 (그러나 유효한) 이유로 파일이 우리 저장소에서 버전이 변경되었는지 확인해야합니다. 파일이 svn-repo에 존재했는지 어떻게 알 수 있습니까?
는 난 단지 제거 된 항목을 파싱 한 후 포함 된 디렉토리의 로그를 얻고의 로터리 방식으로 발견 :svn log -v a/b/|grep " D .*a/b/c.xml"
그것은 작동을하지만, "부정"다소 취약 느낀다.
일부 확실하지 않은 (그러나 유효한) 이유로 파일이 우리 저장소에서 버전이 변경되었는지 확인해야합니다. 파일이 svn-repo에 존재했는지 어떻게 알 수 있습니까?
는 난 단지 제거 된 항목을 파싱 한 후 포함 된 디렉토리의 로그를 얻고의 로터리 방식으로 발견 :svn log -v a/b/|grep " D .*a/b/c.xml"
그것은 작동을하지만, "부정"다소 취약 느낀다.
귀하의 질문에 따라 개의 파일을 암시 적으로 귀하의 요청으로 한정하고 있습니다 (단순한 디렉토리 검색에서 삭제되지 않는 것으로 추정되므로). Lazy Badger의 의견은 정확성을 잃지 않고 자격을 제거하고 명령을 단순화하는 데 가치가 있습니다. 나는 모든 것을 단순화하는 데 찬성하지만 모든 문제를 감안할 때 약간의 추가 비용으로 더 많은 해결책을 얻는 것을 고려하고 싶다.
그래서 제안 된 솔루션을 시작 :
svn log -v a/b/ | grep " D .*a/b/c.xml"
내가 먼저 -q
옵션을 추가, 출력이 줄어 듭니다 그냥 어쨌든 폐기됩니다
svn log -v -q a/b/ | grep " D .*a/b/c.xml"
그리고 내가 원하는 것 단지 인지 알기 위해서과 같은 파일이 삭제되었지만, (즉, 어떤 개정판)이 삭제되었을 때 도 삭제되었습니다. 당신은 또한 암시 적으로 유닉스/리눅스 환경을 자격이 있기 때문에, 여기에 (이 blog entry에서 적응) AWK와 솔루션입니다 :
–v
매개 변수를 사용하는 경우 때문에 svn log
출력 형식의 작동 svn log -q -v a/b/ | awk '
/^r[0-9]* \|/ { REVISION=$1; }
/D/ { print REVISION": "$0; }
' | grep " D .*a/b/c.xml"
: 그것은 그 리비전에있는 모든 파일 다음에 리비전을보고합니다. 여기서 파일 Page.cs이 개정 10506에서 삭제되었음을 나타내는 예이다 :
r10506 | msorens | 2011-02-14 12:58:56 -0800 (Mon, 14 Feb 2011) | 1 line
Changed paths:
A /Projects/Test/Common
A /Projects/Test/Common/Setup.cs
A /Projects/Test/Common/Utility.cs
D /Projects/Test/Page.cs
(이하 'D 삭제 된 모든 파일이 표시된 후 상단 행에서 버전 번호를 추출하고,이 형식으로 해석 출력 위에 AWK 명령 "라인). 당신의 작업의 루트에 로그 창을 열어 ---
$(switch -Regex (svn log -q -v a/b) {
'^(r[0-9]*) \|' { $rev = $Matches[1] }
'^ D\s+(.*)' { "{0,-6} {1}" -f $rev, $Matches[1] }
}) | Select-String "a/b/c.xml"
그러나 TortoiseSVN을 가진 쉬운 방법이 있습니다 : Windows의 경우, PowerShell은 스위치 문을 사용하여 동일한 전력 및 AWK로 사용의 용이성을 제공합니다 검색 상자에 파일 이름을 복사하고 입력하십시오. 수정 목록은 사용자가 입력 한 내용을 즉시 필터링합니다. 둘 이상의 출력 행이 표시되면 최신 (맨 위) 개정은 항상 파일이 삭제 된 개정입니다. @Michael Sorens의 대답
덕분에, 내 경우에는이 작업
내가 폴더 여기 ./assets/gfx
에서 제거 곳 파일 bash 쉘에 대한 코드입니다 확인할 필요가있어 각 라인은 명령 행 'mysearchstr'당신이 입력 설정이 일단 한 줄에
mysearchstr=assets/gfx/
svn log -v $mysearchstr | awk '/^r[0-9]* \|/ { REVISION=$1; }/D/ { print REVISION": "$0; }' | grep menu
그냥 내가이 솔루션을 구성하는 방법을 공유하기를 원해요 쉘로 VAR의 집합입니다.그것은 원래의 답을 다시 보여줍니다.하지만 어쩌면 누군가에게 간결한 코드 블록을 쉽게 복사 할 수있게하고, 실제 솔루션 대답 (누군가 구현하지만)이 실제로 정확하다는 것을 되풀이합니다.
svn log -q -v | grep filename | wc -l –