git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* GSoC Project | Improvise git bisect
@ 2016-03-19  9:33 Pranit Bauva
  2016-03-19 12:48 ` Matthieu Moy
  0 siblings, 1 reply; 16+ messages in thread
From: Pranit Bauva @ 2016-03-19  9:33 UTC (permalink / raw)
  To: Git List
  Cc: Johannes Schindelin, Stefan Beller, Christian Couder,
	Matthieu Moy, Lars Schneider, Jeff King, troy.moure,
	Junio C Hamano, Eric Sunshine, me, Philip Oakley

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2016-03-21 18:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-19  9:33 GSoC Project | Improvise git bisect Pranit Bauva
2016-03-19 12:48 ` Matthieu Moy
2016-03-19 16:14   ` Christian Couder
2016-03-19 16:49     ` Pranit Bauva
2016-03-19 22:05       ` Stefan Beller
2016-03-20  8:10         ` Pranit Bauva
2016-03-20 11:35       ` Pranit Bauva
2016-03-20 13:24         ` Matthieu Moy
2016-03-20 13:25         ` Christian Couder
2016-03-20 15:31         ` Johannes Schindelin
2016-03-20 16:26           ` Pranit Bauva
2016-03-20 18:08             ` Matthieu Moy
2016-03-21  7:18             ` Johannes Schindelin
2016-03-21  7:29               ` Pranit Bauva
2016-03-21 17:53                 ` Christian Couder
2016-03-21 18:13                   ` Pranit Bauva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).