Tuesday, May 31, 2011

Cycle 1.7.6, day #2 of week #6

Gave the final round of eyeballing to the list of topics that are still cooking, to categorize them into the ones to include in the upcoming release, and the ones to defer. Decided to postpone the streaming checkout topic to the next cycle, but did some benchmark to make sure it is sound.

Commented on 6 topics.
Queued 6 patches from 3 people.
Merged 12 topics to 'master' branch, to include in the next release.
Merged 6 topics to 'maint' branch, to include in the maintenance release.

Monday, May 30, 2011

Cycle 1.7.6, day #1 of week #6

Holiday but ended up working a bit on Git, some reading of list messages and a lot of re-reviewing of the list of topics in cooking to decide which ones to include in the upcoming release.
Commented on 7 topics.
Queued 3 patches from 3 people.
Merged 3 topics to 'master' branch, to include in the next release.
Merged 11 topics to 'next' branch for public testing.
Merged 3 topics to 'maint' branch, to include in the maintenance release.

Sunday, May 29, 2011

Cycle 1.7.6, day #7 of week #5

Again, not much done, except for scanning the list traffic where I found nothing urgent. It is a long weekend in the US and I guess everybody is taking things slowly. I can afford to live slowly for a change, too.

Finished the initial machine tweaking of the FC15 bochs well enough to build and test "next" branch of git successfully (I am skipping t9xxx series but I have been skipping them on FC13 bochs for some time, so this is not a regression).

Drove to the airport and fetched my wife in the afternoon, and then helped her unpack.

A little bit of Fun with eBooks

I found this in a book I was reading: "His [Louis Pasteur's] reputation soared when he diagnosed a disease that had been decimating France's silk industry." The book didn't go into any details, as its topic was about later work of his, not about his work helping the silk industry.

But I got curious, so naturally this became my "Google a Day" topic. But I am unfocused when I am not working, and my attention wander around without bounds and easily stray into tangents.

"Louis Pasteur Silkworm" gave many hits. A Wikipedia article mentioned a silkworm disease called Pébrine but its description was a bit sketchy. I wanted to try something different today, so from the sidebar, I said "More", and picked "Books", and looked for "Silkworm Pébrine". There were many books listed, so I then narrowed them down with "Preview Available". There were still quite many books on the topic. I picked The culture of the mulberry silkworm, which is a bulletin issued by USDA in 1903.
 
It was an entertaining read.

Saturday, May 28, 2011

Cycle 1.7.6, day #6 of week #5

Not much done today, other than throwing a "how about this" patch to fix a possible "show --quiet" regression and commenting on a few topics on the list.

No longer a youngster

I ended up wasting most of the day installing FC15 on a new VM. I used to feel thrilled and excited installing a new system on either a physical or a virtual hardware, but these days it no longer is an excitement, but just is a painful chore.

Last time I had to do this with FC13, NetworkManager got in the way, and this time they threw systemd in the mix. The casual desktop users who use the default system out of the box wouldn't need that kind of complexity, and they actively hurt somebody like me who simply wants to get a stupid non-X, fixed-address bochs with NFS mounted home directory without having to learn "the new and improved" way.

Needed to "systemctl enable/start sshd.service", same for rpc.statd.
Oh, and let's not forget SELINUX=disabled in /etc/selinux/config file.

Sigh, the price of progress...

Friday, May 27, 2011

Cycle 1.7.6, day #5 of week #5

Linus raised an interesting issue on the list. Nobody in the git tool-chain warns if somebody added a non-breaking space (UTF-8 c2a0) to the source code. A patch that has such a whitespace is not warned with --whitespace=warn, "git diff" will not highlight nor "git diff --check" will not complain.

But of course, gcc will complain.

Wrote a quickie 4-patch series to address this issue, but both Linus and I agree that it is dubious if git should be doing this as part of "whitespace breakage detection and fix" machinery.

Commented on a few topics.
Queued 16 patches from 7 people.

Thursday, May 26, 2011

Cycle 1.7.6, day #4 of week #5

Lost about half a day yesterday as I felt very sick in the late afternoon and stayed in bed. But I was feeling much better today.

Merged a handful of topics to the master branch as they all seem to be in good shape. Also back-merged accumulated fixes that have been on master to maint to cut a new maintenance release v1.7.5.3. There still are a few large-ish topics that are cooking in next, but the list discussion seems to have found a good solution for the one I was most worried about (ab/i18n-scripts), so I am reasonably optimistic.

