SVN에서 파일의 모든 기록 변경 사항을 보는 방법
svn diff -r a:b repo
지정된 두 개정 사이의 변경 사항을 볼 수 있다는 것을 알고 있습니다 . 내가 원하는 것은 파일을 변경 한 모든 개정에 대한 차이점입니다. 그러한 명령을 사용할 수 있습니까?
내장 명령이 없으므로 일반적으로 다음과 같은 작업을 수행합니다.
#!/bin/bash
# history_of_file
#
# Outputs the full history of a given file as a sequence of
# logentry/diff pairs. The first revision of the file is emitted as
# full text since there's not previous version to compare it to.
function history_of_file() {
url=$1 # current url of file
svn log -q $url | grep -E -e "^r[[:digit:]]+" -o | cut -c2- | sort -n | {
# first revision as full text
echo
read r
svn log -r$r $url@HEAD
svn cat -r$r $url@HEAD
echo
# remaining revisions as differences to previous revision
while read r
do
echo
svn log -r$r $url@HEAD
svn diff -c$r $url@HEAD
echo
done
}
}
그런 다음 다음과 같이 호출 할 수 있습니다.
history_of_file $1
설명 한 것과 약간 다르지만 이것이 실제로 필요한 것일 수 있습니다.
svn blame filename
파일을 마지막으로 변경 한 커밋의 시간과 작성자가 각 행의 접두사로 파일을 인쇄합니다.
코드가 변경된 파일의 전체 히스토리를 보려면 다음을 수행하십시오.
svn log --diff [path_to_file] > log.txt
git-svn
저장소를 Git 저장소로 가져 오는 데 사용할 수 있습니다 git log -p filename
. 파일에 대한 각 로그 항목과 해당 diff가 표시됩니다.
로 시작
svn log -q file | grep '^r' | cut -f1 -d' '
그러면 파일이 변경된 수정본 목록이 표시되어에 대한 반복 호출을 스크립팅하는 데 사용할 수 있습니다 svn diff
.
이상한 이름의 "blame"명령이이를 수행합니다. Tortoise를 사용하는 경우 "개정 본에서"대화 상자가 표시되고 그 다음에 개정 번호를 나타내는 행 단위 표시기와 함께 파일이 나열됩니다.
개정 정보를 마우스 오른쪽 버튼으로 클릭하면 체크인에 포함 된 다른 파일과 함께 전체 체크인 정보를 제공하는 "로그 표시"대화 상자가 나타납니다.
내가 아는 한 svn 명령이 내장되어 있지 않습니다. 모든 diff를 빌드하기 위해 여러 명령을 실행하려면 스크립트를 작성해야합니다. 옵션 인 경우 GUI svn 클라이언트를 사용하는 것이 더 간단한 방법입니다. 파괴적인 플러그인 Eclipse와 같은 많은 파일들은 파일 히스토리를 나열 할뿐만 아니라 각 개정판의 차이점을 볼 수있게합니다.
고마워, 벤딘 나는 당신의 솔루션을 매우 좋아합니다.
가장 최근의 변경 사항을 먼저 표시하여 역순으로 작동하도록 변경했습니다. 오래 지속되는 코드에서 중요한 것은 몇 년 동안 유지되었습니다. 나는 보통 그것을 더 많이 파이프합니다.
svnhistory elements.py |more
정렬에 -r을 추가했습니다. 사양을 제거했습니다. '첫 번째 레코드'처리. 차이점이 없으므로 마지막 항목에서 오류가 발생합니다. 나는 그렇게 멀리 떨어지지 않기 때문에 나는 그것과 함께 살고 있지만.
#!/bin/bash
# history_of_file
#
# Bendin on Stack Overflow: http://stackoverflow.com/questions/282802
# Outputs the full history of a given file as a sequence of
# logentry/diff pairs. The first revision of the file is emitted as
# full text since there's not previous version to compare it to.
#
# Dlink
# Made to work in reverse order
function history_of_file() {
url=$1 # current url of file
svn log -q $url | grep -E -e "^r[[:digit:]]+" -o | cut -c2- | sort -nr | {
while read r
do
echo
svn log -r$r $url@HEAD
svn diff -c$r $url@HEAD
echo
done
}
}
history_of_file $1
I've seen a bunch of partial answers while researching this topic. This is what worked for me and hope it helps others. This command will display output on the command line, showing the revision number, author, revision timestamp and changes made:
svn blame -v <filename>
To make your search easier, you can write the output to a file and grep for what you're looking for.
참고URL : https://stackoverflow.com/questions/282802/how-can-i-view-all-historical-changes-to-a-file-in-svn
'Programing' 카테고리의 다른 글
열이 널 입력 가능하도록 Laravel 마이그레이션 변경 (0) | 2020.05.29 |
---|---|
사용자 인증없이 Instagram에서 사용자 미디어를 얻으려면 어떻게해야합니까? (0) | 2020.05.29 |
Windows 7에서 ADB가 Nexus 4를 인식하지 못함 (0) | 2020.05.28 |
라 라벨 : 기본 URL 받기 (0) | 2020.05.28 |
호버로 부트 스트랩 드롭 다운 (0) | 2020.05.28 |