Program Tip

svn 로컬 사본에서 수정 된 파일 목록

programtip 2020. 12. 13. 10:26
반응형

svn 로컬 사본에서 수정 된 파일 목록


Tortoise 클라이언트를 사용하여 SVN에 대한 변경 사항을 체크 아웃 / 커밋합니다. 하지만 내 로컬 사본에서 변경된 모든 파일의 목록을 찾을 수 없기 때문에 조금 어렵습니다. 지름길이나 내가 간과 한 것이 있습니까?

저는 SVN을 처음 사용합니다. 참고로.


tortoise의 "수정 사항 확인"명령은 작업 복사본의 모든 변경된 파일 목록을 표시합니다. "커밋"은 변경된 모든 파일도 표시합니다 (그러면 커밋 할 수 있음). "되돌리기"는 변경된 파일도 표시합니다 (그런 다음 되돌릴 수 있음).


나는 거북이에 익숙하지 않지만 Linux 로의 전복을 사용하면 다음을 입력합니다.

svn status

일부 인터넷 검색은 tortoise도 명령 줄 특공대를 지원하고 svn 저장소가 포함 된 폴더에서 svn status를 시도한다고 알려줍니다.


나는 svn status -q일할 수 없었다 . 당신이 리눅스 박스에 있다고 가정하고, 수정 된 파일 svn status | grep 'M '만보기 위해 다음을 실행하십시오 : 윈도우에서는 당신이 무엇을할지 모르겠습니다. 아마도 'FindStr'로 뭔가를 할 것입니다.


아래 명령은 수정 된 파일 만 창에 표시합니다.

svn status | findstr "^M"

정말로 수정 된 파일 을 나열 하려면 파일이 수정되었음을 나타내는 "M"을 선행 하여 svn st 의 출력을 줄일 수 있습니다 . 나는 이렇게 할 것이다 :

svn st | grep ^M

svn status | grep 'M 'MacOSX에서 잘 작동합니다 .

방금 테스트했습니다.


파일 이름 만 원하고 추가 된 파일도 원하는 경우 (A).

svn st | grep ^[AM] | cut -c9-

참고 : 처음 7 개 열은 각각 한 문자 너비와 공백, 파일 이름 순입니다.


이것은 Windows에서해야합니다 : svn stat | "M"찾기


svn 상태 | grep ^ M은 수정 된 파일을 나열합니다. M-수정 됨 :)


말했듯 SVN Check for modification이 GUI 및 tortoiseproc.exe /command:repostatus /path:"<path-to-version-control-file-or-directory>"CLI에서 .NET의 루트와 관련된 변경 사항을 확인해야합니다 <path-to-version-control-file-or-directory>.

안타깝게도이 명령은 모든 로컬 변경 사항을 표시하지 않으며 요청 된 디렉토리 루트와 관련된 변경 사항 만 표시합니다. 독립 실행 형 체크 아웃 또는 루트 하위 디렉터리의 고아 외부 디렉터리와 같이 개별적으로 수행 된 변경 사항은 Unversioned 또는 Nested 로 표시되며 커밋 / 조회를 놓칠 수 있습니다.

이러한 상황을 방지하려면 다음을 호출하거나 tortoiseproc.exe /command:repostatus /pathfile:"<path-to-file-with-list-of-items-to-lookup-from>"(명령 줄에 대한 자세한 설명서 참조 : https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-automation.html ) 일부 타사 응용 프로그램 / 유틸리티 / 스크립트를 사용하여 통화를 마무리합니다.

내가왔다 스크립트 내 자신의 세트를 썼다 Windows 용을 로부터 호출 자동화 Total Commander: https://sf.net/p/contools/contools/HEAD/tree/trunk/Scripts/Tools/ToolAdaptors/totalcmd/README_EN.txt를 ( 검색 TortoiseSVN)

-WC 디렉토리 세트에 대한 TortoiseSVN 상태 대화 상자를 엽니 다 (항상 버전이없는 변경 사항을 표시하기 위해 열립니다).

Command:   call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:repostatus "%P" %S

-WC 디렉토리 세트에 대한 TortoiseSVN 커밋 대화 상자를 엽니 다 (버전 변경 사항이 비어 있지 않은 경우에만 열립니다).

Command:   call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:commit "%P" %S

참고 항목 README_EN.txt최신 자세한 내용은 (당신이 실행해야 configure.bat사용 전과 같이 자신에 스크립트의 나머지 복사 call_nowindow.vbs).


Powershell을 사용하여 다음을 수행 할 수 있습니다.

# Checks for updates and changes in working copy.
# Regex: Excludes unmodified (first 7 columns blank). To exclude more add criteria to negative look ahead.
# -u: svn gets updates
$regex = '^(?!\s{7}).{7}\s+(.+)';
svn status -u | %{ if($_ -match $regex){ $_ } };

여기에는 속성 변경이 포함됩니다. 이는 열 2에 표시됩니다. 또한 열 3-7에 표시되는 파일의 다른 차이점도 포착합니다.

출처 :


폴더 오른쪽 클릭-> Tortoise SVN 클릭-> 수정 확인

참고 URL : https://stackoverflow.com/questions/1168464/svn-list-of-files-that-are-modified-in-local-copy

반응형