d1no wrote:BTW, could you tell me how to checkout a specific revision from git?
Easy. After having cloned the repository you'll end up in branch "master", which is git-speak for trunk (sort of).
In git, there are no revisions, but commits and their hashes, but because this repo is a direct mirror of the svn, each commit has a message indicating its revision in svn (git-svn-id).
For a bisect run:
$ git log
now hit forward slash, type "trunk@39850"
copy the commit hash (bd4880e204ac4f777c3bbfd33f8d362243773268)
hit "q"
You've now got a last known good commit at the revision that's been reported as working above.
Now we'll do a bisect run.
$ git bisect start
$ git bisect good bd4880e204ac4f777c3bbfd33f8d362243773268
$ git bisect bad HEAD
Now you're in bisect mode.
Git will tell you something along these lines (should be exactly the same):
Bisecting: 75 revisions left to test after this (roughly 6 steps)
[cd77103c4a2da560ca0728f294beb33111015c5b] libpolarssl: add missing dependency (#15321)
This means you'll have to test about 6 builds starting with this one.
Just compile right now, flash the image and you're done.
If the image is good, git picked the right spot, if not it will go the other direction. It boils down to either
$ git bisect good
$ git bisect bad
which will yield, e.g.,
$ git bisect bad HEAD
Bisecting: 75 revisions left to test after this (roughly 6 steps)
[cd77103c4a2da560ca0728f294beb33111015c5b] libpolarssl: add missing dependency (#15321)
If a state doesn't compile (e.g. git picked a commit somewhere between depending ones):
Once you're done, git will show you the culprit, you can then reset the branch via:
If it's a single commit without loads of dependencies you could event revert it:
on HEAD of branch master (i.e after git bisect reset)
git revert [revision]
Yes, git is so unbelievably much more fun than svn 
(Last edited by alexhofbauer on 28 Mar 2014, 09:18)