Among other topics, I am inclined to exclude the streaming write-out and postpone it until the next cycle.

Commented on ~20 topics.
Tagged v1.7.5.3.
Queued 35 patches from 6 people.
Merged 7 topics to 'master' branch, to include in the next release.
Merged 1 topic to 'next' branch for public testing.
Merged 14 topics to 'maint' branch, to include in the maintenance release.

Getting used to Blogger

I used to use LiveJournal but I was getting too many comment spam and switched to Blogger. I am not suffering from spam anymore (or not yet?). It could be just because not many people know that this blog exists (yet). Or perhaps Blogger is doing much better job than LiveJournal fighting spam. I don't know (yet).

One thing I very much like about this new location is that fairly detailed access statistics comes for free. It is fun to see accesses not only from North America but also from Japan and Europe, when readers are active, and whatnot. Also I notice that fairly large number of people used to come from planet.git-scm.com just after I switched here, but not anymore (for an obvious reason - they still point at the old LiveJournal site, whose last article was my announcement to move here).

The ads also come for free, but LiveJournal also had ads, so I think that it is not a huge regression. Looking at the access statistics from many different countries, I wonder if people are shown tailored ads depending on where they come from, and if their clicks are costing very different amount to the advertisers, things like that.

Git 1.7.5.3

The "master" front for 1.7.6 has been stabilizing, and a handful of topics have already been field-tested by real users. These fixes have now been back-merged for the 1.7.5.X maintenance branch, and the result is this release.

Nothing earth shattering, just a bunch of small bugfixes.

Wednesday, May 25, 2011

Cycle 1.7.6, day #3 of week #5

After spending most of the day busily working on Git as usual, started feeling feverish in the evening, and decided to drop everything and went to bed really early.

A patch to remove an useless assignment found by the compiler by somebody led to a discovery of an old bug. The assignment to a variable was correct, and not using the assigned value later in the code was wrong, but the compiler couldn't tell ;-).

Tuesday, May 24, 2011

Cycle 1.7.6, day #2 of week #5

Concentrated on sifting the topics that have long been stalled into two bins, ones to help resurrect and others to discard. Rebased and requeued a large-ish gitweb series.

Resurrected the topic to tone down the advice message given when coming back to a branch from the detached HEAD state by giving it the finishing touches.

Monday, May 23, 2011

Cycle 1.7.6, day #1 of week #5

The next release is slowly but steadily taking shape, and overall things look very reasonable. The original schedule was to freeze new features at the end of this month and tag 1.7.6-rc0 on June 1st, and it does not seem an unreasonable goal to achieve.

In the upcoming release, we will have the magic pathspec to let you say "add -u :/" to operate on the whole tree, various working tree commands that use "add -p" machinery got updated, some updates to "diff --dirstat", "git log" can show annotations from more than one notes namespace, "git merge -" can be used to merge the branch you just switched out of, etc. etc.

Also we should be able to merge in the initial round of i18n message markings for the scripted Porcelain part before the feature freeze.

See the latest "What's cooking" summary sent to the list for details.

Commented on 16 topics.
Queued 22 patches from 6 people.
Merged 8 topics to 'master' branch, to include in the next release.
Merged 9 topics to 'next' branch for public testing.

Sunday, May 22, 2011

Cycle 1.7.6, day #7 of week #4

A slow day again, as this was my UnGit weekend day 2. Took my wife to the airport, read some list e-mails and responded to only a few, did some reading and not much else done.

Reviewed and commented on 5 topics.

UnGit Weekend day 2

Again, I am trying to relax and take this weekend off from much Git activity.

Which usually means that I am doing some random reading and other learning activities that are totally unrelated to computers.

Today, I learned how to deconstruct the word "mesothelioma". Somehow I always thought incorrectly that the word has something to do with "stone" and related to "rock wool", but it is broken down to mesos above - thele nipple - oma tumor, and does not have anything to do with asbestos.

It's funny that I got interested in a topic so remote from my ordinary life. The topic happened to be brought up when my wife was talking about a TV drama she recently watched. The last time I saw asbestos was probably in a middle school science class where we heated a beaker with some liquid in it on a wire-mesh with the material in the center with a bunsen burner underneath the whole contraption. Luckily I do not have any contact with the stuff in my real life, and I assume that science labs these days use some alternative material, probably ceramics or something. I also recall using glass wool in science lab for something, but it seems that it also is considered possible carcinogen these days.

