프로젝트 작업을 하다가 새로운 repository로 옮기고 싶을 때가 있다. 이럴 때 파일을 옮기게 되면 이제까지 작성한 커밋 이력들이 남지 않기 때문에 다른 방법을 써야 한다.

1. mirror 옵션을 이용한 clone

git clone --mirror { git repository 주소 } // 만약 특정 브랜치만 가져온다면 git clone -b { 브랜치명 } --single-branch --mirror { git repository 주소 }

2. repository명.git 을 .git으로 이름 변경

// clone을 정상적으로 완료했다면 repository명.git 파일이 생성되어 있을 것이다 // 아래의 명령어를 통해 이름을 .git으로 변경 mv repository명.git .git

3. 새로운 repository와 연결

// .git으로 변경한 디렉토리에서 아래 명령을 실행 git remote set-url origin { 새로운 repository 주소 }

4. 새 repository에 push

// .git으로 변경한 디렉토리에서 아래 명령을 실행 // 아래의 명령을 실행하게 되면 새로운 repository로 push 된다. git push --mirror

 

출처: https://velog.io/@hoo00nn/Git-Repository-%EB%B3%B5%EC%82%AC%ED%95%98%EA%B8%B0

냉무


int Plus(int a, int b)
{
return a + b;
}

_declspec(naked) int PlusAsm(int a, int b)
{
__asm
{
mov ebx, dword ptr ss:[esp+8]
mov edx, dword ptr ss:[esp+4]
add edx, ebx
mov eax, edx
retn
}
}

int _tmain(int argc, _TCHAR* argv[])
{
for(int nCnt = 0; nCnt < 2; ++nCnt)
{
{
g_Timer.StartFrequency(1);
int nResult = 0;
for(int i = 0; i < 1000000000; ++i)
{
nResult += Plus(1,2);
}
g_Timer.EndFrequency(1);

__int64 n64Time = g_Timer.GetTime(1);
printf( "Normal nResult:%d, Time:%I64d\n\n", nResult, n64Time );
}

{
{
g_Timer.StartFrequency(1);
int nResult = 0;
for(int i = 0; i < 1000000000; ++i)
{
nResult += PlusAsm(1,2);
}
g_Timer.EndFrequency(1);

__int64 n64Time = g_Timer.GetTime(1);
printf( "Assemble nResult:%d, Time:%I64d\n\n", nResult, n64Time );
}
}
}

return 0;
}

내용 무

ShsTimer.h


#define g_Timer CShsTimer::GetInstance()

/*

#include "ShsTimer.h" //1. 헤더 선언


void main()

{

g_Timer.StartFrequency(1); //2. 시작점 정하기


Sleep(1000);


g_Timer.EndFrequency(1); //3. 종료점 정하기


__int64 n64Time = g_Timer.GetTime(1); //4. 시간 값 리턴 받기

TRACE( "%I64d\n", n64Time ); //5. 결과 값은 1000이 출력 됨

}


※ Sleep(1000); 대신 수행 시간을 알고싶은 코드를 넣으면 됩니다.


void main()

{

g_Timer.Start(3000, 1); // 3초 후 CheckFired에서 true를 리턴하도록 세팅합니다.


for(;;)

{

if( g_Timer.CheckFired(1) ) // 3초 후 true를 리턴합니다.

{

TRACE( "return" );

return;

}

}

}


void main()

{

for(;;)

{

if( g_Timer.SleepEx(1000, 1) ) // 1초 마다 "1"을 출력합니다. Sleep과 동일

{

TRACE( "1" );

}

}

}


※ 주의

 - 인덱스 인자를 줄 때 한 묶음 이외에는 사용해서는 안됩니다. SetTimer의 EventID와 동일한 개념입니다.


*/


struct tFrequencyInfo

{

tFrequencyInfo():m_n64SetTime(0)

{


}

LARGE_INTEGER m_start;

LARGE_INTEGER m_end;

__int64 m_n64SetTime;

};


class CShsTimer

