[LLVMdev] Using git bisect with LLVM

Alp Toker alp at nuanti.com
Fri Jul 4 13:03:14 PDT 2014


We're using a very similar script to the one posted to the list FWIW.

Separate git repositories work with git-svn dcommit and have compatible 
commit IDs with the official git mirror, which isn't the case with 
all-in-one repositories, so it's definitely a worthwhile approach.

(Now, if we could do this with git submodules instead of git subtrees, 
that *would* be cool but I don't think the support is there.)

Thanks for sharing Jonas

Alp.



On 04/07/2014 22:49, Sean Silva wrote:
> Check out chapuni's unified git tree for the entire SVN repo:
>
> https://github.com/chapuni/llvm-project
>
> -- Sean Silva
>
>
> On Fri, Jul 4, 2014 at 12:05 PM, Jonas Wagner <jonas.wagner at epfl.ch 
> <mailto:jonas.wagner at epfl.ch>> wrote:
>
>     Hello,
>
>     git bisect helped me today in tracking down a regression in
>     LLVM/Clang. Because LLVM/Clang code is split across multiple git
>     repositories, there were a few obstacles to overcome prior to
>     using git bisect. I thought I would share them here, in the hope
>     that they're useful for others.
>
>     The main difficulty was to check out the version of clang and
>     compiler-rt that would compile with a given LLVM revision. I used
>     the following code in the bisect script:
>
>         checkout() {
>             cd $LLVM_SRC
>             local committer_date="$(git log --pretty=format:%cd -n1
>     'HEAD')"
>             cd $LLVM_SRC/tools/clang
>             git checkout "$(git rev-list -n 1
>     --before="$committer_date" origin/google/testing)"
>             cd $LLVM_SRC/projects/compiler-rt
>             git checkout "$(git rev-list -n 1
>     --before="$committer_date" origin/google/testing)"
>         }
>
>         build() {
>             cd $LLVM_BUILD
>             ninja
>         }
>
>         # Go for it!
>         checkout  || exit 125
>         build  || exit 125
>         run_test
>
>     The code will, for a given LLVM revision, checkout the latest
>     revision from the google/testing branch for both clang and
>     compiler-rt. It will then compile everything. If either fails, the
>     script exits with code 125, which tells git bisect to skip the
>     current commit and try another one.
>
>     Hope this helps!
>     Jonas
>
>     _______________________________________________
>     LLVM Developers mailing list
>     LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>
>     http://llvm.cs.uiuc.edu
>     http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-- 
http://www.nuanti.com
the browser experts




More information about the llvm-dev mailing list