Times change. When I was in high school which admittedly was a long time ago, synthesizing nitroglycerin in science club's lab and using it in an explosive experiment on the rooftop of the school was considered no more than just a minor mischief. Probably teachers wouldn't let their students run so wild as our time these days, fearing accidents and litigation...

Saturday, May 21, 2011

Cycle 1.7.6, day #6 of week #4

Other than queuing updated i18n scripts series from Ævar, I didn't do much Git work today.

UnGit Weekend

In the morning, just as a diversion, I decided to take a day-off from my Git activity.
Spent some quality time reading, relaxing and drinking my tea.

Ended up reading a few e-mails on the list during the day, but otherwise was a surprising Git-free day ;-)

My wife will be leaving for a sightseeing trip with her friend to Korea tomorrow, so I'll be tentatively a bachelor again for a week.

Friday, May 20, 2011

Cycle 1.7.6, day #5 of week #4

After Rene found a few more stupid bugs in the streaming input API, re-rolled it and sent out the third revision of the topic for another round of review to the list.

Building on top of the topic, designed and implemented a streaming conversion API, and added a couple of sample conversion filters. The API also allows filters to be easily cascaded (that part has not been tested at all yet), so I may be able to interest enough others to work on individual pieces of missing filters. Sent this series also to the list.

Reviewed and commented on 9 topics.
Queued 16 patches from 3 people.
Merged 1 topic to 'next' branch for public testing.

Thursday, May 19, 2011

Cycle 1.7.6, day #4 of week #4

Re-rolled two topics I worked on recently (streaming read from object store, and removing notes from many objects at once) and sent them out to the list for review.

Issued the periodical "What's cooking" summary.

The band-aid to merge-recursive that has been cooking since 1.7.4 timeframe seems to be broken. Decided to revert it from master, even though reverting would unmask some other breakage the band-aid was hiding. We might even have to revert a yet another older topic, but I am hoping it does not have to happen. The merge-recursive implementation needs to be rewritten someday in such a way that it resolves renames and D/F conflicts entirely in-core and not to touch working tree at all while doing so. It seems to be working most of the time, but its D/F conflict resolution code is beyond salvaging. Until I can find a time to rewrite the entire thing, we need to keep the current code working as an insurance.

Cut the 1.7.5.2 maintenance release.

Reviewed and commented on 11 topics.
Queued 24 patches from 4 people.
Merged 12 topics to 'master' branch, to include in the next release.
Merged 4 topics to 'next' branch for public testing.

Wednesday, May 18, 2011

Cycle 1.7.6, day #3 of week #4

As a part of spring housecleaning, decided to remove old entries from my database that maps each of the commit to the mailing list message Id it originally appeared in the patch form. Found that "git notes remove" command is sorely lacking to help with this job, so decided to add an interface for bulk-removal to the command.

Sent out a 4-patch series that resulted from this effort for review.

Peff found out that the streaming-read series had an unpleasant performance issue and an unrelated logic bug. Re-rolled the series and updated its internal data structure a bit while fixing the bug. Haven't had a chance to look at the performance issue.

Reviewed and commented on 11 topics.
Queued 15 patches from 5 people.
Merged 3 topics to 'next' branch for public testing.

Tuesday, May 17, 2011

Cycle 1.7.6, day #2 of week #4

Somewhat a slow day.
Attended the 1 year celebration lunch with folks who joined Google the same day as I did, and then attended a ceremony where Ken Thompson was awarded the Japan Prize.

Reviewed and commented on 7 topics.
Queued 7 patches from 6 people.
Merged 1 topic to 'next' branch for public testing.

Monday, May 16, 2011

Cycle 1.7.6, day #1 of week #4

It's somewhat surprising that we are already in the fourth week, and the main part of this cycle is supposed to run for only five weeks.

Needed to re-roll the streaming-read series for a few times. Jeff and J6t finally seem to have found and solved the last remaining corner case deadlock issues when one end dies during the object transfer.

Re-reviewed the topics that are cooking, and re-categorized them. About a dozen topics should graduate by 1.7.6-rc0.

