GSoC Project | Improvise git bisect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

> 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]