http://stackoverflow.com/questions/520650/how-do-you-make-an-existing-git-branch-track-a-remote-branch
git 버전에 따라 command가 다르다.
1.8.X) $git branch -u [local_branch] [remote_upstream]
1.7.X) $git branch --set-upstream [local_branch] [remote_upstream]
1.8.X는 [local_branch]를 생략하면 현재 local branch를 이용해서 설정한다.
1.7.X는 [local_branch]를 생략하면 remote_upstream과 같은 이름의 branch를 생성해 버리므로, 이미 존재하는 local branch를 tracking으로 연결하려면 생략하면 안된다.
2012년 10월 22일 월요일
2012년 10월 15일 월요일
반드시 알아야 할 8 gdb tricks
https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should
위 글의 내용을 알아보기 편하게 정리 함.
1. break WHERE if COND
"if COND"를 추가로 덧붙여서 특정 조건일 때 break를 걸 수 있다. loop안에 걸거나 특별한 케이스에 재현되는 버그를 잡을 때 쓰기 좋겠다.
2. command
break point를 잡은 후에 "command 1"과 같이 break point에 올 때마다 실행되는 command를 추가할 수 있다. 디버그 정보 프린트 할 때 쓰면 컴파일할 필요없이 원하는 정보를 break point에 올 때 마다 볼 수 있다.
(의문) if COND가 추가된 경우면 COND를 만족하는 경우만 실행되려나? --> 테스트 필요.
3. gdb --args
gdb 옵션에 "--args"를 쓰고 바이너리 -> argument 순서로 넣고 실행하면 된다. gdb 바이너리 한 다음에 gdb shell에서 "set args ..." 하는 것 보다는 반복 수행하기 훨 편하겠다.
4. source 파일 위치 지정
1) directory [source_path]
bin안에 있는 symbol의 path가 relative인 경우, 이렇게 하면 알아서 찾아준다.
2) set substitute-path [path_in_bin] [path_to_sources]
bin의 symbol이 absolute인 경우, 이렇게 하면 알아서 path앞부분을 substitute해서 찾아준다.
5. macro도 gdb에서 챙겨가면서 써 보자.
빌드 옵션에 -ggdb3 를 추가하면 macro도 gdb에서 보면서 처리할 수 있다.
6. gdb variable
set $varname = 4
이런 형태로 gdb variable을 설정할 수 있다. if COND에 들어갈 COND를 만들어 두면 쉽게 써먹을 수 있다. 복잡한 expression은 적절히 variable로 만들면 되겠다.
7. Register variable
$sp, $pi, $rsi 와 같이 architecture마다 존재하는 register는 predefined variable로 들어있다. if COND에 포함해서 사용할 수 있다.
8. 'x' command
'x' command로 특정 메모리에 있는 내용을 특정 포맷으로 출력할 수 있다.
x/FMT ADDRESS
FMT는 종류가 많으니 'help x'로 풀 리스트를 확인하자. 쓸만한건 여기다 리스트업 한다.
x : hex
d : signed decimal
c : character
i : instruction
s : C style string
(Example : gdb shell)
$x/s 0xffffffff0089ffae
...
위 글의 내용을 알아보기 편하게 정리 함.
1. break WHERE if COND
"if COND"를 추가로 덧붙여서 특정 조건일 때 break를 걸 수 있다. loop안에 걸거나 특별한 케이스에 재현되는 버그를 잡을 때 쓰기 좋겠다.
2. command
break point를 잡은 후에 "command 1"과 같이 break point에 올 때마다 실행되는 command를 추가할 수 있다. 디버그 정보 프린트 할 때 쓰면 컴파일할 필요없이 원하는 정보를 break point에 올 때 마다 볼 수 있다.
(의문) if COND가 추가된 경우면 COND를 만족하는 경우만 실행되려나? --> 테스트 필요.
3. gdb --args
gdb 옵션에 "--args"를 쓰고 바이너리 -> argument 순서로 넣고 실행하면 된다. gdb 바이너리 한 다음에 gdb shell에서 "set args ..." 하는 것 보다는 반복 수행하기 훨 편하겠다.
4. source 파일 위치 지정
1) directory [source_path]
bin안에 있는 symbol의 path가 relative인 경우, 이렇게 하면 알아서 찾아준다.
2) set substitute-path [path_in_bin] [path_to_sources]
bin의 symbol이 absolute인 경우, 이렇게 하면 알아서 path앞부분을 substitute해서 찾아준다.
5. macro도 gdb에서 챙겨가면서 써 보자.
빌드 옵션에 -ggdb3 를 추가하면 macro도 gdb에서 보면서 처리할 수 있다.
6. gdb variable
set $varname = 4
이런 형태로 gdb variable을 설정할 수 있다. if COND에 들어갈 COND를 만들어 두면 쉽게 써먹을 수 있다. 복잡한 expression은 적절히 variable로 만들면 되겠다.
7. Register variable
$sp, $pi, $rsi 와 같이 architecture마다 존재하는 register는 predefined variable로 들어있다. if COND에 포함해서 사용할 수 있다.
8. 'x' command
'x' command로 특정 메모리에 있는 내용을 특정 포맷으로 출력할 수 있다.
x/FMT ADDRESS
FMT는 종류가 많으니 'help x'로 풀 리스트를 확인하자. 쓸만한건 여기다 리스트업 한다.
x : hex
d : signed decimal
c : character
i : instruction
s : C style string
(Example : gdb shell)
$x/s 0xffffffff0089ffae
...
Android emulator gdbserver 설정
http://jovechia.blogspot.kr/2009/04/how-to-use-gdbserver-on-android.html
덧붙임)
1. gdbserver는 사용하고 있는 NDK toolchain에 prebuild되어 있는 녀석을 넣으면 된다.
2. gdbserver옵션이 android emulator에 기본 탑재된 녀석과 다를 수 있으므로 확인하고 사용한다.
덧붙임)
1. gdbserver는 사용하고 있는 NDK toolchain에 prebuild되어 있는 녀석을 넣으면 된다.
2. gdbserver옵션이 android emulator에 기본 탑재된 녀석과 다를 수 있으므로 확인하고 사용한다.
2012년 9월 25일 화요일
tmux 사용법
http://blog.outsider.ne.kr/trackback/699
*추가
다른 terminal로 연결한 경우, 다음과 같이 가장 최근의 session에 연결할 수 있다.
$tmux attach-session
tmux에서 연결된 세션을 끊고 client를 종료하려면
{bind-key} d
Ctrl+B를 이미 다른 용도로 사용하고 있는 경우라면 $HOME/.tmux.conf 파일에 다음과 같이 Ctrl+A로 변경해둔다.
set-option -g prefix C-a
*추가
다른 terminal로 연결한 경우, 다음과 같이 가장 최근의 session에 연결할 수 있다.
$tmux attach-session
tmux에서 연결된 세션을 끊고 client를 종료하려면
{bind-key} d
Ctrl+B를 이미 다른 용도로 사용하고 있는 경우라면 $HOME/.tmux.conf 파일에 다음과 같이 Ctrl+A로 변경해둔다.
set-option -g prefix C-a
2012년 9월 13일 목요일
아이폰에서 안드로이드로 옮기기
1. 옮길 데이터
1) 연락처
2) 메모
3) 일정
4) 갤러리
5) 문자메세지 (SMS, MMS)
6) 카톡기록
7) 인증서
2. 앱 대체 테이블
*생략*
3. 옮겨보자!
3-1. 데이터
1) 연락처 : Google 계정 동기화, OK!
2) 메모 : Gmail "Note" Label이란 사실을 알았음, OK!
3) 일정 : Google calendar 동기화, OK!
4) 갤러리 : 네이버 Ndrive로 업로드 후 다운로드. OK! 단, 동영상은 기본 무비 플레이어에서 재생 안됨. 왜 그런지는 모르겠음. Dice 플레이어로 해결.
5) 문자메세지 (SMS, MMS) : http://goo.gl/gLYRH 아직 시도해보진 않았음.
6) 카톡기록 : 포기. 대화별로 email로 내보내기는 있는데, 가져오기는 없는듯. ㅠ_ㅠ
7) 인증서 : 어플별로 다시 해야 함. 이건 예상했던거.
--> 안드로이드의 경우, 하나은행앱과 우리은행앱의 인증서가 공유된다. 인증서 암호를 앱별로 다르게 설정할 수 없으니 주의!
3-2 앱
1) Facebook
2) Dice player (기부도 했음! 후훗)
3) Cliann
4) TweetCaster
5) Go launcher EX + Prada theme
6) Seoul bus, Smart subway
7) Play 북
8) 카카오톡
9) 은행 앱들
1) 연락처
2) 메모
3) 일정
4) 갤러리
5) 문자메세지 (SMS, MMS)
6) 카톡기록
7) 인증서
2. 앱 대체 테이블
*생략*
3. 옮겨보자!
3-1. 데이터
1) 연락처 : Google 계정 동기화, OK!
2) 메모 : Gmail "Note" Label이란 사실을 알았음, OK!
3) 일정 : Google calendar 동기화, OK!
4) 갤러리 : 네이버 Ndrive로 업로드 후 다운로드. OK! 단, 동영상은 기본 무비 플레이어에서 재생 안됨. 왜 그런지는 모르겠음. Dice 플레이어로 해결.
5) 문자메세지 (SMS, MMS) : http://goo.gl/gLYRH 아직 시도해보진 않았음.
6) 카톡기록 : 포기. 대화별로 email로 내보내기는 있는데, 가져오기는 없는듯. ㅠ_ㅠ
7) 인증서 : 어플별로 다시 해야 함. 이건 예상했던거.
--> 안드로이드의 경우, 하나은행앱과 우리은행앱의 인증서가 공유된다. 인증서 암호를 앱별로 다르게 설정할 수 없으니 주의!
3-2 앱
1) Facebook
2) Dice player (기부도 했음! 후훗)
3) Cliann
4) TweetCaster
5) Go launcher EX + Prada theme
6) Seoul bus, Smart subway
7) Play 북
8) 카카오톡
9) 은행 앱들
2012년 5월 28일 월요일
익스트림 프로그래밍 Extreme Programming Explained 2nd edition
어느날 문득 "애자일을 공부해 보자" 라는 생각이 들어서 무턱대고 구입한 책들 중 완독한 첫 책이다.
2판 이고, 저자 서문에 1판보다 좀 더 진화된 내용을 담고 있다는 것으로 봐서 1판하고는 내용이 좀 많이 다를 수 있을 듯 하다. (1판을 본적이 없으니, 확인할 방법은 없다.)
기존에 XP는 애자일 개발 방법의 한 종류로만 알고 있었기에, 1부에 나오는 가치 부분은 내가 갖고 있던 "단순 기법이 아닌가"라는 XP에 대한 막연한 선입견을 무너뜨렸다. (역시나, 이쪽 동네는 대충 아는게 모르는것 보다 더 위험하다.)
가치, 원칙, 실천방법으로 이어지는 내용을 통해서 XP의 철학에서 부터 구체적인 실천 방법까지 체계적으로 이해할 수 있다. 가치와 원칙에서 XP의 철학을 이해하고, 실천방법들을 통해서 철학을 실천하는 방법을 고민할 수 있다. 중반을 넘어가면서 부터는 내가 처한 상황을 바탕으로 이런건 어떨지 저런건 어떨지 고민하는 경우가 잦아져서 읽는 속도는 느려졌지만, 그만큼 조금이라도 실제 몸에 와 닿았다고 하면 되겠다.
아직 애자일의 A자도 잘 모르지만, 애자일을 시작하는 사람들이라면 좋은 시작이 될 것이라 생각한다.
2012년 5월 16일 수요일
2012년 2월 16일 목요일
한국 마이크로소프트 하드웨어 A/S 방법
ARS 전화번호 : 1577-9700
접수 메뉴 : 3 --> 3 --> 2
상담원이 연결되면 증상을 이야기 하고 Product ID로 AS가능 여부를 확인한다.
택배 보낼 주소와 연락처를 받게되고, 또한 접수번호 10자리를 부여받게 된다. 반드시 메모하자!
택배비는 반반 부담이다. (선불로 보내면 선불로 받게되고 착불로 보내면 착불로 받게된다.)
택배로 보낼 때 다음의 내용을 쓴 메모를 함께 동봉해서 보내야 한다.
1. 이름
2. 연락처
3. 제품 받을 주소
4. 접수번호 10자리
5. 증상
AS가 된 제품의 경우, AS날짜가 표기된 문서가 같이 온다. 혹시모를 AS를 위해서 꼭! 보관하자!
접수 메뉴 : 3 --> 3 --> 2
상담원이 연결되면 증상을 이야기 하고 Product ID로 AS가능 여부를 확인한다.
택배 보낼 주소와 연락처를 받게되고, 또한 접수번호 10자리를 부여받게 된다. 반드시 메모하자!
택배비는 반반 부담이다. (선불로 보내면 선불로 받게되고 착불로 보내면 착불로 받게된다.)
택배로 보낼 때 다음의 내용을 쓴 메모를 함께 동봉해서 보내야 한다.
1. 이름
2. 연락처
3. 제품 받을 주소
4. 접수번호 10자리
5. 증상
AS가 된 제품의 경우, AS날짜가 표기된 문서가 같이 온다. 혹시모를 AS를 위해서 꼭! 보관하자!
2012년 2월 6일 월요일
Linux time utility
특정 process의 수행시간을 측정하는 utility : time
간단하게 time뒤에 process를 실행하는 command를 넣으면 된다.
간단하게 time뒤에 process를 실행하는 command를 넣으면 된다.
$ time tar -zcf some_tar_ball.tar.gz
피드 구독하기:
글 (Atom)