Reviewed and commented on 12 topics.
Queued 23 patches from 3 people.
Merged 5 topics to 'master' branch, to include in the next release.
Merged 6 topics to 'next' branch for public testing.
Merged 9 topics to 'maint' branch, to include in the maintenance release.

Heh, you found me ;-)


Yes, here I am.

(Note to the puzzled: I announced that I am using a different blog and will not write anymore at another blog hosting service, without saying where the "different blog" is.)

Sunday, May 15, 2011

Cycle 1.7.6, day #7 of week #3

Getting closer to 1.7.5.2 to push out some accumulated changes.
Gave another look at the streaming write-out topic, shuffled and reshuffled the topic number of times and split out clean-ups and refactoring changes to existing parts of the system, to make the topic by itself smaller, and making it easier to review these preparation steps.

Sent out the result to the list, and then queued them in 'pu'.

Sent out the periodical "What's cooking" summary.

Reviewed and commented on 10 topics.
Queued 20 patches from 1 person.
Merged 8 topics to 'next' branch for public testing.
Merged 4 topics to 'maint' branch, to include in the maintenance release.

Saturday, May 14, 2011

Cycle 1.7.6, day #6 of week #3

Finished the initial implementation of streaming-input topic. Will need to review it once again before sending it out.

A rather large i18n series was re-rolled.

Reviewed and commented on 6 topics.
Queued 64 patches from 6 people.

Friday, May 13, 2011

Cycle 1.7.6, day #5 of week #3

Back-merged a handful of topics that have been out on the 'master' branch to 'maint', in preparation of the next maintenance release 1.7.5.2.  Also merged topics that have been cooking in 'next' down to 'master'. The cycle is progressing smoothly, even though I haven't managed to advance the "magic pathspec" topic I wanted to have in 1.7.6 fully cooked yet.

The streaming interface is coming along slowly but steadily. It mostly is looking at the "slurp everthing into the memory" implementations in sha1_file.c and figuring out how to restructure the existing code there.


Reviewed and commented on 5 topics.
Queued 21 patches from 3 people.
Merged 8 topics to 'master' branch, to include in the next release.
Merged 7 topics to 'maint' branch, to include in the maintenance release.

Thursday, May 12, 2011

Cycle 1.7.6, day #4 of week #3

Continued working on the write-out side of the bigfile support.  For this topic, refactored a few functions from a couple of distinct areas and then designed a brand new "streaming" input API to read from repository objects. The fundamentals are slowly but steadily taking shape.

The list was relatively quiet today.

Reviewed and commented on 6 topics.
Queued 8 patches from 2 people.
Merged 1 topic to 'master' branch, to include in the next release.
Merged 1 topic to 'next' branch for public testing.

Wednesday, May 11, 2011

Cycle 1.7.6, day #3 of week #3

The codepath to take a huge file from the working tree and register it to the repository should be usable for debugging the rest of the bigfile topic, so switched my attention to the codepath in the opposite direction: writing the repository data out to a file in the working tree. Did a few rounds of private rewrite of possible APIs to allow us reading from the repository without slurping the whole thing in the memory.

Reviewed and commented on 6 topics.
Queued 5 patches from 3 people.
Merged 8 topics to 'master' branch, to include in the next release.
Merged 7 topics to 'next' branch for public testing.

(I think blogger lost a post during their outage - this post is backdated)

Tuesday, May 10, 2011

Cycle 1.7.6, day #2 of week #3

Decided to scale down the scope of the magic pathspec topic for the initial rollout.  Added several "finishing touches" patches to the series.

Looked at the list of topics in flight again to decide which ones to advance for this week.

Reviewed and commented on 11 topics.
Queued 14 patches from 6 people.
Merged 1 topic to 'next' branch for public testing.

Monday, May 9, 2011

Cycle 1.7.6, day #1 of week #3

Noticed that the blob conversion code has become quite messy as we acquired more and more tweaks enabled via the attributes mechanism.  Sent out a 4-patch series to clean it up, although it turns out that it is unnecessary to introduce a new attribute to control the conversion, which was the original reason I was looking at the conversion code to begin with.

Also updated the magic pathspec series a bit. The basic feature is there as far as it can be implemented without converting "array of strings" interface into the proper "struct pathspec" interface, and the rough edges are only around the error reporting codepath, so in that sense it is the best we could do for now.  Sent out a 9-patch series as the result.

