Sunday, June 26, 2011

Git 1.7.6

Git v1.7.6 Release Notes
========================

Updates since v1.7.5
--------------------

 * Various git-svn updates.

 * Updates the way content tags are handled in gitweb.  Also adds
   a UI to choose common timezone for displaying the dates.

 * Similar to branch names, tagnames that begin with "-" are now
   disallowed.

 * Clean-up of the C part of i18n (but not l10n---please wait)
   continues.

 * The scripting part of the codebase is getting prepared for i18n/l10n.

 * Pushing and pulling from a repository with large number of refs that
   point to identical commits are optimized by not listing the same commit
   during the common ancestor negotiation exchange with the other side.

 * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig)
   using "git add" will send the contents straight to a packfile without
   having to hold it and its compressed representation both at the same
   time in memory.

 * Processes spawned by "[alias] <name> = !process" in the configuration
   can inspect GIT_PREFIX environment variable to learn where in the
   working tree the original command was invoked.

 * A magic pathspec ":/" tells a command that limits its operation to
   the current directory when ran from a subdirectory to work on the
   entire working tree. In general, ":/path/to/file" would be relative
   to the root of the working tree hierarchy.

   After "git reset --hard; edit Makefile; cd t/", "git add -u" would
   be a no-op, but "git add -u :/" would add the updated contents of
   the Makefile at the top level. If you want to name a path in the
   current subdirectory whose unusual name begins with ":/", you can
   name it by "./:/that/path" or by "\:/that/path".

 * "git blame" learned "--abbrev[=<n>]" option to control the minimum
   number of hexdigits shown for commit object names.

 * "git blame" learned "--line-porcelain" that is less efficient but is
   easier to parse.

 * Aborting "git commit --interactive" discards updates to the index
   made during the interactive session.

 * "git commit" learned a "--patch" option to directly jump to the
   per-hunk selection UI of the interactive mode.

 * "git diff" and its family of commands learned --dirstat=0 to show
   directories that contribute less than 0.1% of changes.

 * "git diff" and its family of commands learned --dirstat=lines mode to
   assess damage to the directory based on number of lines in the patch
   output, not based on the similarity numbers.

 * "git format-patch" learned "--quiet" option to suppress the output of
   the names of generated files.

 * "git format-patch" quotes people's names when it has RFC822 special
   characters in it, e.g. "Junio C. Hamano" <jch@example.com>.  Earlier
   it was up to the user to do this when using its output.

 * "git format-patch" can take an empty --subject-prefix now.

 * "git grep" learned the "-P" option to take pcre regular expressions.

 * "git log" and friends learned a new "--notes" option to replace the
   "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does
   not imply showing the default notes.

 * They also learned a log.abbrevCommit configuration variable to augment
   the --abbrev-commit command line option.

 * "git ls-remote" learned "--exit-code" option to consider it a
   different kind of error when no remote ref to be shown.

 * "git merge" learned "-" as a short-hand for "the previous branch", just
   like the way "git checkout -" works.

 * "git merge" uses "merge.ff" configuration variable to decide to always
   create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create
   a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes
   (or not setting it at all) restores the default behaviour of allowing
   fast-forward to happen when possible.

 * p4-import (from contrib) learned a new option --preserve-user.

 * "git read-tree -m" learned "--dry-run" option that reports if a merge
   would fail without touching the index nor the working tree.

 * "git rebase" that does not specify on top of which branch to rebase
   the current branch now uses @{upstream} of the current branch.

 * "git rebase" finished either normally or with --abort did not
   update the reflog for HEAD to record the event to come back to
   where it started from.

 * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier
   a fetch-mode mirror meant mirror everything, but now it only means refs are
   not renamed.

 * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
   commits separately, producing more a useful output.

 * "git submodule update" learned "--force" option to get rid of local
   changes in submodules and replace them with the up-to-date version.

 * "git status" and friends ignore .gitmodules file while the file is
   still in a conflicted state during a merge, to avoid using information
   that is not final and possibly corrupt with conflict markers.

Also contains various documentation updates and minor miscellaneous
changes.


Fixes since v1.7.5
------------------

Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
included in this release.

 * "git config" used to choke with an insanely long line.
   (merge ef/maint-strbuf-init later)

 * "git diff --quiet" did not work well with --diff-filter.
   (merge jk/diff-not-so-quick later)

 * "git status -z" did not default to --porcelain output format.
   (merge bc/maint-status-z-to-use-porcelain later)

Saturday, June 25, 2011

More Fun with Nook Simple Touch

