Why should I know this?

Git blame으로 C/C++ 코드 첫 머지버전 찾는 미립자팁 본문

Technic

Git blame으로 C/C++ 코드 첫 머지버전 찾는 미립자팁

die4taoam 2022. 9. 21. 14:33

 

설명 : C/C++ 코드의 초기 버전을 찾아 히스토리를 보는게 가끔은 유용할 때가 있다.

위처럼 초기 버전을 찾아가는 C/C++ 코드에서는 소스코드 마지막 라인을 blame해서 쉽게 초기 버전을 찾을 수 있는 경우가 많다.


예2)

m@M:~/llvm-project/llvm/lib/Transforms/Scalar$ wc -l LoopInstSimplify.cpp
247 LoopInstSimplify.cpp
m@M:~/llvm-project/llvm/lib/Transforms/Scalar$ git blame -L247,+1 LoopInstSimplify.cpp
e6c30fdda7991 (Chandler Carruth 2018-05-25 01:32:36 +0000 247) }

m@M:~/llvm-project/llvm/lib/Transforms/Scalar$ git show e6c30fdda7991
commit e6c30fdda7991cfcedff2ba778b93b958b0d5077
Author: Chandler Carruth <chandlerc@gmail.com>
Date:   Fri May 25 01:32:36 2018 +0000

    Restore the LoopInstSimplify pass, reverting r327329 that removed it.

    The plan had always been to move towards using this rather than so much
    in-pass simplification within the loop pipeline, but we never got around
    to it.... until only a couple months after it was removed due to disuse.
    =/

    This commit is just a pure revert of the removal. I will add tests and
    do some basic cleanup in follow-up commits. Then I'll wire it into the
    loop pass pipeline.

    Differential Revision: https://reviews.llvm.org/D47353

    llvm-svn: 333250

https://reviews.llvm.org/D47353

 

⚙ D47353 Restore the LoopInstSimplify pass, reverting r327329 that removed it.

This revision is now accepted and ready to land.

reviews.llvm.org

이번 예는 과거 삭제됐다 revert 된 merge 기록을 볼 수 있다.

 

하지만 역시 다음처럼 초기 버전이 머지될 때 커밋 로그 확인을 할 수 있으며

초기 버전의 코드를 머지시킬때 추가된 코드를 통해서 LLVM 같은 큰 프로젝트에 구성요소를 추가하기 위해 필요한 요소들을 파악할 수 있다.

 

 

Comments