contact me at [email protected] link
계속 해 보고 싶었던 작업입니다. Git에서 SVN으로 옯긴 후 github에 초록색 채우기가 많이 어려워진 상태였습니다. 이것이 혹시 포트폴리오에 좋지 않은 영향을 끼치지 않을까 생각이 들기도 했고, 계속 게임을 만들고 있다고는 하는데 개발방송을 하지 않는 이상 이걸 증명할 수 있는 방법도 없어서 고민하던 중이었습니다. 그래서 SVN commit을 하면 트리거되는 스크립트를 짜서 작은 git 레퍼지토리를 자동으로 github에 push 할 생각을 하게 되었습니다. 그러면 보는 사람들이 제가 뭔가를 했다는 사실을 알게 되리라 생각했습니다. 게임은 준비되었다고 생각되면 출시할 예정입니다.(졸작 과정에서 만든 pre alpha 버전은 https://docs.thinkingdarusik.com에 있습니다)
먼저 조사를 좀 해보니 SVN 서버 폴더에 hooks가 있다는 사실을 알게 되었습니다. 폴더를 좀 더 둘러보니 ‘post-commit.tmpl’이라는 파일을 발견했고 이것을 통해 commit이 일어날 때 여러가지 일을 시킬 수 있다는 사실을 알게 되었습니다..
처음에는 이 파일 안에서 모든 것들을 해결하려 했으나, 유저 permission 문제가 있었습니다. git관련 git 유저가 따로 있고, SVN은 www-data가 관여하는 웹 서버에서 관리하고 있었기 때문에 스크립트를 분리해야 했습니다.
이것이 post-commit 파일입니다. 보시다시피 두 개의 입력값을 받는 update bash 스크립트를 만들었습니다. noVNC 콘솔에서 TXN_NAME의 폰트가 깨져 보입니다.
이것이 update 스크립트 입니다. 별건 없고, 무슨 revision이 업데이트되었는지 로그에 추가합니다. 커밋 메시지도 추가하고 싶었지만 이 hook의 입력값에는 포함되어 있지 않은 것 같아 당분간은 이걸로 만족해야겠습니다. 해결되었고 github 레포에 post-commit 파일을 올려놓았습니다.
이것이 백그라운드에서 도는 스크립트입니다. inotifywait 명령어를 사용해 작은 git 레퍼지토리에 changes.txt 파일을 모니터링합니다. 무언가 변화가 있으면 origin, 이 경우 github에 commit 하고 push 합니다..
그리고 물론 백그라운드에서 돌고 있습니다.
그래서 이제부터 개발 상태를 해당 레포(link)에서 확인할 수 있습니다. 계속 작업할 예정이고 준비되면 스팀에 올릴테니 많은 관심 부탁드립니다! 또한 이것보다 더 나은 방법이 있다면 댓글 남겨주시면 감사하겠습니다!