Reviewed and commented on 12 topics.
Queued 35 patches from 8 people.
Merged 1 topic to 'next' branch for public testing.

Sunday, May 8, 2011

Cycle 1.7.6, day #7 of week #2

The second wave of i18n patch-set flood started flowing.
Also saw a few topics from others that was easier to explain the right way to do them by just showing (i.e. doing it myself) than hinting them, and sent out a few patches to do so.

Reviewed and commented on 15 topics.
Queued 65 patches from 7 people.
Merged 8 topics to 'next' branch for public testing.

Saturday, May 7, 2011

Cycle 1.7.6, day #6 of week #2

My Ubuntu notebook has been nagging me to update to their N release; very annoying.

A slow day (hey, it's Saturday).

Had some quality git hacking time to sit for more than two hours straight working on a single topic ("git add a-Big-file"), which is unfortunately quite a rare occasion for me these days.

Sent out a 3-patch series for review.
Reviewed and commented on 7 topics on the list.

Friday, May 6, 2011

Cycle 1.7.6, day #5 of week #2

This cycle probably is going smoother than the previous ones.
At least that is what I am feeling. But it could be just because I am trying to keep daily tallies here, which may be giving a feeling that is warmer and fuzzier than it actually should be.

I dunno.

Reviewed and commented on 12 topics.
Sent out 2 patches for review.
Queued 8 patches from 3 people.
Merged 14 topics to 'master' branch, to include in the next release.
Merged 3 topics to 'next' branch for public testing.

Thursday, May 5, 2011

Cycle 1.7.6, day #4 of week #2

Finally ended up getting sucked into the "plug-in" discussion I so far have avoided.

Two topics that have already been merged to "next" got late but reasonable objections. They need to be incrementally updated.

Rewrote a few of my own patches still queued as proposed updates status.

Reviewed and commented on 20+ topics. 
Queued 15 patches from 9 people.
Merged 2 topics to 'next' branch for public testing.

Wednesday, May 4, 2011

Cycle 1.7.6, day #3 of week #2

Cut 1.7.5.1 with 20+ fixes since 1.7.5 release.

Reviewed and commented on 9 topics.
Sent out  3 patches for review.
Queued 20 patches from 7 people.
Made 17 merges to 'master' branch, to include in the next release.
Made 11 merges to 'next' branch for public testing.
Made 10 merges to 'maint' branch, to include in the maintenance release.

Sent out "What's cooking" project summary.

Git 1.7.5.1

It has been a week and half since 1.7.5 was done.

There was a rather nasty smart-HTTP bug in 1.7.5 (the bug itself was a lot older, but a change in 1.7.5 made it a lot easier to trigger) but hopefully that is now fixed.

Tuesday, May 3, 2011

Cycle 1.7.6, day #2 of week #2

Reviewed and commented on 10 topics.
Sent 2 and a half patches for review.

Queued 9 patches from 4 people.

Monday, May 2, 2011

Cycle 1.7.6, day #1 of week #2

Reviewed and commented on 10 topics.
Sent out 2 patches for review.

Queued 4 patches from 3 people.
Merged 6 topics to 'master' branch, to include in the next release.
Merged 11 topics to 'next' branch for public testing.

Social is hard

From time to time I get a connection invitation at LinkedIn.

Sometimes I have no idea who the inviter is, and have to ask "Sorry, where do I know you from?" Some other times, it is from a well known name in the industry, and I certainly know of or heard of the person, but I do not recall ever communicating with that person.

I feel honored to be invited, but I do not know how I deserve that honor.

Social is hard for me. That is probably because, as Linus said in his Google TechTalk on git, "we are geeks and we have only two [friends]" ;-). I end up keeping links only with people who I have first-hand experience communicating with, either in person (old colleagues) or in ether (git community members).

Perhaps other people are more casual to connect promiscuously. I dunno.

Sunday, May 1, 2011

Cycle 1.7.6, day #7 of week #1

Started looking at sha1_file.c::index_fd() to figure out a way to make it optionally call out to fast-import so that we do not have to read and hold the whole thing in the core at once.  Am tempted to just say we won't support any clean filters and friends on this codepath, but it would be an interesting exercise.

Reviewed and commented on 5 topics.
Queued 4 patches from 4 people.
Merged 2 topics to 'master' branch, to include in the next release.