가끔 여러명이 같이 작업하게되는 어떤 프로젝트에서는 특정 중요파일은 여러명이 작업하다보면 릴리즈하기 전에 특정 파일들의 변경이 포함되어있는지 확인해 볼 필요가 있는 경우가 있습니다.
그럴 때 사용할 수 있는 Unix 쉘 스크립트입니다.
Git 저장소내의 중요한 파일 보여주기
Git 저장소에서 중요한 파일이 두 커밋/브랜치/태그 사이에 존재하는지 알려주는 쉘 스크립트
#!/bin/bash
file=".reviewRequire"
# Check .reviewRequire exists
if [ ! -f $file ];
then
echo "$file does not exist."
exit 1
fi
# Check .reviewRequire items are exist between commits/branches/tags
tmpfile=$(mktemp)
while IFS= read -r line
do
git diff --name-only $1 $2 | grep "$line" | tee "$tmpfile"
done <"$file"
# If it doesn't exist, then exit
if [ $? = 1 ]; then
exit 1
fi
# If exists, ask to show diff or not
echo "\nChanges detected! Show diff?"
select yn in "Yes" "No"; do
case $yn in
Yes ) while IFS= read -r line
do
git diff $1 $2 "$line"
done <"$tmpfile";break;;
No) break;;
esac
done
rm "$tmpfile"
사용법
.reviewRequire 라는 파일에 체크해볼 파일들의 경로를 넣습니다.
.reviewRequire 예)
restart.sh
build.sbt
conf/
check.sh을 이용해서 check.sh A B 식으로 실행합니다. (A, B는 커밋해시나 태그/브랜치명)
sh check.sh a735115 3c501e6
sh check.sh v1.1 v1.2-rc
만약 두 커밋사이에 중요 파일이 포함되어 있으면 포함된 파일 이름을 보여주고 diff를 보여줄 것인지 물어봅니다.
build.sbt
conf/application.conf.default
conf/messages
conf/messages.ko-KR
Changes detected! Show diff?
1) Yes
2) No
#?
@doortts (doortts) 님이 작성한 게시글입니다. ---
출처: https://github.com/doortts/check-important-files.git
가끔 여러명이 같이 작업하게되는 어떤 프로젝트에서는 특정 중요파일은 여러명이 작업하다보면 릴리즈하기 전에 특정 파일들의 변경이 포함되어있는지 확인해 볼 필요가 있는 경우가 있습니다.
그럴 때 사용할 수 있는 Unix 쉘 스크립트입니다.
Git 저장소내의 중요한 파일 보여주기
Git 저장소에서 중요한 파일이 두 커밋/브랜치/태그 사이에 존재하는지 알려주는 쉘 스크립트
사용법
.reviewRequire 라는 파일에 체크해볼 파일들의 경로를 넣습니다.
.reviewRequire 예)
만약 두 커밋사이에 중요 파일이 포함되어 있으면 포함된 파일 이름을 보여주고 diff를 보여줄 것인지 물어봅니다.
--- attachments --- 1364178371219.png