{

private:

CShsTimer();

LARGE_INTEGER m_f;

bool m_bCanNotBeUsed; // true면 현재 컴퓨터에서는 사용 불가

map<int, tFrequencyInfo> m_mapFrequencyInfo;


public:

static CShsTimer& GetInstance();


void StartFrequency( int _nIndex ); // 시간을 측정 할 시작 점 지정

void EndFrequency( int _nIndex ); // 시간을 측정 할 종료 점 지정

__int64 GetTime( int _nIndex ); // Start과 End을 지정 후 걸린 시간을 ms단위로 리턴


void Start(__int64 _n64SetTime, int _nIndex ); // 얼마간의 시간을 흐른뒤에 CheckFired 에서 true를 리턴 할지 설정 해줌 ms단위(1000 == 1초)

bool CheckFired( int _nIndex ); // Start으로 세팅 한 시간이 흐를 때 까지 false를 리턴하다가, 세팅한 시간이 되면 true를 계속 리턴

bool SleepEx(__int64 _n64SetTime, int _nIndex); // Sleep()과 동일 한데 false를 리턴하고, 시간 흐르면 true 리턴

// _n64SetTime 세팅 한 시간이 흐르기 전에는 false 리턴, _n64SetTime만큼 시간이 흐르면 딱 한번 true 리턴하고, 처음과 똑같이 반복


};





ShsTimer.cpp


nclude "stdafx.h"

#include "ShsTimer.h"


CShsTimer& CShsTimer::GetInstance()

{

static CShsTimer Instance;

return Instance;

}


CShsTimer::CShsTimer()

{

// 고해상도 타이머의 주파수를 얻는다.

QueryPerformanceFrequency(&m_f);


if( 0 == m_f.QuadPart )

m_bCanNotBeUsed = true;

else

m_bCanNotBeUsed = false;

}


void CShsTimer::StartFrequency( int _nIndex )

{

if( m_bCanNotBeUsed )

return;


// 시작 시점의 CPU 클럭수를 얻는다.

QueryPerformanceCounter(&m_mapFrequencyInfo[_nIndex].m_start);

}


void CShsTimer::EndFrequency( int _nIndex )

{

if( m_bCanNotBeUsed )

return;


// 끝 시점의 클럭수를 얻는다.

QueryPerformanceCounter(&m_mapFrequencyInfo[_nIndex].m_end);

}


__int64 CShsTimer::GetTime( int _nIndex )

{

if( m_bCanNotBeUsed )

return 0;


// 끝 시점의 CPU 클럭수에서 시작 시점의 클럭수를 뺀 후 주파수를 1000으로 나눈 값을 나눈다.

// 1초 기준의 주파수를 1000 으로 나누었기 때문에 1밀리초 동안 발생하는 진동수로 나눈 셈이다.

__int64 ms_interval = (m_mapFrequencyInfo[_nIndex].m_end.QuadPart - m_mapFrequencyInfo[_nIndex].m_start.QuadPart)/(m_f.QuadPart/1000);


return ms_interval;

}


void CShsTimer::Start( __int64 _n64SetTime, int _nIndex )

{

if( m_bCanNotBeUsed )

return;


m_mapFrequencyInfo[_nIndex].m_n64SetTime = _n64SetTime;

StartFrequency(_nIndex);

}


bool CShsTimer::CheckFired( int _nIndex )

{

if( m_bCanNotBeUsed )

return false;


EndFrequency(_nIndex);


if ( GetTime(_nIndex) > m_mapFrequencyInfo[_nIndex].m_n64SetTime )

return true;


return false;

}


bool CShsTimer::SleepEx( __int64 _n64SetTime, int _nIndex )

{

if( m_bCanNotBeUsed )

return false;


if( 0 == m_mapFrequencyInfo[_nIndex].m_n64SetTime )

{

Start(_n64SetTime, _nIndex);

return false;

}


if( CheckFired(_nIndex) )

{

StartFrequency(_nIndex);

return true;

}


return false;

}



svn 에서 취급 안하는 확장자
*.a
*.so
*.pyc
*.o
*.DS_Store
*.pyo

1. 준비 단계

비주얼 스튜디오 2012버전 설치

2. JDK 설치


2. cocos2d-x v3.4 설치

링크


D:\cocos2d 폴더에 압축 해제

D:\cocos2d\build\cocos2d-win32.vc2012.sln 실행 시키면 테스트 프로젝트를 빌드 해 볼 수 있다.



3. python 설치

링크


cocos.py new dual -p com.obs.project -l cpp -d d:\cocos2d\project


해당 폴더를 열어보면 새로운 프로젝트가 생성되어 있다.

열어서 빌드하면~ 다음과 같은 화면이 나온다. 빌드 할 때 "2. cocos2d-x v3.4 설치" 2번 째 스샷 참고



4. 안드로이드 NDK 설치

링크

















층, 침대, 세면대, 씽크대, 화장실, 세탁기, 관리비, 보증금, 월세, 베란다, 에어콘, 수압, 계약년수

