검색결과 리스트
프로그래밍에 해당되는 글 56건
- 2012.05.10 [git] 작업의 취소
- 2012.03.26 ForSwitchJump
- 2012.03.13 std::tr1::tuple
- 2012.02.09 SVN 특정 리비전 롤백하기
- 2012.02.01 svn 계정 정보 초기화
- 2012.01.08 파이선을 이해하는데 도움이 되는 퀴즈
- 2012.01.08 python 스택 사이즈 수정
- 2011.12.16 VS warning 제거
- 2011.12.09 python 명령 인자 받아쓰기
- 2011.12.01 익셉션 안에서 콜스텍 출력
글
[git] 작업의 취소
출처 : http://ecogeo.tistory.com/276
개별파일 원복
git checkout -- <파일> : 워킹트리의 수정된 파일을 index에 있는 것으로 원복
git checkout HEAD -- <파일명> : 워킹트리의 수정된 파일을 HEAD에 있는 것으로 원복(이 경우 --는 생략가능)
git checkout FETCH_HEAD -- <파일명> : 워킹트리의 수정된 파일의 내용을 FETCH_HEAD에 있는 것으로 원복? merge?(이 경우 --는 생략가능)
index 추가 취소
git reset -- <파일명> : 해당 파일을 index에 추가한 것을 취소(unstage). 워킹트리의 변경내용은 보존됨. (--mixed 가 default)
git reset HEAD <파일명> : 위와 동일
commit 취소
git reset HEAD^ : 최종 커밋을 취소. 워킹트리는 보존됨. (커밋은 했으나 push하지 않은 경우 유용)
git reset HEAD~2 : 마지막 2개의 커밋을 취소. 워킹트리는 보존됨.
git reset --hard HEAD~2 : 마지막 2개의 커밋을 취소. index 및 워킹트리 모두 원복됨.
git reset --hard ORIG_HEAD : 머지한 것을 이미 커밋했을 때, 그 커밋을 취소. (잘못된 머지를 이미 커밋한 경우 유용)
git revert HEAD : HEAD에서 변경한 내역을 취소하는 새로운 커밋 발행(undo commit). (커밋을 이미 push 해버린 경우 유용)
워킹트리 전체 원복
git reset --hard HEAD : 워킹트리 전체를 마지막 커밋 상태로 되돌림. 마지막 커밋이후의 워킹트리와 index의 수정사항 모두 사라짐.
(변경을 커밋하지 않았다면 유용)
git checkout HEAD . : ??? 워킹트리의 모든 수정된 파일의 내용을 HEAD로 원복.
git checkout -f : 변경된 파일들을 HEAD로 모두 원복(아직 커밋하지 않은 워킹트리와 index 의 수정사항 모두 사라짐. 신규추가 파일 제외)
* 참조 : reset 옵션
--soft : index 보존, 워킹트리 보존. 즉 모두 보존.
--mixed : index 취소, 워킹트리만 보존 (기본 옵션)
--hard : index 취소, 워킹트리 취소. 즉 모두 취소.
* untracked 파일 제거
git clean -f
git clean -f -d : 디렉토리까지 제거
'프로그래밍' 카테고리의 다른 글
svn 태그 (0) | 2012.08.10 |
---|---|
경고 : C4532 (0) | 2012.06.20 |
ForSwitchJump (0) | 2012.03.26 |
std::tr1::tuple (0) | 2012.03.13 |
SVN 특정 리비전 롤백하기 (0) | 2012.02.09 |
글
ForSwitchJump
//0 a->b
//1 c->e
//2 c->d->b
//[for문의 break]와 [switch문의 case,default]의 위치조정으로 다양한 스타일 구현가능
int ForSwitchJump(int iSwitch)
{
switch (iSwitch)
{
case 0:
std::cout << "SectionA" << std::endl;
for ( ; ; )
{
std::cout << "SectionB" << std::endl;
return 0; default:
std::cout << "SectionC" << std::endl;
if (iSwitch % 2)
{
break;
}
std::cout << "SectionD" << std::endl;
}
std::cout << "SectionE" << std::endl;
}
}
'프로그래밍' 카테고리의 다른 글
경고 : C4532 (0) | 2012.06.20 |
---|---|
[git] 작업의 취소 (0) | 2012.05.10 |
std::tr1::tuple (0) | 2012.03.13 |
SVN 특정 리비전 롤백하기 (0) | 2012.02.09 |
svn 계정 정보 초기화 (0) | 2012.02.01 |
글
std::tr1::tuple
std::pair 의 확장판
#include <tuple>
std::tr1::tuple< int, int, bool, int > tupleMy( 3, 4, true, 5 );
tupleMy = std::tr1::tuple< int, int, bool, int >( 4, 3, false, 5 );
std::tr1::get<0>(tupleMy) = 5;
std::cout << std::tr1::get<1>(tupleMy);
'프로그래밍' 카테고리의 다른 글
[git] 작업의 취소 (0) | 2012.05.10 |
---|---|
ForSwitchJump (0) | 2012.03.26 |
SVN 특정 리비전 롤백하기 (0) | 2012.02.09 |
svn 계정 정보 초기화 (0) | 2012.02.01 |
VS warning 제거 (0) | 2011.12.16 |
글
SVN 특정 리비전 롤백하기
한개
513을 지우려면
svn merge -c -513 ./Trunk
여러개
r513~r520 을 지우려면
svn merge -r 520:512 ./Trunk
충돌 처리후 커밋
'프로그래밍' 카테고리의 다른 글
ForSwitchJump (0) | 2012.03.26 |
---|---|
std::tr1::tuple (0) | 2012.03.13 |
svn 계정 정보 초기화 (0) | 2012.02.01 |
VS warning 제거 (0) | 2011.12.16 |
익셉션 안에서 콜스텍 출력 (0) | 2011.12.01 |
글
svn 계정 정보 초기화
Win7 : C:\Users\[사용자]\AppData\Roaming\Subversion\auth\svn.simple
(확실치않다 결론은 Subversion\auth\svn.simple 를 지운다는것 어딘가있다.)
XP : C:\Documents and Settings\[사용자]\Application Data\Subversion\auth\svn.simple
해당 폴더를 지우세요
'프로그래밍' 카테고리의 다른 글
std::tr1::tuple (0) | 2012.03.13 |
---|---|
SVN 특정 리비전 롤백하기 (0) | 2012.02.09 |
VS warning 제거 (0) | 2011.12.16 |
익셉션 안에서 콜스텍 출력 (0) | 2011.12.01 |
프로세스아이디, 쓰레드아이디 (0) | 2011.10.27 |
글
파이선을 이해하는데 도움이 되는 퀴즈
퀴즈 : http://openlook.org:625/blog/2008/02/27/cb-1206/
답1 : http://mearie.org/journal/2008/02/inside-python-quiz
답2 : http://mearie.org/journal/2008/02/inside-python-quiz-2.ko
'프로그래밍 > Python' 카테고리의 다른 글
python 파일 용량 확인 (0) | 2013.11.19 |
---|---|
ubuntu python mysqldb 설치 (0) | 2013.11.18 |
python setuptools 설치 (0) | 2013.09.20 |
python 스택 사이즈 수정 (0) | 2012.01.08 |
python 명령 인자 받아쓰기 (0) | 2011.12.09 |
글
python 스택 사이즈 수정
import sys
print sys.getrecursionlimit( )
sys.setrecursionlimit( 999999 )
'프로그래밍 > Python' 카테고리의 다른 글
python 파일 용량 확인 (0) | 2013.11.19 |
---|---|
ubuntu python mysqldb 설치 (0) | 2013.11.18 |
python setuptools 설치 (0) | 2013.09.20 |
파이선을 이해하는데 도움이 되는 퀴즈 (0) | 2012.01.08 |
python 명령 인자 받아쓰기 (0) | 2011.12.09 |
글
VS warning 제거
#pragma warning(disable: 4819)
enable는 2010에서 생겼나.?
기존에는 없는듯. 아님 내가 못찾던가.ㅋ
'프로그래밍' 카테고리의 다른 글
SVN 특정 리비전 롤백하기 (0) | 2012.02.09 |
---|---|
svn 계정 정보 초기화 (0) | 2012.02.01 |
익셉션 안에서 콜스텍 출력 (0) | 2011.12.01 |
프로세스아이디, 쓰레드아이디 (0) | 2011.10.27 |
템플릿함수의 특수화를 다른 프로젝트(Lib)에서.. 못하나? (0) | 2011.08.10 |
글
python 명령 인자 받아쓰기
import sys
for i in range(1, len(sys.argv)):
print(sys.argv[i])
'프로그래밍 > Python' 카테고리의 다른 글
python 파일 용량 확인 (0) | 2013.11.19 |
---|---|
ubuntu python mysqldb 설치 (0) | 2013.11.18 |
python setuptools 설치 (0) | 2013.09.20 |
파이선을 이해하는데 도움이 되는 퀴즈 (0) | 2012.01.08 |
python 스택 사이즈 수정 (0) | 2012.01.08 |
글
익셉션 안에서 콜스텍 출력
익셉션 안에서 콜스텍 출력
#include <tchar.h>
#include <string>
#include <windows.h>
#include <dbghelp.h>
#pragma comment(lib,"dbghelp")
long WINAPI ViewFunctionStack(_EXCEPTION_POINTERS *pExceptionInfo)
{
int iSymbolNameSize = 1024;
// Walk the stack.
// Variables for stack walking.
HANDLE hProcess = GetCurrentProcess();
HANDLE hThread = GetCurrentThread();
DWORD64 dw64Offset = 0;
DWORD dwOffset = 0;
DWORD dwSymOptions = SymGetOptions();
SYMBOL_INFO* pSymbolInfo = (SYMBOL_INFO*) malloc( sizeof(SYMBOL_INFO) + iSymbolNameSize );
IMAGEHLP_LINE64 imageHelpLine;
STACKFRAME64 stackFrame64;
// Initialize stack frame.
memset( &stackFrame64, 0, sizeof(stackFrame64) );
stackFrame64.AddrPC.Offset = pExceptionInfo->ContextRecord->Eip;
stackFrame64.AddrPC.Mode = AddrModeFlat;
stackFrame64.AddrFrame.Offset = pExceptionInfo->ContextRecord->Ebp;
stackFrame64.AddrFrame.Mode = AddrModeFlat;
stackFrame64.AddrStack.Offset = pExceptionInfo->ContextRecord->Esp;
stackFrame64.AddrStack.Mode = AddrModeFlat;
stackFrame64.AddrBStore.Mode = AddrModeFlat;
stackFrame64.AddrReturn.Mode = AddrModeFlat;
// Set symbol options.
dwSymOptions |= SYMOPT_LOAD_LINES;
dwSymOptions |= SYMOPT_UNDNAME;
dwSymOptions |= SYMOPT_EXACT_SYMBOLS;
SymSetOptions( dwSymOptions );
// Initialize symbol.
memset( pSymbolInfo, 0, sizeof(SYMBOL_INFO) + iSymbolNameSize );
pSymbolInfo->SizeOfStruct = sizeof(SYMBOL_INFO);
pSymbolInfo->MaxNameLen = iSymbolNameSize;
// Initialize line number info.
memset( &imageHelpLine, 0, sizeof(imageHelpLine) );
imageHelpLine.SizeOfStruct = sizeof(imageHelpLine);
// Load symbols.
SymInitialize( GetCurrentProcess(), ".", 1 );
std::string strStackList;
while( 1 )
{
if( !StackWalk64( IMAGE_FILE_MACHINE_I386, hProcess, hThread, &stackFrame64, pExceptionInfo->ContextRecord, NULL, SymFunctionTableAccess64, SymGetModuleBase64, NULL ) )
break;
// Warning - ANSI_TO_TCHAR uses alloca which might not be safe during an exception handler - INVESTIGATE!
if( SymFromAddr( hProcess, stackFrame64.AddrPC.Offset, &dw64Offset, pSymbolInfo ) && SymGetLineFromAddr64( hProcess, stackFrame64.AddrPC.Offset, &dwOffset, &imageHelpLine ) )
{
char chLineNumber[128];
_itoa_s(imageHelpLine.LineNumber, chLineNumber, 10);
strStackList += pSymbolInfo->Name;
strStackList += "() [";
strStackList += imageHelpLine.FileName;
strStackList += ":";
strStackList += chLineNumber;
strStackList += "]";
strStackList += " <- ";
}
}
SymCleanup( hProcess );
free( pSymbolInfo );
MessageBoxA(NULL, strStackList.c_str(), NULL, NULL);
return EXCEPTION_EXECUTE_HANDLER;
}
void func()
{
*((int *)0) = 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
SetUnhandledExceptionFilter( ViewFunctionStack );
func();
system("pause");
return 0;
}
'프로그래밍' 카테고리의 다른 글
svn 계정 정보 초기화 (0) | 2012.02.01 |
---|---|
VS warning 제거 (0) | 2011.12.16 |
프로세스아이디, 쓰레드아이디 (0) | 2011.10.27 |
템플릿함수의 특수화를 다른 프로젝트(Lib)에서.. 못하나? (0) | 2011.08.10 |
아무것도 안하는함수 (0) | 2011.08.10 |