git/list[1] front-page[2] threads[3] people[4] search[5] about
 

GSoC Project | Improvise git bisect

From
Pranit Bauva <pranit.bauva@gmail.com>
Date
Mar 19, 2016, 09:33 UTC
Message-ID
<CAFZEwPN-oUDNnc_PBeP2Q4msJAHenkiLtE+Oo75R+uTTwUKpYQ@mail.gmail.com>
Hey everyone!

I am Pranit Bauva. I am studying Mining Engineering at IIT Kharagpur. I am interested in participating in Google Summer of Code under Git organization. I have attempted a micro-project to add configuration to commonly used command line options `git commit -v` ($gmane/288820).

I am interested in 2 project related to git bisect confused between the two:
 - Implement git bisect --first-parent
Show 5 quoted lines
> When your project is strictly “new features are merged into trunk, never the other
> way around”, it is handy to be able to first find a merge on the trunk that merged a
> topic to point fingers at when a bug appears, instead of having to drill down to the
> individual commit on the faulty side branch.
> Cf. http://thread.gmane.org/gmane.comp.version-control.git/264661/focus=264720
What I understood is that let's say the repository is like :
         C13
           |
         C12
           |
         C11 (merge commit)
       /   |
     |   C10
     |     |
     |   C9
     |     |
     |   C6 (merge commit)
   C8    |   \
     |   C3    |
   C7    |     |
       \   |     C5
         C2    |
           |     C4
           |    /
          C1
 (master branch)

The commits numbers ie. C1...C13 are according to the time stamp, C1 being the first. On starting to debug with git bisect, given that C12 is bad and C1 is good, it starts a binary search from C1...C13. ie. It first goes to C7, if its all good, it goes to C10 and so on an so forth. If C7 is not good, it goes to C4 and so on and so forth. This just makes the job of debugging a bit difficult for a repo which has only 1 mainstream repository and it just has some short-term branches to instantly get stuff done. It can be simplified by using --first-parent. Given C1 is good and C12 is bad, it will find the mean between {C1, C2, C3, C6, C9, C10, C11, C12, C13} which is C9, see if its good. If not then it will go to C3 and then C2, if good then it will go to C6, if not good then it will go to C5 and then C4. This will greatly simplify the job of debugging.

 - Rewrite git-bisect.sh as bisect.c and bisect.h
 For this I plan to go along the guidelines of Paul Tan's previous
year work. I have followed his work and his way seems nice to go about
with rewriting.

What are your suggestions about these project? Which one would you recommend me to do? I have tried to cc everyone who participated in the discussion for -first-parent

Regards, Pranit Bauva

Next: Matthieu Moy
Message 1 of 16 in “GSoC Project | Improvise git bisect”
  1. Pranit BauvaMar 19, 2016
  2. Matthieu MoyMar 19, 2016
  3. Christian CouderMar 19, 2016
  4. Pranit BauvaMar 19, 2016
  5. Stefan BellerMar 19, 2016
  6. Pranit BauvaMar 20, 2016
  7. Pranit BauvaMar 20, 2016
  8. Matthieu MoyMar 20, 2016
  9. Christian CouderMar 20, 2016
  10. Johannes SchindelinMar 20, 2016
  11. Pranit BauvaMar 20, 2016
  12. Matthieu MoyMar 20, 2016
  13. Johannes SchindelinMar 21, 2016
  14. Pranit BauvaMar 21, 2016
  15. Christian CouderMar 21, 2016
  16. Pranit BauvaMar 21, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.