데브피아 SQL Server 에서 퍼왔어요.

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=37711&ref=37699

질문&답변
 랭킹 테이블을 만들려고 하는데 어떤 방법이 좋은지요?  | Modeling2003-04-29 오후 12:16:17
송현석 (myble)  송현석님께 메시지 보내기송현석님을 내 주소록에 추가합니다.송현석님의 개인게시판 가기번호: 37699  / 읽음:333

 

  점수에 따라 랭킹을 줄려고 하는데 어떻게 하는게 적절한 방법인지.. 어떻게 해야 할까 해서 질문드립니다.

-----------

회원테이블

----------

아이디

이름

점수

 rank

.......

----------

 

위와 같이 테이블이 되어있구여 rank아래로 ....은 그외 여러가지 컬럼이 있습니다.

랭킹 디스플레이에는 아이디 이름 점수 rank만 있음 되구여

회원테이블 자체에 rank를 일정 시점마다 값을 변경시켜주는것이 좋을지

아니면 랭킹테이블을 따로 빼내서 일정 시점마다 랭킹테이블을 만들어주는것이 좋은지요?

 

insert into rank select 아이디,이름,점수 from 회원테이블 order by 점수 desc

이렇게 쿼리를 줘서 새로운 랭킹 테이블을 해주는것이 좋은지.

 

update 회원테이블 set 회원테이블.rank = aa.rank

from 회원테이블, (select b.이름 이름,

                                   b.점수 점수,

                                  (select count(*)+1

                                    from 회원테이블 a

                                    where a.점수 > b.점수) rank

                          from 회원테이블 b ) aa

where 회원테이블.이름 = aa.이름

 

이런방법이 좋을까요? 업데이트쿼리는 게시판에서 찾은 쿼리문입니다.

만약 랭킹을 매겨야 하는것이 10만명 정도이고 하루에 한번씩 랭킹을 다시 매겨줘야 한다면

어떻게 해야 할까요?

위의 두가지 방법외에 다른 방법이 있으면 알려주세요.

첫번째에서

insert를 사용하는 이유는 MSSQL에서 테이블을 복사할수 있는 방법을 찾지 못해서...

create table rank

as

select 아이디,이름, 점수

from 회원테이블

order by 점수 desc;

요런 쿼리문이 먹히지가 않네요.. ㅡㅡ;

랭킹은 수시로 회원들에 의해 조회가 됩니다.

인덱스는 어떻게 해주는것이 성능이 좋아지는지요?  ^^

급하게 만들어야 하는것이라서 질문 올립니다.

도움 부탁드려요

 아참 쿼리문은 일정한 시간에 자동으로 돌릴려고 합니다.

이 글에 답변 등록하기
 [답변][☆]모...... 단순하게.. 복사를 한다면야... 2003-04-30 오전 10:28:13
황순영 (stonefly)  황순영님께 메시지 보내기황순영님을 내 주소록에 추가합니다.황순영님의 개인게시판 가기번호: 37711  

앗... 하루가 지난거 같은데.. 아직도.. 답이 엄네여..^^a (그사이 또 누가 쓸런지도..^^;;)

 

하여가네..

랭킹하는 방법은 여러가지가 있죠.. 카렌 아줌마 Inside SQL 2K 보시면..

랭킹 방법에 대해서.. 3~4가지가 나와 있습니다..

항상 느끼는거지만.. 오라클의 ROWNUM 비스무리한넘 있으면 좋으련만.. 하는 생각과..

8i R2 부터 있는 Analytic Function 있으면 ... 좋겠다는 생각이 매번 듭니다..

하지만 SQL Server에는 이런것이 없기 때문에 모..

있는거 잘 활용해서 써야겠죠..

 

우선.. 테이블 복제인데..

CREATE TABLE 에서 AS로 SELECT 해서 쓰는 문장은 오라클 문법인듯 하네여..^^a

님께서 원하시는 방법으로 SQL 서버에는

 

SELECT * INTO rank FROM Table1 WHERE 조건 ORDER BY 점수 DESC;

 

이렇게 하면 tank 라는 테이블이 만들어 지게 됩니다...

 

만일 위의 것을 이용해서 한다면, 더더군다나 주기적으로 갈아 엎어 져야 한다면..

rank 테이블을 따로 만드는것도 좋을듯하네요...

 

SELECT 아디디,  indentity(int, 1, 1) as rank INTO rank FROM Table1 WHERE 조건 ORDER BY 점수 DESC;

 

