기본 콘텐츠로 건너뛰기

git commit 버젼 정보를 이용한 배포 버전 관리

cvs를 사용하다가 svn을 사용하니깐 편해졌다고 느끼고 있었는데

git을 사용하니깐 차원이 다른 편함이네요.  자유로워진 느낌이랄까. 

회사를 옮기면서 버젼 관리 고민하다가 컴파일되어서 배포되는 파일들이 많아서

git commit hash 값으로 하면 관리하기 편할것 같아서 찾아보니 좋은 정보가 있어서

공유합니다. powershell로 되어있는데 python으로 

약간 수정해서 사용하고 있습니다. 

일단 버젼에 대한 고민이 없어진것 같아서 좋은것 같네요...

다른 분들은 어떻게 관리들 하시는지 궁금하네요??? ㅋㅋ

python코드 공유합니다. 




  • hash/email/날짜
git log -n 1 --format="%h - %H%n%ae%n%ai"

c197222 - c197222f052002126ede8ec71b4fb1e655c29722
eek@메일주소
2014-02-05 19:25:00 +0900


  • 변경확인
컴파일전에 commit안된 것들 있는지 확인

git ls-files --exclude-standard -d -m -k | wc -l 


  • 생성된 버젼 sample
version.h파일 생성



  • version생성 스크립트 make_version.py
요약

  1. commit hash/email/date 추출
  2. 파일들 commit 되어 컴파일되어있는지 확인
  3. version.h파일 생성 
  4. 컴파일 후 배포 
  5. 끝.

댓글

이 블로그의 인기 게시물

사람들이 보드게임을 하는 이유

사람들이 보드게임을 통해 얻고자 하는 건 무엇일까? 보드게임을 디자인함에 있어, 가장 먼저 `왜 사람들은 보드게임을 하려고 하는지`에 대한 문제에 접하게 된다. 사람들은 많은 이유들로 인해 보드게임을 즐긴다. 이제 그 이유들을 살펴보기로 하자. 성공적인 게임의 중요한 요소 중 하나는 플레이어가 현명한 판단을 내려 말을 이동시키거나 올바른 답을 찾았을 때 느끼는 희열에 있다. Whit Alexander와 Richard Tait는 어느 잡지사와의 인터뷰에서 자신들이 개발한 `크레니움(Cranium; 1998년에 발매된 유명한 파티게임)은 친구들 앞에서 영리하고 재미있는 사람으로 인정받을 수 있게 하기 위해 만들었다고 했으며, 최소한 게임을 진행하는 동안 1번 이상 같은 편끼리 하이파이브를 할 수 있도록 고안했다고 한다. 모든 성공적인 보드게임들은 플레이어 자신이 현명하고 창조적이며 냉철하다고 느낄 수 있게 해 준다. 이러한 `감정적 보상`은 사람들이 계속해서 보드게임을 즐기게 해 준다. 보드게임을 하는 가장 큰 이유 중의 하나는 친구들과 함께 어울릴 수 있는 기회를 제공하고 사교에 도움을 주기 때문이다. `던전 앤 드래곤(Dungeons & Dragons: TRPG의 대표작)` 같이 어렵고도 시간이 많이 걸리는 게임의 디자이너들 조차도 게임의 즐거움은 친구들과 같이 떠들고 얘기하는데 있다는 것에 동의한다. 사람들이 몸짓으로 단어 맞추기 보드게임을 하는 것을 살펴보라. `감정적 보상`이란 것이 무엇인지를 깨닫는 것은 어렵지않다. 보드게임중에 나오는 웃음의 양에 따라 그 보드게임이 전략 보드게임인지 사교 보드게임(파티 보드게임이라고도 불린다.)인지를 판단할 수 있다. 즉, 좋은 전략 보드게임은 플레이어들이 조용히 생각하도록 만든다. 그러나, 좋은 사교 보드게임은 시끌벅적한 소리와 웃음을 만든다. 전략 보드게임은 상대방에게 자신의 두뇌회전이 뛰어남을 과시할 수 있는 기회를 준다. 그들에게 있어서의 `감정적 보상`은 상대방이 놓...

oradiag_??? 로그 생성안되게 하는 방법

cx_Oracle이나 oci로 개발된 프로그램을 사용하다 보면 $HOME에 orgdiag_사용자계정으로 로그가 대량으로 저장되는 경우가 발생합니다. 이런 경우에 로그가 남지 않도록 하던지 아님 다른 경로에 저장하는 방법은  아래와 같은 방법으로 처리할 수 있습니다. 로그 안남기는 방법은. 환경변수에 추가 export TNS_ADMIN=/home/eek/conf/ 해당경로에 sqlnet.ora파일 생성해서 DIAG_ADR_ENABLED=off TRACE_LEVEL_CLIENT=off LOG_FILE_CLIENT=/dev/null 설정값을 추가하면 로그 파일이 생성되지 않음. 자세한 설정 정보는 http://docs.oracle.com/cd/B28359_01/network.111/b28317/sqlnet.htm#BIIDEAFI 참고하세요. 끝.

Oracle Instant Client + sqlldr install

Instant Client Downloads + SQL*Loader 설치 http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 아래와 같이 버젼에 따라서 3가지를 다운로드 합니다. basic, sdk, sqlplus instantclient-basic-linux.x64-11.2.0.3.0.zip instantclient-sdk-linux.x64-11.2.0.3.0.zip instantclient-sqlplus-linux.x64-11.2.0.3.0.zip 설치되어있는 oracle 에서 rdms , nls , sqlldr 를 복사합니다. cp -r /home/oracle/product/10/rdbms ~eek/usr/instantclient_10_2/ cp -r /home/oracle/product/10/nls ~eek/usr/instantclient_10_2/ # 파일 복사 cp -r /home/oracle/product/10/bin/sqlldr ~eek/usr/instantclient_10_2/ # 권한설정 chown -R eek.eek ~eek/usr/instantclient_10_2/ # 환경변수 등록 export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601 export ORACLE_HOME=/home/eek/usr/instantclient_10_2 export ORA_NLS10=$ORACLE_HOME/nls/data