Earlier I wrote about my new toy, Nook Simple Touch. Using the instruction at nookdevs (which was originally written for Nook Color, so I had to improvise a bit), I managed to tell Market and Google eBooks who I am and now I have both working.


There are screens in Market that I cannot read anything (e.g. application description); I am guessing either the application is trying to render the text in a color that is too faint on the grayscale display (unlikely but possible), or wants to use specific font not available on Nook, but haven't dug into the issue (yet).

A purchased Google eBook can be downloaded (on a PC) in the format that can be read on Nook via Adobe Digital Edition, so I have the same book readable in both Google eBooks application, and in the native Nook application. The formatting in Google eBooks for the particular book I tried was miserable (but that is the same as on my XOOM and not the fault of Nook Simple Touch device).

Wednesday, June 22, 2011

Cycle 1.7.6, day #3 of week #9

Previous reviews resulted in a few topics to be re-rolled and/or rebased.
With Shawn, met David Barr who was in town.

Earlier I was planning to skip 1.7.6-rc3 and go straight to 1.7.6 final, but decided to do a final round anyway.

Sent out the fourth issue of "What's cooking" summary for the month.

For the first time, FC15 test bochs managed to produce the set of release RPMs (I had missing build-dependencies here and there but this has never been a high priority for me, so...).


Commented on 6 topics on the list.
Tagged v1.7.6-rc3.
Queued 28 patches from 6 people.

Git 1.7.6-rc3

Just a small update before the final 1.7.6 happens at the end of this week. Please test it well.

It is available at the usual places for the final round of testing:

  http://www.kernel.org/pub/software/scm/git/

  git-1.7.6.rc3.tar.{gz,bz2}                    (source tarball)
  git-htmldocs-1.7.6.rc3.tar.{gz,bz2}           (preformatted docs)
  git-manpages-1.7.6.rc3.tar.{gz,bz2}           (preformatted docs)

The RPM binary packages for a few architectures are found in:

  testing/git-*-1.7.6.rc3-1.fc13.$arch.rpm      (RPM)

Tuesday, June 21, 2011

Cycle 1.7.6, day #2 of week #9

Overnight, the publisher of my Git book notified that they found a misprint in the latest print run. Prepared material to update the affected readership.

Ram's update to "revert/cherry-pick" refactoring is getting into a reasonable shape, to be ready for the next cycle. I am reasonably happy with it.

Commented on 12 topics on the list.
Queued 14 patches from 2 people.

入門 Git (第4刷) の誤刷

拙著、入門 Git の310ページにプログラム例が二つばかりありますが、 第4刷には、印刷までの過程のミスで、真っ黒になって読めないものがあるそうです。もしもお買い上げの本にこの問題があれば、お手数でも、出版元のサービスセンター<service@shuwasystem.co.jp>まで御連絡下さいますよう、お願いします。











上の方のハコには、

DAVLockDB "/usr/local/apache2/temp/DAV.lock"

また、下の方のハコには、

<Location /project.git>
  DAV on
  AuthType Digest
  AuthName "Git"
  AuthUserFile /usr/local/apache2/conf/passwd.git
  Require valid-user
</Location>

と書いてあるのが正です。

(後日修正) 第一報では、「第三版・第四版」とお伝えしましたが、調査の結果、第三版については問題なく、第四版のみ問題があることが判明したそうです。なんでも四版の残りは回収して五版と交換となるらしいので、稀覯本として価値が出るかも知れません・・・なんてわけはないか ;-)。

Monday, June 20, 2011

Cycle 1.7.6, day #1 of week #9

A handful more topics, most notably an update for the external transport helper interface, are being reviewed and discussed.

Commented on 8 topics on the list.
Queued 8 patches from 5 people.
Merged 1 topic to 'master' branch, to include in the next release.

Having fun with Nook Simple Touch

I've had a second generation Kindle for some time, but for the past 8 months or so I have been sampling eBooksellers different from Amazon, and unfortunately Kindle does not read anything but what comes from Amazon X-<.

Kindle for Android, Nook, Kobo and Google eBooks apps all run on a XOOM I happen to have. But when all I want to do is just to read, it is a bit too heavy, especially when I am horizontal facing the ceiling. Then recently I saw Barnes & Noble selling the "all new Nook", aka "Nook Simple Touch", which has a 6-in e-Ink display (the same size as the second and the third generation Kindle) and runs on Android 2.1, which was quickly followed by rooting instructions that allows applications to be side-loaded ;-)