라고 하게 되면 점수 순서에 따라 아이디와 랭킹이 매겨 지게 됩니다..

필요할 경우 기존 사용자 정보와 조인해서 가져가면되고 사용자 테이블을 매번 수정안해도 되니까.. 부하를 줄일수 있지만서도, 대번 테이블을 Drop 하고 위의 문장을 실행시켜야하는 문제가 좀 있죠..

또하나의 문제는 동일 점수에 대한 동일 랭킹이 안된다는 문제가 남아 있고요..

님께서 중간에 쓰셨던..

Sunquery를 사용해서 랭킹을 사용하시는게.. 비록 테이블을 두번 읽어야 하는 문제가 있긴하지만...

같은 점수에 대해 동일한 랭킹을 부여할 수 있겠죠..

 

대충.. 이정도...

^^

 

__________________________________________

황순영 (Hwang, Soon-Young), MVP, MCP
Manager of (C)Dotnetsoft

Mobile : 016-745-0297
E-Mail : syhwang@dotnetsoft.co.kr
MSN : stonefly2001@hotmail.com
__________________________________________

이 글에 답변 등록하기
         [답변]SELECT * I...[한줄답변]2003-05-02 오후 3:46:00
송현석번호: 44531  
SELECT * INTO rank FROM Table1 WHERE 조건 ORDER BY 점수 DESC; 이와 같은경우여
이 글에 답변 등록하기
         [답변]복사+컬럼추가가 가...[한줄답변]2003-05-02 오후 3:48:00
송현석번호: 44532  
복사+컬럼추가가 가능한지여? rank라는 컬럼을 rank테이블에 추가해서 순위를 넣을려고 하거든여.
이 글에 답변 등록하기
 [답변]답변2003-04-30 오후 5:45:43
송덕용 (sdyno1)  송덕용님께 메시지 보내기송덕용님을 내 주소록에 추가합니다.송덕용님의 개인게시판 가기번호: 37734  

랭킹을 10만 건

그리고 검색하는 게 많다

 

그렇다면 검색되는 쿼리문이 단순해야겠죠.

방법은 여러가지가 있겠습니다만  (프로시져 , 뷰를 사용해서 한번에 랭킹을 뽑아서 보여주는 방법이 있지많은

권장하고 싶지는 않습니다. 그많큼 비용 소모가 많고 IO를 많이 잡아 먹을테니까요.)

 

저라면 이렇게 하겠습니다.

 

먼저

SELECT * INTO 문을 사용해서 랭킹을 뽑아 랭킹테이블에 쓰는 쿼리가 있는

프로시져를 만들고

매일 하루에 한번씩 JOB 을 돌립니다.

 

유저들이 사용하는 테이블은 최적화된 랭킹 테이블이므로 db에 부담을 주지 않고 사용할 수 있습니다.

이 글에 답변 등록하기
         [답변]답면 감사합니다....[한줄답변]2003-05-02 오후 3:49:00
송현석번호: 44533  
답면 감사합니다.
이 글에 답변 등록하기
         [답변]SELECT * I...[한줄답변]2003-05-02 오후 3:49:00
송현석번호: 44534  
SELECT * INTO rank FROM Table1 WHERE 조건 ORDER BY 점수 DESC; 이와 같은경우여
이 글에 답변 등록하기
         [답변]복사+컬럼추가가 가...[한줄답변]2003-05-02 오후 3:49:00
송현석번호: 44535  
복사+컬럼추가가 가능한지여? rank라는 컬럼을 rank테이블에 추가해서 순위를 넣을려고 하거든여.
이 글에 답변 등록하기
         [답변]만약 불가능할경우 ...[한줄답변]2003-05-02 오후 3:53:00
송현석번호: 44536  
만약 불가능할경우 insert문을 사용하여  select * into을 대체하여 처리한다면 어떨까여?


---------------------------

FTP 폴더 오류

---------------------------

FTP 서버에서 폴더를 여는 동안 오류가 발생했습니다. 이 폴더를 액세스할 권한이 있는지 확인하십시오.


자세히:

200 Type set to A


227 Entering Passive Mode (192,168,0,201,220,220)



---------------------------

확인   

---------------------------



오류 뜨면서 익스플로러에서 접속이 안 될 때...

그것도 내부는 되는데, 외부만 안될 때...

그곳도 크롬은 아무 문제 없이 될 때...

공유기에서 아래를 셋팅~




+ Recent posts