* [GSOC Update] Week 2
2016-05-08 11:27 [GSOC update] Week 1 Pranit Bauva
@ 2016-05-15 17:45 ` Pranit Bauva
2016-05-15 18:01 ` Matthieu Moy
2016-05-15 19:11 ` Junio C Hamano
0 siblings, 2 replies; 8+ messages in thread
From: Pranit Bauva @ 2016-05-15 17:45 UTC (permalink / raw)
To: git
Cc: christian.couder, chriscool, larsxschneider, andrew.ardill,
Pranit Bauva
================================= SUMMARY ==================================
My micro project on adding config variable to git-commit for verbose options
is going to be merged with the master branch soon and will be available for
git 2.8.3 . I also rewrote a few shell functions in C.
My public git.git is available here[1]. I regularly keep pushing my work so
anyone interested can track me there. Feel free to participate in the
discussions going on PRs with my mentors. Your comments are valuable.
=============================== INTRODUCTION ==============================
The purpose of this project is to convert the git-bisect utility which partly
exists in the form of shell scripts to C code so as to make it more portable.
I plan to do this by converting each function to C and then calling it from
git-bisect.sh so as to use the existing test suite to test the function which
is converted.
Mentors:
Christian Couder <chriscool@tuxfamily.org>
Lars Schneider <larsxschneider@gmail.com>
================================== Updates =================================
Things which were done in this week:
* I have sent the patches[2] for check_term_format() and write_terms() so
as to demonstrate how I am going to use the subcommand approach wherein
I will first convert a method and then call it by using a subcommand.
Then when another method is converted the previous method will be removed
from the subcommand and will instead be called from the new method. Junio
has collected this patch and queued it on a branch gitster/pb/bisect and
is available for testing on the pu branch. I am encouraging people to
test it and provide useful comments.
* I have also converted bisect_log() and bisect_voc() whose patches[3] are
sent to the list. Junio is yet to pick these up.
* I have converted the function bisect_clean_state() but its in a very
rudimentary form. Well I generally do like this. I first have a *just*
working model of a function and then I polish it by introducing the git's
API and write error handling code and resolve the style issues. Though it
is available on github[4]. The current version plainly removes the refs
using the git's API. I am quite aware that refs shouldn't be handled in this way
(this fact is constantly reminded in the docs). I am reading up on the
available methods for refs manipulation.
* I have also sent an independent patch[5] to explicitly test whether
bisection state is properly cleaned up.
* Also studied the functioning (upto an extent) of git-for-each-ref and
git-udpate ref as it is required during the conversion of
bisect_clean_state().
* The main part (I think) was that I read about the method's which handled the
refs. It was an interesting read though I did not read upon the actual
implementations of those, I mainly covered "What does the method do?" and
"How to use the method in my code?". git-grep is my best friend for this.
* I am still quite amazed by the amount of attention refs receive. Christian
explained a bit though I still don't get the feel why they are *sooo*
important. I was recently reading the Git Rev News and also seeing the
patches by Michael Haggerty and David Turner and I was quite amazed on
the amount of attention refs get.
* I also noticed a minor thing with bisect cleanups[6]. After the bisection
state is cleaned up the folder "refs/bisect/" is not removed. I pointed
this out but Christian thought it is okay the way it is.
* When I was converting the function write_terms() Christian advised to use
`|| exit` when calling it with a subcommand using `git bisect--helper
--write-terms $TERM_BAD bad` but it got the test no. 43 and 44 failing in
t6030. On a little bit investigation by Christian, these tests seem to
fail when there is a bare repo. He asked me to investigate it further.
I have currently not found enough time. Will do it in the coming week.
================================= NEXT STEPS ================================
Things which would be done in the coming week:
* Finish bisect_clean_state() conversion. I will first put it up on github
to receive comments from my mentors and then post it to the mailing list.
* Convert the function bisect_head(). I plan to convert this function and add
it as a subcommand to test the implementation but I will only send the
function without the subcommand to the mailing list because its a too small
function. Though the subcommand version will be put up on github for
everyone to verify whether it is passing the test suite like I have done it
for bisect_voc().
* Convert the function bisect_write(). I plan to convert this function and
add it as a subcommand.
* Investigate why test no. 43 and 44 are failing in t6030 with `|| exit` in
--write-terms.
================================ NOTIFICATION ==============================
I will be taking a short vacation from 16th May, 2016 to 19th May, 2016 so
I wouldn't be available via email and also will not be able to work. I intend
to make up for the lost time by working on weekends.
[1]: https://github.com/pranitbauva1997/git
[2]: http://thread.gmane.org/gmane.comp.version-control.git/294388
[3]: http://thread.gmane.org/gmane.comp.version-control.git/294571
[4]: https://github.com/pranitbauva1997/git/pull/6
[5]: http://thread.gmane.org/gmane.comp.version-control.git/294520
[6]: https://github.com/pranitbauva1997/git/pull/8
PS: Thanks to Andrew Ardill <andrew.ardill@gmail.com> on providing his comments
of how to improve the format of this update email. I have tried to make it
as exhaustive as possible.
Regards,
Pranit Bauva
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [GSOC Update] Week 2
2016-05-15 17:45 ` [GSOC Update] Week 2 Pranit Bauva
@ 2016-05-15 18:01 ` Matthieu Moy
2016-05-15 19:17 ` Junio C Hamano
2016-05-15 19:11 ` Junio C Hamano
1 sibling, 1 reply; 8+ messages in thread
From: Matthieu Moy @ 2016-05-15 18:01 UTC (permalink / raw)
To: Pranit Bauva
Cc: git, christian.couder, chriscool, larsxschneider, andrew.ardill
Pranit Bauva <pranit.bauva@gmail.com> writes:
> ================================= SUMMARY ==================================
> My micro project on adding config variable to git-commit for verbose options
> is going to be merged with the master branch soon and will be available for
> git 2.8.3 .
Nit: being merged to master doesn't mean you'll be in the next minor
release, but in the next _major_ one. 2.8.3 will only contain bugfixes
compared to 2.8.2.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [GSOC Update] Week 2
2016-05-15 17:45 ` [GSOC Update] Week 2 Pranit Bauva
2016-05-15 18:01 ` Matthieu Moy
@ 2016-05-15 19:11 ` Junio C Hamano
2016-05-15 19:30 ` Pranit Bauva
1 sibling, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2016-05-15 19:11 UTC (permalink / raw)
To: Pranit Bauva
Cc: git, christian.couder, chriscool, larsxschneider, andrew.ardill
Pranit Bauva <pranit.bauva@gmail.com> writes:
> is available for testing on the pu branch. I am encouraging people to
> test it and provide useful comments.
Do not encourage people to "TEST". In general, do not put too much
weight on testing. The result would only measure a small portion of
what you wrote in the code, i.e. what you covered with the addition
to the test suite, plus whatever tests we already had.
Instead, ask people to review. A new code passing the testsuite is
a minimum requirement, and that is far from sufficient.
> * I have also converted bisect_log() and bisect_voc() whose patches[3] are
> sent to the list. Junio is yet to pick these up.
Again, my picking them up is not a success criteria (and certainly
being on 'pu' does not count for anything--it is nothing more than
"Junio saw them on the list and bookmarked the messages".
You should worry more about people not commenting nor reviewing them
than me picking them up (which would typically come later).
> * The main part (I think) was that I read about the method's which handled the
> refs. It was an interesting read though I did not read upon the actual
> implementations of those, I mainly covered "What does the method do?" and
> "How to use the method in my code?". git-grep is my best friend for this.
Yup.
You would not be calling for-each-ref from a C rewrite of
bisect-clean-state. Instead you would likely be calling
for_each_ref_in() to iterate over the existing refs/bisect/* refs,
recording their refname and objectname from the callback to
something like string_list, and then after for_each_ref_in()
finishes, iterate over the resulting string_list and running
delete_ref() on them.
And reading the implementation of for-each-ref and update-ref is a
good way to find the need to use these API calls and how they are
used. API docs are your second step.
Overall, good progress for an early week.
Thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [GSOC Update] Week 2
2016-05-15 18:01 ` Matthieu Moy
@ 2016-05-15 19:17 ` Junio C Hamano
0 siblings, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2016-05-15 19:17 UTC (permalink / raw)
To: Matthieu Moy
Cc: Pranit Bauva, git, christian.couder, chriscool, larsxschneider,
andrew.ardill
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
> Pranit Bauva <pranit.bauva@gmail.com> writes:
>
>> ================================= SUMMARY ==================================
>> My micro project on adding config variable to git-commit for verbose options
>> is going to be merged with the master branch soon and will be available for
>> git 2.8.3 .
>
> Nit: being merged to master doesn't mean you'll be in the next minor
> release, but in the next _major_ one. 2.8.3 will only contain bugfixes
> compared to 2.8.2.
Correct.
Recent "What's cooking" lists the topic as "Will merge to 'master'"
but this does not promise in which timeframe it will be merged to
'master', so it may not even be in 2.9.0 at all.
Generally, what is in 'next' is marked as "Will merge to 'master'"
by default, until a reason not to do so is found, at which time the
mark is changed to "Will hold", etc., so saying "master branch soon"
upon seeing "Will merge to 'master'" is a bit of overstatement.
In fact, "git log maint..pb/commit-verbse-config" shows that this
new feature is not ineligible for the maintenance track. It will
never be in 2.8.3 or any 2.8.x series.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [GSOC Update] Week 2
2016-05-15 19:11 ` Junio C Hamano
@ 2016-05-15 19:30 ` Pranit Bauva
0 siblings, 0 replies; 8+ messages in thread
From: Pranit Bauva @ 2016-05-15 19:30 UTC (permalink / raw)
To: Junio C Hamano
Cc: Git List, Christian Couder, Christian Couder, Lars Schneider,
Andrew Ardill
Hey Junio,
On Mon, May 16, 2016 at 12:41 AM, Junio C Hamano <gitster@pobox.com> wrote:
> Pranit Bauva <pranit.bauva@gmail.com> writes:
>
>> is available for testing on the pu branch. I am encouraging people to
>> test it and provide useful comments.
>
> Do not encourage people to "TEST". In general, do not put too much
> weight on testing. The result would only measure a small portion of
> what you wrote in the code, i.e. what you covered with the addition
> to the test suite, plus whatever tests we already had.
>
> Instead, ask people to review. A new code passing the testsuite is
> a minimum requirement, and that is far from sufficient.
Okay. Will keep this in mind.
>> * I have also converted bisect_log() and bisect_voc() whose patches[3] are
>> sent to the list. Junio is yet to pick these up.
>
> Again, my picking them up is not a success criteria (and certainly
> being on 'pu' does not count for anything--it is nothing more than
> "Junio saw them on the list and bookmarked the messages".
>
> You should worry more about people not commenting nor reviewing them
> than me picking them up (which would typically come later).
Sure.
>> * The main part (I think) was that I read about the method's which handled the
>> refs. It was an interesting read though I did not read upon the actual
>> implementations of those, I mainly covered "What does the method do?" and
>> "How to use the method in my code?". git-grep is my best friend for this.
>
> Yup.
>
> You would not be calling for-each-ref from a C rewrite of
> bisect-clean-state. Instead you would likely be calling
> for_each_ref_in() to iterate over the existing refs/bisect/* refs,
> recording their refname and objectname from the callback to
> something like string_list, and then after for_each_ref_in()
> finishes, iterate over the resulting string_list and running
> delete_ref() on them.
Actually I was seeing how for-each-ref called filter_ref() and
planning to use that. But for_each_ref_in() seems much better. Thanks.
I had planned on using delete_ref().
> And reading the implementation of for-each-ref and update-ref is a
> good way to find the need to use these API calls and how they are
> used. API docs are your second step.
Thanks. I have read the man pages as well as some parts of the
implementation (not the core details). API docs contain little
information about ref handling though. I can try trying writing some
documentation after GSoC project once I am comfortable with ref
handling.
> Overall, good progress for an early week.
Thanks!
Regards,
Pranit Bauva
> Thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [GSOC Update] Week 2
2016-05-22 19:58 [GSoC Update] Week 3 Pranit Bauva
@ 2016-05-30 5:37 ` Pranit Bauva
2016-05-30 5:45 ` Pranit Bauva
0 siblings, 1 reply; 8+ messages in thread
From: Pranit Bauva @ 2016-05-30 5:37 UTC (permalink / raw)
To: git; +Cc: larsxschneider, christian.couder, chriscool, Pranit Bauva
================================= SUMMARY ==================================
My public git.git is available here[1]. I regularly keep pushing my work so
anyone interested can track me there. Feel free to participate in the
discussions going on PRs with my mentors. Your comments are valuable.
=============================== INTRODUCTION ==============================
The purpose of this project is to convert the git-bisect utility which partly
exists in the form of shell scripts to C code so as to make it more portable.
I plan to do this by converting each function to C and then calling it from
git-bisect.sh so as to use the existing test suite to test the function which
is converted.
Mentors:
Christian Couder <chriscool@tuxfamily.org>
Lars Schneider <larsxschneider@gmail.com>
================================== Updates =================================
Things which were done in this week:
* bisect_clean_state() function is having a segmentation fault which is yet
not fixed by me. I will try this for one more day and then send it to the
list for RFC.
* I also converted is_expected_rev() and check_expected_revs() which also has
segmentation fault.
* I also converted bisect_head() function. I changed the semantics a little
bit. Previously the shell function used to echo the string, now it returns
the value to the caller.
* I investigated why test no. 43 and 44 are failing with t6030 with `|| exit`
in the previous version of the patch but it didn't in the newer one. This
is because the location of .git was hardcoded and thus it created problems
with bare repositories.
* I also sent a cleanup patch for using the marco GIT_PATH_FUNC to create a
function instead of using git_path() because of the benefits described
in the commit message of that change.
================================= NEXT STEPS ================================
Things which would be done in the coming week:
* Finish bisect_clean_state() conversion.
* Finish is_expected_rev() and check_expected_revs() conversion.
* Convert the function bisect_write(). I plan to convert this function and
add it as a subcommand.
* Convert bisect_reset() and add it as a subcommand.
* Convert get_terms() and add the variables TERM_GOOD and TERM_BAD in a struct
in the global state.
Regards,
Pranit Bauva
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [GSOC Update] Week 2
2016-05-30 5:37 ` [GSOC Update] Week 2 Pranit Bauva
@ 2016-05-30 5:45 ` Pranit Bauva
0 siblings, 0 replies; 8+ messages in thread
From: Pranit Bauva @ 2016-05-30 5:45 UTC (permalink / raw)
To: Git List; +Cc: Lars Schneider, Christian Couder, Christian Couder, Pranit Bauva
On Mon, May 30, 2016 at 11:07 AM, Pranit Bauva <pranit.bauva@gmail.com> wrote:
> ================================= SUMMARY ==================================
> My public git.git is available here[1]. I regularly keep pushing my work so
> anyone interested can track me there. Feel free to participate in the
> discussions going on PRs with my mentors. Your comments are valuable.
>
>
> =============================== INTRODUCTION ==============================
> The purpose of this project is to convert the git-bisect utility which partly
> exists in the form of shell scripts to C code so as to make it more portable.
> I plan to do this by converting each function to C and then calling it from
> git-bisect.sh so as to use the existing test suite to test the function which
> is converted.
>
> Mentors:
> Christian Couder <chriscool@tuxfamily.org>
> Lars Schneider <larsxschneider@gmail.com>
Its Week 4. Sorry.
Regards,
Pranit Bauva
^ permalink raw reply [flat|nested] 8+ messages in thread
* [GSoC] Update: Week 2
@ 2017-05-29 20:41 Prathamesh Chavan
0 siblings, 0 replies; 8+ messages in thread
From: Prathamesh Chavan @ 2017-05-29 20:41 UTC (permalink / raw)
To: git; +Cc: Stefan Beller, Christian Couder
SUMMARY OF MY PROJECT:
Git submodule subcommands are currently implemented by using shell script
'git-submodule.sh'. There are several reasons why we'll prefer not to
use the shell script. My project intends to convert the subcommands into
C code, thus making them builtins. This will increase Git's portability
and hence the efficiency of working with the git-submodule commands.
Link to the complete proposal: [1]
Mentors:
Stefan Beller <sbeller@google.com>
Christian Couder <christian.couder@gmail.com>
UPDATES:
As planned for the second week, I continued working on completing the porting
of submodule subcommand foreach[2][3][4] and status.[5][6] An updated version
of these was added to the mailing list as well.
For the submodule-status, I have implemented the suggestions received on the
previous patch. But for submodule-foreach, still, some issues are left to be
solved.
Apart from this, in this week, porting of submodule subcommand sync was also
carried out. But instead of adding anymore floating patches on the mailing
list, I have started discussing the patch with my mentors itself, so that on
the mailing list, the focus would remain with the ported submodule subcommands
status and foreach patches.
I have also taken up with the submodule subcommand summary for porting.
PLAN FOR WEEK-3 (30 May 2017 to 5 June 2017):
As suggested by my mentors, in this week, instead of adding more floating
patches to the mailing list and porting more submodule subcommand, I would
like to polish the existing patches and try to resolve the issues they
currently have, eventually aiming for getting them merged.
Also, since I have also completed porting of submodule subcommand sync, after
reviewing the patches with mentors I'll soon be posting it on the mailing
list.
Additionally, I will also try to complete porting of submodule-subcommand
summary in this week itself.
[1]: https://docs.google.com/document/d/1krxVLooWl--75Pot3dazhfygR3wCUUWZWzTXtK1L-xU/
[2]: https://public-inbox.org/git/20170526151713.10974-1-pc44800@gmail.com/
[3]: https://public-inbox.org/git/20170526151713.10974-2-pc44800@gmail.com/
[4]: https://public-inbox.org/git/20170526151713.10974-3-pc44800@gmail.com/
[5]: https://public-inbox.org/git/20170521122711.22021-1-pc44800@gmail.com/
[6]: https://public-inbox.org/git/20170521122711.22021-2-pc44800@gmail.com/
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-05-29 20:41 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-29 20:41 [GSoC] Update: Week 2 Prathamesh Chavan
-- strict thread matches above, loose matches on Subject: below --
2016-05-22 19:58 [GSoC Update] Week 3 Pranit Bauva
2016-05-30 5:37 ` [GSOC Update] Week 2 Pranit Bauva
2016-05-30 5:45 ` Pranit Bauva
2016-05-08 11:27 [GSOC update] Week 1 Pranit Bauva
2016-05-15 17:45 ` [GSOC Update] Week 2 Pranit Bauva
2016-05-15 18:01 ` Matthieu Moy
2016-05-15 19:17 ` Junio C Hamano
2016-05-15 19:11 ` Junio C Hamano
2016-05-15 19:30 ` 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).