Compared to the second generation Kindle, it is significantly smaller (the bottom fourth of Kindle is a keyboard which Nook Touch does not have) and lighter, but interestingly, I found out that the small size of Nook does not directly translate to easier reading while lying down. The rarely-used keyboard part of Kindle allowed me to hold it between my thumb and palm in one hand, and I had to try many different ways to hold Nook Touch comfortably without touching the screen (which unlike Kindle is touch sensitive). For now, I settled with holding it in its cover folded all the way back, but I am not yet quite satisfied.

As to the software, I have installed Amazon Appstore and from there Kindle for Android. Regular Kindle books are readable without anything else, but Periodical was hard to navigate without "Back" button. For that, I installed SoftKeys, as Nook does not have physical buttons.

I also have ADW Launcher EX (which I already use on my phones) installed. The native Nook application can read B&N Nook books (of course), and I read Google eBooks by downloading them in the Nook format (via the adobe digital editions).

I haven't figured out how to enable the Google services yet, so while Google eBooks application is already installed, it asks me to "Add Google Account" and then does nothing. For the same reason, I haven't bothered to install GMail yet (although I have K-9 mail installed and have it working).

Neither the native Browser application nor Opera Mini seem to give a good browsing experience on this slate, but I am not expecting to use it as a browser anyway, so that is not a huge dissapointment.

日本からのニュースは腹の立つことばかり

だいぶん前に、日本赤十字を通じて送った義援金はまだきちんと分配されていないのだそうで、難しいのは、被害の度合に合わせて分配する、でも、そもそも全体の被害がきちんとわからないので、割り算で言う分母が決まらない、というところなのだそうである。死んだ人がいる家庭は一ポイント、家を失った家庭は一ポイント、てな具合にポイントを足していって被害の度合を決めるらしいが、こんなコトを言って誤解されるのは困るけれど、なぜ死んだ人の数を数えるのであろうか。他の人は知らぬが、ボクは「お線香やお花代にして下さい」という積りではなくて、全てを無くして当座の生活にもこと欠くような生き残った人の助けになるように、という思いで募金した積りである。だから、被災後のいま、働き手がなくなった・働く場所がなくなった、その結果収入源がない、ということに対して一ポイント、とか、被災後のいま、家族4人が食べていかないといけない、ということに対して四ポイント、とか言って数えるのには納得がいくけれど、A家ではおじいちゃんが死んだから一ポイント、B家ではお母さんが死んだから同じく一ポイント、C家ではねたきりのおばあちゃんまで無事に避難できたから死者ポイントなし、では納得がいかない。全て失った残った家族が生活していくのに必要なニーズを算定してそれに応じて分配するのがココロなのであれば、A家とB家とを同様に数えるのはおかしな話であるし、これからの支援の必要はおじいちゃんが死んでしまったA家よりもこれからもおばあちゃんの世話をしていかないといけないC家のほうがむしろ大きいだろう、と思うわけだ。別におじいちゃんは経済効果として役に立っていないから早く死んで下さい、という積りではない。死んだ人が出れば悲しくもあるし、御葬式の費用も必要だろう。でも今は火事場であって、そこで生活を続けていかないといけない生き残った人のために送った義援金である。受けた被害の大きさ、を重要視するのではなくて、生き残った人の必要に応じて配分してほしいものだと思う。

原発汚染水の処理に4段階式の装置を使うのだそうで、第一段の油抜きは東芝製、第二段のセシウム吸着は米国製、第三段の除染は仏国製で、最後の淡水化は日立製ということだ。これが、各分野で一番のすぐれた技術を持った人たちに得意分野を任せた「オールスター」であってほしいものだと思うボクはおそらくナイーブであって、単に昔からの「日立は、東芝が一つ入るならウチも加えろ、と言う。仏国製品を使うならウチのも使え、と米国も言う」のに合わせるという日本のお家芸だ、というところが正しいのであろう。

菅総理をやめさせよう、というのは構わないが、その後、こういう展望でこういう政治をしたい、だから早くやめてほしいのだ、とは誰も言っていないようなのが情けない。そんなコトだから、「どうせ誰がやっても同じである」という国民の反応になるのである。

Sunday, June 19, 2011

Cycle 1.7.6, week #8

Mostly an uneventful week. Tagged 1.7.6-rc2 and without any serious regression report, it seems that we are good to go to the final release without -rc3.

Topics that are meant for the post 1.7.6 cycle are still flowing in. Notable are to enable server side compression for git-archive remote access interface, and a re-roll of transport-helper fixes.

Tagged 1 release.
Queued 45 patches from 12 people.
Made 2 merges to 'master' branch, to include in the next release.