<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>#gitfr</title>
    <link>http://www.gitfr.net/blog</link>
    <description>Projet pour la promotion du bien et la destruction du mal</description>
    <pubDate>Sun, 06 Jan 2013 01:34:24 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/gitfr" /><feedburner:info uri="gitfr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><item>
      <title>Git 1.8.0 publiée</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/9V8jSlG8QP4/git-1.8.0-publiee</link>
      <pubDate>Sun, 06 Jan 2013 21:43:00 CET</pubDate>
      <category><![CDATA[release]]></category>
      <category><![CDATA[git]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2013/01/06/git-1.8.0-publiee</guid>
      <description>Git 1.8.0 publiée</description>
      <content:encoded><![CDATA[<p><strong>Note</strong> : Git 1.8.0 est sortie le 22 octobre, désolé pour le retard.</p>
<p>Changements intéressants:
 * la configuration upstream d'une branche évolue: --set-upstream est dépréciée,
   et est remplacée par --set-upstream-to=reference.
   Au delà du changement de nom, c'est la syntaxe qui évolue pour être plus simple
   et plus logique.
   En effet, avec --set-upstream, vous deviez taper:</p>
<p><code>git branch --set-upstream my-branch origin/dev</code></p>
<p>--set-upstream est un flag, qui précise que le refspec de base de la branche
   créée est aussi l'upstream. Ce n'est pas évident, et l'on aurait tendance à
   interpréter la commande dans l'autre sens, dans la tradition des commandes Unix.
   Avec la nouvelle syntaxe, on tape:</p>
<p><code>git branch --set-upstream-to=origin/dev my-branch</code></p>
<p>Cette syntaxe est bien plus compréhensible. L'ancienne syntaxe est dépréciée.
   Si vous ne connaissez toujours pas les magies et bienfaits des branches upstream,
   je vous invite à (re)lire
   <a href="http://gitfr.net/blog/2011/12/11/comportement-par-defaut-du-git-push/">ce billet</a>.</p>
<ul>
<li>
<p>git cherry-pick respecte désormais l'ordre des commits tels que passés en arguments.
   Précédemment, il rejouait les commits suivant la chronologie de commit.</p>
</li>
<li>
<p>git blame est désormais plus précis lors des merge : il reconnait les conflits
   résolus comme venant d'un des commits parents plutôt que simplement étant des
   modifications non committées (sha1=0000000)</p>
</li>
</ul>
<p>N'hésitez pas comme d'habitude à commenter ce billet si vous voyez des
changements intéressants.</p>
<h2>Changelog</h2>
<ul>
<li>
<p>A credential helper for Win32 to allow access to the keychain of
   the logged-in user has been added.</p>
</li>
<li>
<p>An initial port to HP NonStop.</p>
</li>
<li>
<p>A credential helper to allow access to the Gnome keyring has been
   added.</p>
</li>
<li>
<p>When "git am" sanitizes the "Subject:" line, we strip the prefix from
   "Re: subject" and also from a less common "re: subject", but left
   the even less common "RE: subject" intact.  Now we strip that too.</p>
</li>
<li>
<p>It was tempting to say "git branch --set-upstream origin/master",
   but that tells Git to arrange the local branch "origin/master" to
   integrate with the currently checked out branch, which is highly
   unlikely what the user meant.  The option is deprecated; use the
   new "--set-upstream-to" (with a short-and-sweet "-u") option
   instead.</p>
</li>
<li>
<p>"git cherry-pick" learned the "--allow-empty-message" option to
   allow it to replay a commit without any log message.</p>
</li>
<li>
<p>After "git cherry-pick -s" gave control back to the user asking
   help to resolve conflicts, concluding "git commit" used to need to
   be run with "-s" if the user wants to sign it off; now the command
   leaves the sign-off line in the log template.</p>
</li>
<li>
<p>"git daemon" learned the "--access-hook" option to allow an
   external command to decline service based on the client address,
   repository path, etc.</p>
</li>
<li>
<p>"git difftool --dir-diff" learned to use symbolic links to prepare
   a temporary copy of the working tree when available.</p>
</li>
<li>
<p>"git grep" learned to use a non-standard pattern type by default if
   a configuration variable tells it to.</p>
</li>
<li>
<p>Accumulated updates to "git gui" has been merged.</p>
</li>
<li>
<p>"git log -g" learned the "--grep-reflog=<pattern>" option to limit
   its output to commits with a reflog message that matches the given
   pattern.</p>
</li>
<li>
<p>"git merge-base" learned the "--is-ancestor A B" option to tell if A is
   an ancestor of B.  The result is indicated by its exit status code.</p>
</li>
<li>
<p>"git mergetool" now allows users to override the actual command used
   with the mergetool.$name.cmd configuration variable even for built-in
   mergetool backends.</p>
</li>
<li>
<p>"git rebase -i" learned the "--edit-todo" option to open an editor
   to edit the instruction sheet.</p>
</li>
<li>
<p>"git svn" has been updated to work with SVN 1.7.</p>
</li>
<li>
<p>"git p4" learned the "--conflicts" option to specify what to do when
   encountering a conflict during "p4 submit".</p>
</li>
<li>
<p>Git ships with a fall-back regexp implementation for platforms with
   buggy regexp library, but it was easy for people to keep using their
   platform regexp by mistake.  A new test has been added to check this.</p>
</li>
<li>
<p>The "check-docs" build target has been updated and greatly
   simplified.</p>
</li>
<li>
<p>The test suite is run under MALLOC_CHECK_ when running with a glibc
   that supports the feature.</p>
</li>
<li>
<p>The documentation in the TeXinfo format was using indented output
   for materials meant to be examples that are better typeset in
   monospace.</p>
</li>
<li>
<p>Compatibility wrapper around some mkdir(2) implementations that
   reject parameters with trailing slash has been introduced.</p>
</li>
<li>
<p>Compatibility wrapper for systems that lack usable setitimer() has
   been added.</p>
</li>
<li>
<p>The option parsing of "git checkout" had error checking, dwim and
   defaulting missing options, all mixed in the code, and issuing an
   appropriate error message with useful context was getting harder.
   The code has been reorganized to allow giving a proper diagnosis
   when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a
   good name for a branch).</p>
</li>
<li>
<p>Many internal uses of a "git merge-base" equivalent were only to see
   if one commit fast-forwards to the other, which did not need the
   full set of merge bases to be computed. They have been updated to
   use less expensive checks.</p>
</li>
<li>
<p>The heuristics to detect and silently convert latin1 to utf8 when
   we were told to use utf-8 in the log message has been transplanted
   from "mailinfo" to "commit" and "commit-tree".</p>
</li>
<li>
<p>Messages given by "git <subcommand> -h" from many subcommands have
   been marked for translation.</p>
</li>
<li>
<p>The attribute system may be asked for a path that itself or its
   leading directories no longer exists in the working tree, and it is
   fine if we cannot open .gitattribute file in such a case.  Failure
   to open per-directory .gitattributes with error status other than
   ENOENT and ENOTDIR should be diagnosed, but it wasn't.</p>
</li>
<li>
<p>When looking for $HOME/.gitconfig etc., it is OK if we cannot read
   them because they do not exist, but we did not diagnose existing
   files that we cannot read.</p>
</li>
<li>
<p>When "git am" is fed an input that has multiple "Content-type: ..."
   header, it did not grok charset= attribute correctly.</p>
</li>
<li>
<p>"git am" mishandled a patch attached as application/octet-stream
   (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not
   honored correctly.</p>
</li>
<li>
<p>"git blame MAKEFILE" run in a history that has "Makefile" but not
   "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
   confused on a case insensitive filesystem and failed to do so.</p>
</li>
<li>
<p>Even during a conflicted merge, "git blame $path" always meant to
   blame uncommitted changes to the "working tree" version; make it
   more useful by showing cleanly merged parts as coming from the other
   branch that is being merged.</p>
</li>
<li>
<p>It was unclear in the documentation for "git blame" that it is
   unnecessary for users to use the "--follow" option.</p>
</li>
<li>
<p>Output from "git branch -v" contains "(no branch)" that could be
   localized, but the code to align it along with the names of
   branches was counting in bytes, not in display columns.</p>
</li>
<li>
<p>"git cherry-pick A C B" used to replay changes in A and then B and
   then C if these three commits had committer timestamps in that
   order, which is not what the user who said "A C B" naturally
   expects.</p>
</li>
<li>
<p>A repository created with "git clone --single" had its fetch
   refspecs set up just like a clone without "--single", leading the
   subsequent "git fetch" to slurp all the other branches, defeating
   the whole point of specifying "only this branch".</p>
</li>
<li>
<p>Documentation talked about "first line of commit log" when it meant
   the title of the commit.  The description was clarified by defining
   how the title is decided and rewording the casual mention of "first
   line" to "title".</p>
</li>
<li>
<p>"git cvsimport" did not thoroughly cleanse tag names that it
   inferred from the names of the tags it obtained from CVS, which
   caused "git tag" to barf and stop the import in the middle.</p>
</li>
<li>
<p>Earlier we made the diffstat summary line that shows the number of
   lines added/deleted localizable, but it was found irritating having
   to see them in various languages on a list whose discussion language
   is English, and this change has been reverted.</p>
</li>
<li>
<p>"git fetch --all", when passed "--no-tags", did not honor the
   "--no-tags" option while fetching from individual remotes (the same
   issue existed with "--tags", but the combination "--all --tags" makes
   much less sense than "--all --no-tags").</p>
</li>
<li>
<p>"git fetch" over http had an old workaround for an unlikely server
   misconfiguration; it turns out that this hurts debuggability of the
   configuration in general, and has been reverted.</p>
</li>
<li>
<p>"git fetch" over http advertised that it supports "deflate", which
   is much less common, and did not advertise the more common "gzip" on
   its Accept-Encoding header.</p>
</li>
<li>
<p>"git fetch" over the dumb-http revision walker could segfault when
   curl's multi interface was used.</p>
</li>
<li>
<p>"git gc --auto" notified the user that auto-packing has triggered
    even under the "--quiet" option.</p>
</li>
<li>
<p>After "gitk" showed the contents of a tag, neither "Reread
   references" nor "Reload" updated what is shown as the
   contents of it when the user overwrote the tag with "git tag -f".</p>
</li>
<li>
<p>"git log --all-match --grep=A --grep=B" ought to show commits that
   mention both A and B, but when these three options are used with
   --author or --committer, it showed commits that mention either A or
   B (or both) instead.</p>
</li>
<li>
<p>The "-Xours" backend option to "git merge -s recursive" was ignored
   for binary files.</p>
</li>
<li>
<p>"git p4", when "--use-client-spec" and "--detect-branches" are used
   together, misdetected branches.</p>
</li>
<li>
<p>"git receive-pack" (the counterpart to "git push") did not give
   progress output while processing objects it received to the puser
   when run over the smart-http protocol.</p>
</li>
<li>
<p>When you misspell the command name you give to the "exec" action in
   the "git rebase -i" instruction sheet you were told that 'rebase' is not a
   git subcommand from "git rebase --continue".</p>
</li>
<li>
<p>The subcommand in "git remote" to remove a defined remote was
   "rm" and the command did not take a fully-spelled "remove".</p>
</li>
<li>
<p>The interactive prompt that "git send-email" gives was error prone. It
   asked "What e-mail address do you want to use?" with the address it
   guessed (correctly) the user would want to use in its prompt,
   tempting the user to say "y". But the response was taken as "No,
   please use 'y' as the e-mail address instead", which is most
   certainly not what the user meant.</p>
</li>
<li>
<p>"git show --format='%ci'" did not give the timestamp correctly for
   commits created without human readable name on the "committer" line.</p>
</li>
<li>
<p>"git show --quiet" ought to be a synonym for "git show -s", but
   wasn't.</p>
</li>
<li>
<p>"git submodule frotz" was not diagnosed as "frotz" being an unknown
   subcommand to "git submodule"; the user instead got a complaint
   that "git submodule status" was run with an unknown path "frotz".</p>
</li>
<li>
<p>"git status" honored the ignore=dirty settings in .gitmodules but
   "git commit" didn't.</p>
</li>
<li>
<p>"gitweb" did not give the correct committer timezone in its feed
   output due to a typo.</p>
</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=9V8jSlG8QP4:WIZqHpwEGks:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=9V8jSlG8QP4:WIZqHpwEGks:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=9V8jSlG8QP4:WIZqHpwEGks:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=9V8jSlG8QP4:WIZqHpwEGks:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/9V8jSlG8QP4" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2013/01/06/git-1.8.0-publiee</feedburner:origLink></item>
    <item>
      <title>Présentation et atelier Git le 24 et 25/11 à Toulouse</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/iIYhowuCW4U/presentation-et-atelier-git-le-24-et-25-a-toulouse</link>
      <pubDate>Fri, 19 Oct 2012 06:37:00 CEST</pubDate>
      <category><![CDATA[atelier]]></category>
      <category><![CDATA[gitfr]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/10/19/presentation-et-atelier-git-le-24-et-25-a-toulouse</guid>
      <description>Présentation et atelier Git le 24 et 25/11 à Toulouse</description>
      <content:encoded><![CDATA[<p>gitfr descend sur Toulouse à l'occasion de l'événement <a href="http://www.capitoledulibre.org/2012/">Le Capitole du
Libre</a> avec non pas une présentation et
un atelier mais <strong>deux</strong> ateliers !</p>
<p>La présentation d'une heure s'appelle «Pourquoi Git ?», destinée aux gens
pressés. Puis le lendemain deux ateliers «Initiation» et «Allez plus loin».</p>
<p>7h de Git au programme, si vous aviez envie de vous y mettre, c'est
l'occasion !</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=iIYhowuCW4U:hR-n0-8HLeg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=iIYhowuCW4U:hR-n0-8HLeg:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=iIYhowuCW4U:hR-n0-8HLeg:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=iIYhowuCW4U:hR-n0-8HLeg:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/iIYhowuCW4U" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/10/19/presentation-et-atelier-git-le-24-et-25-a-toulouse</feedburner:origLink></item>
    <item>
      <title>gitfr recherche un repreneur (ou simplement des bloggeurs)</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/qkeN-M7V8CI/gitfr-recherche-un-repreneur</link>
      <pubDate>Fri, 19 Oct 2012 06:36:00 CEST</pubDate>
      <category><![CDATA[gitfr]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/10/19/gitfr-recherche-un-repreneur</guid>
      <description>gitfr recherche un repreneur (ou simplement des bloggeurs)</description>
      <content:encoded><![CDATA[<p>Lançé début octobre 2010, gitfr avait pour mission de sensibiliser les
informaticiens Français aux DVCS en général, et à Git en particulier.
Et avec bientôt une trentaine de présentations et une dizaine
d'atelier, je pense avoir réussi à transmettre un peu de mes connaissances
et passion autour de ce fabuleux logiciel.</p>
<p>Néanmoins, je n'ai plus autant de temps à consacrer à gitfr, notamment
à cause de mes nouveaux projets et cela se ressens sur le peu de billet
sur ce blog. Alors, si vous êtes partant pour écrire voir reprendre
tout en partie des activités de gitfr, c'est avec plaisir que je transmettrais
le flambeau.</p>
<p>Si cela vous intéresse : seb@gitfr.net.</p>
<p><strong>Note</strong> : le coût est de 15€ / an pour le nom de domaine que je prends à ma
charge, le reste étant hébergé sur GitHub. Le site peut être revue de fond en
comble si besoin.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=qkeN-M7V8CI:UsvmofhDfGE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=qkeN-M7V8CI:UsvmofhDfGE:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=qkeN-M7V8CI:UsvmofhDfGE:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=qkeN-M7V8CI:UsvmofhDfGE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/qkeN-M7V8CI" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/10/19/gitfr-recherche-un-repreneur</feedburner:origLink></item>
    <item>
      <title>Git 1.7.12 publiée</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/RTOw5VZuIXM/git-1.7.12-publiee</link>
      <pubDate>Fri, 24 Aug 2012 02:54:00 CEST</pubDate>
      <category><![CDATA[release]]></category>
      <category><![CDATA[git]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/08/24/git-1.7.12-publiee</guid>
      <description>Git 1.7.12 publiée</description>
      <content:encoded><![CDATA[<p>Quatre changements intéressants dans cette 1.7.12 qui date du 20 août :</p>
<ul>
<li>
<p>Une option <code>--root</code> à rebase pour modifier aussi le commit root.</p>
</li>
<li>
<p>Une option <code>-x</code> à rebase pour éxécuter une commande à chaque
  application d'un patch.</p>
</li>
<li>
<p>On peut visualiser la documentation en HTML avec <code>git help -w $cmd</code></p>
</li>
<li>
<p><code>git status</code> est plus précis quand le dépôt est dans un état
  intermédiaire (lors d'un merge, un rebase, etc).</p>
</li>
</ul>
<p>N'hésitez pas comme d'habitude à commenter ce billet si vous voyez des 
changements intéressants.</p>
<h2>Le changelog</h2>
<ul>
<li>Git can be told to normalize pathnames it read from readdir(3) and
   all arguments it got from the command line into precomposed UTF-8
   (assuming that they come as decomposed UTF-8), in order to work
   around issues on Mac OS.</li>
</ul>
<p>I think there still are other places that need conversion
   (e.g. paths that are read from stdin for some commands), but this
   should be a good first step in the right direction.</p>
<ul>
<li>
<p>Per-user $HOME/.gitconfig file can optionally be stored in
   $HOME/.config/git/config instead, which is in line with XDG.</p>
</li>
<li>
<p>The value of core.attributesfile and core.excludesfile default to
   $HOME/.config/git/attributes and $HOME/.config/git/ignore respectively
   when these files exist.</p>
</li>
<li>
<p>Logic to disambiguate abbreviated object names have been taught to
   take advantage of object types that are expected in the context,
   e.g. XXXXXX in the "git describe" output v1.2.3-gXXXXXX must be a
   commit object, not a blob nor a tree.  This will help us prolong
   the lifetime of abbreviated object names.</p>
</li>
<li>
<p>"git apply" learned to wiggle the base version and perform three-way
   merge when a patch does not exactly apply to the version you have.</p>
</li>
<li>
<p>Scripted Porcelain writers now have access to the credential API via
   the "git credential" plumbing command.</p>
</li>
<li>
<p>"git help" used to always default to "man" format even on platforms
   where "man" viewer is not widely available.</p>
</li>
<li>
<p>"git clone --local $path" started its life as an experiment to
   optionally use link/copy when cloning a repository on the disk, but
   we didn't deprecate it after we made the option a no-op to always
   use the optimization.  The command learned "--no-local" option to
   turn this off, as a more explicit alternative over use of file://
   URL.</p>
</li>
<li>
<p>"git fetch" and friends used to say "remote side hung up
   unexpectedly" when they failed to get response they expect from the
   other side, but one common reason why they don't get expected
   response is that the remote repository does not exist or cannot be
   read. The error message in this case was updated to give better
   hints to the user.</p>
</li>
<li>
<p>"git help -w $cmd" can show HTML version of documentation for
   "git-$cmd" by setting help.htmlpath to somewhere other than the
   default location where the build procedure installs them locally;
   the variable can even point at a http:// URL.</p>
</li>
<li>
<p>"git rebase [-i] --root $tip" can now be used to rewrite all the
   history leading to "$tip" down to the root commit.</p>
</li>
<li>
<p>"git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after
   each commit in the resulting history.</p>
</li>
<li>
<p>"git status" gives finer classification to various states of paths
   in conflicted state and offer advice messages in its output.</p>
</li>
<li>
<p>"git submodule" learned to deal with nested submodule structure
   where a module is contained within a module whose origin is
   specified as a relative URL to its superproject's origin.</p>
</li>
<li>
<p>A rather heavy-ish "git completion" script has been split to create
   a separate "git prompting" script, to help lazy-autoloading of the
   completion part while making prompting part always available.</p>
</li>
<li>
<p>"gitweb" pays attention to various forms of credits that are
   similar to "Signed-off-by:" lines in the commit objects and
   highlights them accordingly.</p>
</li>
<li>
<p>"mediawiki" remote helper (in contrib/) learned to handle file
   attachments.</p>
</li>
<li>
<p>"git p4" now uses "Jobs:" and "p4 move" when appropriate.</p>
</li>
<li>
<p>vcs-svn has been updated to clean-up compilation, lift 32-bit
   limitations, etc.</p>
</li>
<li>
<p>Some tests showed false failures caused by a bug in ecryptofs.</p>
</li>
<li>
<p>We no longer use AsciiDoc7 syntax in our documentation and favor a
   more modern style.</p>
</li>
<li>
<p>"git am --rebasing" codepath was taught to grab authorship, log
   message and the patch text directly out of existing commits.  This
   will help rebasing commits that have confusing "diff" output in
   their log messages.</p>
</li>
<li>
<p>"git index-pack" and "git pack-objects" use streaming API to read
   from the object store to avoid having to hold a large blob object
   in-core while they are doing their thing.</p>
</li>
<li>
<p>Code to match paths with exclude patterns learned to avoid calling
   fnmatch() by comparing fixed leading substring literally when
   possible.</p>
</li>
<li>
<p>"git log -n 1 -- rarely-touched-path" was spending unnecessary
   cycles after showing the first change to find the next one, only to
   discard it.</p>
</li>
<li>
<p>"git svn" got a large-looking code reorganization at the last
   minute before the code freeze.</p>
</li>
<li>
<p>"git submodule add" was confused when the superproject did not have
   its repository in its usual place in the working tree and GIT_DIR
   and GIT_WORK_TREE was used to access it.</p>
</li>
<li>
<p>"git commit --amend" let the user edit the log message and then died
   when the human-readable committer name was given insufficiently by
   getpwent(3).</p>
</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=RTOw5VZuIXM:EuFSuaLsofo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=RTOw5VZuIXM:EuFSuaLsofo:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=RTOw5VZuIXM:EuFSuaLsofo:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=RTOw5VZuIXM:EuFSuaLsofo:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/RTOw5VZuIXM" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/08/24/git-1.7.12-publiee</feedburner:origLink></item>
    <item>
      <title>Retour sur le BreizhCamp 2012</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/BX102CdP4RU/retour-sur-le-breizhcamp-2012</link>
      <pubDate>Sun, 01 Jul 2012 02:54:00 CEST</pubDate>
      <category><![CDATA[gitfr]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/07/01/retour-sur-le-breizhcamp-2012</guid>
      <description>Retour sur le BreizhCamp 2012</description>
      <content:encoded><![CDATA[<p>Les organisateurs du <a href="http://www.breizhcamp.org/">BreihCamp</a> m'ont proposé de
monter un atelier Git de 3 heures le jeudi 14 juin. J'ai fait 2 erreurs :</p>
<ul>
<li>
<p>Ne pas demander explicitivement de voir ma présentation. Moralité
  pratiquement personne ne l'avait vu et donc la plupart avaient
  des lacunes théoriques importantes.</p>
</li>
<li>
<p>Ne pas définir un niveau (débutant, intermédiaire, confirmé),
  j'avais donc des parfaits débutants comme des utilisateurs 
  avec plusiueurs mois d'expérience.</p>
</li>
</ul>
<p>J'ai donc opté pour un atelier avec des gros morceaux de présentation
donnés au fil de l'eau quand cela était nécessaire pour comprendre
les commandes a taper.</p>
<p>Je fais donc le constat suivant :</p>
<ul>
<li>
<p>Je donnerais un atelier si et seulement si j'ai donné une présentation
  juste avant. Non obligatoire mais me permet de ne pas revenir sur la
  théorie (et tant pis pour ceux qui estiment de ne pas en avoir besoin
  mais sont à la ramasse).</p>
</li>
<li>
<p>Fixer un niveau pour l'atelier.</p>
</li>
</ul>
<p>Cela peut donc donner une journée complète de Git (pres + atelier débutant +
atelier intermédiaire). Mais avec plus de 20 présentations et 7 ateliers,
cela ne me fait pas vraiment peur. J'ai d'ailleurs totalement improvisé
cet atelier / pres de 3h :).</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=BX102CdP4RU:rDakV2VwP-0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=BX102CdP4RU:rDakV2VwP-0:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=BX102CdP4RU:rDakV2VwP-0:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=BX102CdP4RU:rDakV2VwP-0:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/BX102CdP4RU" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/07/01/retour-sur-le-breizhcamp-2012</feedburner:origLink></item>
    <item>
      <title>Git 1.7.11 publiée</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/zUkpHKC6psM/git-1.7.11-publiee</link>
      <pubDate>Sun, 01 Jul 2012 02:52:00 CEST</pubDate>
      <category><![CDATA[release]]></category>
      <category><![CDATA[git]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/07/01/git-1.7.11-publiee</guid>
      <description>Git 1.7.11 publiée</description>
      <content:encoded><![CDATA[<p>Deux changements intéressants dans cette 1.7.11 qui date du 18 juin :</p>
<ul>
<li>
<p>Fini la configuration par défaut qui pousse toutes les branches connues
  sur le serveur. C'est maintenant le mode <em>simple</em> qui prend le relais,
  mode qui ne pousse (si et seulement si elle possède un nom identique sur le
  serveur) que le branche courante. C'est une configuration bien plus
  pertinente pour les débutants. Néanmoins je vous préconise <strong>le mode
  upstream</strong> comme dit dans
  <a href="http://gitfr.net/blog/2011/12/11/comportement-par-defaut-du-git-push/">ce billet</a>.</p>
</li>
<li>
<p>Un outil en shell du nom de <em>git-subtree.sh</em> est ajoutée dans la section
  contrib, outil qui simplifie le découpage ou la fusion de dépôt. Cela
  permet par exemple de se dispenser de submodules en intégrant un dépôt
  dans un autre dépôt.</p>
</li>
</ul>
<p>N'hésitez pas comme d'habitude à commenter ce billet si vous voyez des 
changements intéressants.</p>
<h2>Le changelog</h2>
<ul>
<li>
<p>A new mode for push, "simple", which is a cross between "current"
  and "upstream", has been introduced. "git push" without any refspec
  will push the current branch out to the same name at the remote
  repository only when it is set to track the branch with the same
  name over there.  The plan is to make this mode the new default
  value when push.default is not configured.</p>
</li>
<li>
<p>A couple of commands learned the "--column" option to produce
  columnar output.</p>
</li>
<li>
<p>A third-party tool "git subtree" is distributed in contrib/</p>
</li>
<li>
<p>A remote helper that acts as a proxy and caches ssl session for the
  https:// transport is added to the contrib/ area.</p>
</li>
<li>
<p>Error messages given when @{u} is used for a branch without its
  upstream configured have been clarified.</p>
</li>
<li>
<p>Even with the "-q"uiet option, "checkout" used to report setting up
  tracking.  Also "branch" learned the "-q"uiet option to squelch
  informational message.</p>
</li>
<li>
<p>Your build platform may support hardlinks but you may prefer not to
  use them, e.g. when installing to DESTDIR to make a tarball and
  untarring on a filesystem that has poor support for hardlinks.
  There is a Makefile option NO_INSTALL_HARDLINKS for you.</p>
</li>
<li>
<p>The smart-http backend used to always override GIT_COMMITTER_*
  variables with REMOTE_USER and REMOTE_ADDR, but these variables are
  now preserved when set.</p>
</li>
<li>
<p>"git am" learned the "--include" option, which is an opposite of
  existing the "--exclude" option.</p>
</li>
<li>
<p>When "git am -3" needs to fall back to an application of the patch
  to a synthesized preimage followed by a 3-way merge, the paths that
  needed such treatment are now reported to the end user, so that the
  result in them can be eyeballed with extra care.</p>
</li>
<li>
<p>The output from "diff/log --stat" used to always allocate 4 columns
  to show the number of modified lines, but not anymore.</p>
</li>
<li>
<p>"git difftool" learned the "--dir-diff" option to spawn external
  diff tools that can compare two directory hierarchies at a time
  after populating two temporary directories, instead of running an
  instance of the external tool once per a file pair.</p>
</li>
<li>
<p>The "fmt-merge-msg" command learned to list the primary contributors
  involved in the side topic you are merging in a comment in the merge
  commit template.</p>
</li>
<li>
<p>"git rebase" learned to optionally keep commits that do not
  introduce any change in the original history.</p>
</li>
<li>
<p>"git push --recurse-submodules" learned to optionally look into the
  histories of submodules bound to the superproject and push them
  out.</p>
</li>
<li>
<p>A 'snapshot' request to "gitweb" honors If-Modified-Since: header,
  based on the commit date.</p>
</li>
<li>
<p>"gitweb" learned to highlight the patch it outputs even more.</p>
</li>
<li>
<p>"git svn" used to die with unwanted SIGPIPE when talking with an HTTP
  server that uses keep-alive.</p>
</li>
<li>
<p>"git svn" learned to use platform specific authentication
  providers, e.g. gnome-keyring, kwallet, etc.</p>
</li>
<li>
<p>"git p4" has been moved out of the contrib/ area and has seen more
  work on importing labels as tags from (and exporting tags as labels
  to) p4.</p>
</li>
<li>
<p>Bash completion script (in contrib/) have been cleaned up to make
  future work on it simpler.</p>
</li>
<li>
<p>An experimental "version 4" format of the index file has been
  introduced to reduce on-disk footprint and I/O overhead.</p>
</li>
<li>
<p>"git archive" learned to produce its output without reading the
  blob object it writes out in memory in its entirety.</p>
</li>
<li>
<p>"git index-pack" that runs when fetching or pushing objects to
  complete the packfile on the receiving end learned to use multiple
  threads to do its job when available.</p>
</li>
<li>
<p>The code to compute hash values for lines used by the internal diff
  engine was optimized on little-endian machines, using the same
  trick the kernel folks came up with.</p>
</li>
<li>
<p>"git apply" had some memory leaks plugged.</p>
</li>
<li>
<p>Setting up a revision traversal with many starting points was
  inefficient as these were placed in a date-order priority queue
  one-by-one.  Now they are collected in the queue unordered first,
  and sorted immediately before getting used.</p>
</li>
<li>
<p>More lower-level commands learned to use the streaming API to read
  from the object store without keeping everything in core.</p>
</li>
<li>
<p>The weighting parameters to suggestion command name typo have been
  tweaked, so that "git tags" will suggest "tag?" and not "stage?".</p>
</li>
<li>
<p>Because "sh" on the user's PATH may be utterly broken on some
  systems, run-command API now uses SHELL_PATH, not /bin/sh, when
  spawning an external command (not applicable to Windows port).</p>
</li>
<li>
<p>The API to iterate over the refs/ hierarchy has been tweaked to
  allow walking only a subset of it more efficiently.</p>
</li>
<li>
<p>"git submodule init" used to report "registered for path ..."
  even for submodules that were registered earlier.
  (cherry-pick c1c259e jl/submodule-report-new-path-once later to maint).</p>
</li>
<li>
<p>"git diff --stat" used to fully count a binary file with modified
  execution bits whose contents is unmodified, which was not quite
  right.</p>
</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=zUkpHKC6psM:y2g2sB8Mgfs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=zUkpHKC6psM:y2g2sB8Mgfs:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=zUkpHKC6psM:y2g2sB8Mgfs:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=zUkpHKC6psM:y2g2sB8Mgfs:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/zUkpHKC6psM" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/07/01/git-1.7.11-publiee</feedburner:origLink></item>
    <item>
      <title>Git 1.7.10 publiée</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/DjONJDG1gCA/git-1.7.10-publiee</link>
      <pubDate>Sun, 15 Apr 2012 22:52:00 CEST</pubDate>
      <category><![CDATA[release]]></category>
      <category><![CDATA[git]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/04/15/git-1.7.10-publiee</guid>
      <description>Git 1.7.10 publiée</description>
      <content:encoded><![CDATA[<p>Pas mal de petites changements dans cette version 1.7.10 sortie le 10 avril. Je
voulais initialement tester cette version avant de publier l'annonce mais je
n'ai pas eu le cou^H^H^Htemps :(. Mais rapidement de ce qu'ai pu voir :</p>
<ul>
<li>
<p>gitk a pas mal de petites évolutions.</p>
</li>
<li>
<p>Un éditeur s'ouvre lors d'un <code>git-commit</code> pour pousser les gens à expliquer
  les changements.</p>
</li>
<li>
<p>On peut cloner qu'un répertoire.</p>
</li>
</ul>
<p>N'hésitez pas comme d'habitude à commenter ce billet si vous voyez des 
changements intéressants dans votre façon de travailler avec Git.</p>
<h2>Le changelog</h2>
<ul>
<li>
<p>various "gitk" updates.</p>
</li>
<li>
<p>Teams for localizing the messages from the Porcelain layer of
  commands are starting to form, thanks to Jiang Xin who volunteered
  to be the localization coordinator.  Translated messages for
  simplified Chinese, Swedish and Portuguese are available.</p>
</li>
<li>
<p>The configuration mechanism learned an "include" facility; an
  assignment to the include.path pseudo-variable causes the named
  file to be included in-place when Git looks up configuration
  variables.</p>
</li>
<li>
<p>A content filter (clean/smudge) used to be just a way to make the
  recorded contents "more useful", and allowed to fail; a filter can
  now optionally be marked as "required".</p>
</li>
<li>
<p>Options whose names begin with "--no-" (e.g. the "--no-verify"
  option of the "git commit" command) can be negated by omitting
  "no-" from its name, e.g. "git commit --verify".</p>
</li>
<li>
<p>"git am" learned to pass "-b" option to underlying "git mailinfo", so
  that a bracketed string other than "PATCH" at the beginning can be kept.</p>
</li>
<li>
<p>"git clone" learned "--single-branch" option to limit cloning to a
  single branch (surprise!); tags that do not point into the history
  of the branch are not fetched.</p>
</li>
<li>
<p>"git clone" learned to detach the HEAD in the resulting repository
  when the user specifies a tag with "--branch" (e.g., "--branch=v1.0").
  Clone also learned to print the usual "detached HEAD" advice in such
  a case, similar to "git checkout v1.0".</p>
</li>
<li>
<p>When showing a patch while ignoring whitespace changes, the context
  lines are taken from the postimage, in order to make it easier to
  view the output.</p>
</li>
<li>
<p>"git diff --stat" learned to adjust the width of the output on
  wider terminals, and give more columns to pathnames as needed.</p>
</li>
<li>
<p>"diff-highlight" filter (in contrib/) was updated to produce more
  aesthetically pleasing output.</p>
</li>
<li>
<p>"fsck" learned "--no-dangling" option to omit dangling object
  information.</p>
</li>
<li>
<p>"git log -G" and "git log -S" learned to pay attention to the "-i"
  option.  With "-i", "log -G" ignores the case when finding patch
  hunks that introduce or remove a string that matches the given
  pattern.  Similarly with "-i", "log -S" ignores the case when
  finding the commit the given block of text appears or disappears
  from the file.</p>
</li>
<li>
<p>"git merge" in an interactive session learned to spawn the editor
  by default to let the user edit the auto-generated merge message,
  to encourage people to explain their merges better. Legacy scripts
  can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior.
  Both "git merge" and "git pull" can be given --no-edit from the
  command line to accept the auto-generated merge message.</p>
</li>
<li>
<p>The advice message given when the user didn't give enough clue on
  what to merge to "git pull" and "git merge" has been updated to
  be more concise and easier to understand.</p>
</li>
<li>
<p>"git push" learned the "--prune" option, similar to "git fetch".</p>
</li>
<li>
<p>The whole directory that houses a top-level superproject managed by
  "git submodule" can be moved to another place.</p>
</li>
<li>
<p>"git symbolic-ref" learned the "--short" option to abbreviate the
  refname it shows unambiguously.</p>
</li>
<li>
<p>"git tag --list" can be given "--points-at <object>" to limit its
  output to those that point at the given object.</p>
</li>
<li>
<p>"gitweb" allows intermediate entries in the directory hierarchy
  that leads to a project to be clicked, which in turn shows the
  list of projects inside that directory.</p>
</li>
<li>
<p>"gitweb" learned to read various pieces of information for the
  repositories lazily, instead of reading everything that could be
  needed (including the ones that are not necessary for a specific
  task).</p>
</li>
<li>
<p>Project search in "gitweb" shows the substring that matched in the
  project name and description highlighted.</p>
</li>
<li>
<p>HTTP transport learned to authenticate with a proxy if needed.</p>
</li>
<li>
<p>A new script "diffall" is added to contrib/; it drives an
  external tool to perform a directory diff of two Git revisions
  in one go, unlike "difftool" that compares one file at a time.</p>
</li>
<li>
<p>Improved handling of views, labels and branches in "git-p4" (in contrib).</p>
</li>
<li>
<p>"git-p4" (in contrib) suffered from unnecessary merge conflicts when
  p4 expanded the embedded $RCS$-like keywords; it can be now told to
  unexpand them.</p>
</li>
<li>
<p>Some "git-svn" updates.</p>
</li>
<li>
<p>"vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
  support incremental imports.</p>
</li>
<li>
<p>"git difftool/mergetool" learned to drive DeltaWalker.</p>
</li>
<li>
<p>Unnecessary calls to parse_object() "git upload-pack" makes in
  response to "git fetch", have been eliminated, to help performance
  in repositories with excessive number of refs.</p>
</li>
<li>
<p>Recursive call chains in "git index-pack" to deal with long delta
  chains have been flattened, to reduce the stack footprint.</p>
</li>
<li>
<p>Use of add_extra_ref() API is now gone, to make it possible to
  cleanly restructure the overall refs API.</p>
</li>
<li>
<p>The command line parser of "git pack-objects" now uses parse-options
  API.</p>
</li>
<li>
<p>The test suite supports the new "test_pause" helper function.</p>
</li>
<li>
<p>Parallel to the test suite, there is a beginning of performance
  benchmarking framework.</p>
</li>
<li>
<p>t/Makefile is adjusted to prevent newer versions of GNU make from
  running tests in seemingly random order.</p>
</li>
<li>
<p>The code to check if a path points at a file beyond a symbolic link
  has been restructured to be thread-safe.</p>
</li>
<li>
<p>When pruning directories that has become empty during "git prune"
  and "git prune-packed", call closedir() that iterates over a
  directory before rmdir() it.</p>
</li>
<li>
<p>Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work
  with versions of Perl older than 5.8.3.
  (merge 5eb660e ab/perl-i18n later to maint).</p>
</li>
<li>
<p>"git tag -s" honored "gpg.program" configuration variable since
  1.7.9, but "git tag -v" and "git verify-tag" didn't.
  (merge a2c2506 az/verify-tag-use-gpg-config later to maint).</p>
</li>
<li>
<p>"configure" script learned to take "--with-sane-tool-path" from the
  command line to record SANE_TOOL_PATH (used to avoid broken platform
  tools in /usr/bin) in config.mak.autogen.  This may be useful for
  people on Solaris who have saner tools outside /usr/xpg[46]/bin.</p>
</li>
<li>
<p>zsh port of bash completion script needed another workaround.</p>
</li>
<li>
<p>git-gui updated to 0.16.0.</p>
</li>
<li>
<p>git-p4 (in contrib/) updates.</p>
</li>
<li>
<p>Git uses gettext to translate its most common interface messages
  into the user's language if translations are available and the
  locale is appropriately set. Distributors can drop new PO files
  in po/ to add new translations.</p>
</li>
<li>
<p>The code to handle username/password for HTTP transactions used in
  "git push" &amp; "git fetch" learned to talk "credential API" to
  external programs to cache or store them, to allow integration with
  platform native keychain mechanisms.</p>
</li>
<li>
<p>The input prompts in the terminal use our own getpass() replacement
  when possible. HTTP transactions used to ask for the username without
  echoing back what was typed, but with this change you will see it as
  you type.</p>
</li>
<li>
<p>The internals of "revert/cherry-pick" have been tweaked to prepare
  building more generic "sequencer" on top of the implementation that
  drives them.</p>
</li>
<li>
<p>"git rev-parse FETCH_HEAD" after "git fetch" without specifying
  what to fetch from the command line will now show the commit that
  would be merged if the command were "git pull".</p>
</li>
<li>
<p>"git add" learned to stream large files directly into a packfile
  instead of writing them into individual loose object files.</p>
</li>
<li>
<p>"git checkout -B <current branch> <elsewhere>" is a more intuitive
  way to spell "git reset --keep <elsewhere>".</p>
</li>
<li>
<p>"git checkout" and "git merge" learned "--no-overwrite-ignore" option
  to tell Git that untracked and ignored files are not expendable.</p>
</li>
<li>
<p>"git commit --amend" learned "--no-edit" option to say that the
  user is amending the tree being recorded, without updating the
  commit log message.</p>
</li>
<li>
<p>"git commit" and "git reset" re-learned the optimization to prime
  the cache-tree information in the index, which makes it faster to
  write a tree object out after the index entries are updated.</p>
</li>
<li>
<p>"git commit" detects and rejects an attempt to stuff NUL byte in
  the commit log message.</p>
</li>
<li>
<p>"git commit" learned "-S" to GPG-sign the commit; this can be shown
  with the "--show-signature" option to "git log".</p>
</li>
<li>
<p>fsck and prune are relatively lengthy operations that still go
  silent while making the end-user wait. They learned to give progress
  output like other slow operations.</p>
</li>
<li>
<p>The set of built-in function-header patterns for various languages
  knows MATLAB.</p>
</li>
<li>
<p>"git log --format='<format>'" learned new %g[nNeE] specifiers to
  show information from the reflog entries when walking the reflog
  (i.e. with "-g").</p>
</li>
<li>
<p>"git pull" can be used to fetch and merge an annotated/signed tag,
  instead of the tip of a topic branch. The GPG signature from the
  signed tag is recorded in the resulting merge commit for later
  auditing.</p>
</li>
<li>
<p>"git log" learned "--show-signature" option to show the signed tag
  that was merged that is embedded in the merge commit. It also can
  show the signature made on the commit with "git commit -S".</p>
</li>
<li>
<p>"git branch --edit-description" can be used to add descriptive text
  to explain what a topic branch is about.</p>
</li>
<li>
<p>"git fmt-merge-msg" learned to take the branch description into
  account when preparing a merge summary that "git merge" records
  when merging a local branch.</p>
</li>
<li>
<p>"git request-pull" has been updated to convey more information
  useful for integrators to decide if a topic is worth merging and
  what is pulled is indeed what the requestor asked to pull,
  including:</p>
</li>
<li>
<p>the tip of the branch being requested to be merged;</p>
</li>
<li>the branch description describing what the topic is about;</li>
<li>
<p>the contents of the annotated tag, when requesting to pull a tag.</p>
</li>
<li>
<p>"git pull" learned to notice 'pull.rebase' configuration variable,
  which serves as a global fallback for setting 'branch.<name>.rebase'
  configuration variable per branch.</p>
</li>
<li>
<p>"git tag" learned "--cleanup" option to control how the whitespaces
  and empty lines in tag message are cleaned up.</p>
</li>
<li>
<p>"gitweb" learned to show side-by-side diff.</p>
</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=DjONJDG1gCA:zzXsm6DtyD4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=DjONJDG1gCA:zzXsm6DtyD4:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=DjONJDG1gCA:zzXsm6DtyD4:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=DjONJDG1gCA:zzXsm6DtyD4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/DjONJDG1gCA" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/04/15/git-1.7.10-publiee</feedburner:origLink></item>
    <item>
      <title>Présentation Git le 12/04 à Lausanne</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/GTP8QskAlJc/presentation-git-le-12-04-a-lausanne</link>
      <pubDate>Fri, 30 Mar 2012 09:40:00 CEST</pubDate>
      <category><![CDATA[atelier]]></category>
      <category><![CDATA[gitfr]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/03/30/presentation-git-le-12-04-a-lausanne</guid>
      <description>Présentation Git le 12/04 à Lausanne</description>
      <content:encoded><![CDATA[<p>gitfr sort de France pour diffuser la bonne parole en Suisse, et plus
précisemment à Lausanne. C'est organisé par le JUGL, le <em>Java User Group de
Lausanne</em>, et la présentation démarre à 18h30 dans <a href="http://jugl.myxwiki.org/xwiki/bin/view/Main/OCTOLausanne">les locaux
d'Octo</a>.</p>
<p>Toutes les infos sur le site du <a href="http://jugl.myxwiki.org/xwiki/bin/view/Main/WebHome">JUGL</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=GTP8QskAlJc:C_q7JdLM1Y8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=GTP8QskAlJc:C_q7JdLM1Y8:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=GTP8QskAlJc:C_q7JdLM1Y8:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=GTP8QskAlJc:C_q7JdLM1Y8:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/GTP8QskAlJc" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/03/30/presentation-git-le-12-04-a-lausanne</feedburner:origLink></item>
    <item>
      <title>Mise à jour de la présentation Git</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/mZiwV3znlso/mise-a-jour-de-la-presentation-git</link>
      <pubDate>Wed, 01 Feb 2012 00:50:00 CET</pubDate>
      <category><![CDATA[gitfr]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/02/01/mise-a-jour-de-la-presentation-git</guid>
      <description>Mise à jour de la présentation Git</description>
      <content:encoded><![CDATA[<p>Demander à cor et à cri depuis de mois, j'ai mis à jour la présentation 
le <a href="https://github.com/sdouche/showoff-presentation-git">dépôt Git</a> et la
<a href="http://presentation-git.heroku.com/">présentation en ligne</a>. Il y'a malheureusement
des petits soucis d'affichage des images mais un rafraichissement règle en
général le problème.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=mZiwV3znlso:17galBKJLa4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=mZiwV3znlso:17galBKJLa4:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=mZiwV3znlso:17galBKJLa4:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=mZiwV3znlso:17galBKJLa4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/mZiwV3znlso" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/02/01/mise-a-jour-de-la-presentation-git</feedburner:origLink></item>
    <item>
      <title>Présentation Git le 13/02 à Montpellier</title>
      <link>http://feedproxy.google.com/~r/gitfr/~3/weInbttCnGs/presentation-git-le-13-02-a-montpellier</link>
      <pubDate>Wed, 01 Feb 2012 00:30:00 CET</pubDate>
      <category><![CDATA[atelier]]></category>
      <category><![CDATA[gitfr]]></category>
      <guid isPermaLink="false">http://www.gitfr.net/blog/2012/02/01/presentation-git-le-13-02-a-montpellier</guid>
      <description>Présentation Git le 13/02 à Montpellier</description>
      <content:encoded><![CDATA[<p>gitfr ne sera jamais descendu plus bas que ce 13 février puisque c'est la
belle ville de Montpellier qui aura l'honneur d'une présentation Git ;).</p>
<p>C'est le MontpellierJUG qui organise cette soirée à l'université Montpellier
II. Toutes les infos et inscription sur <a href="https://www.eventbrite.com/event/2870566943?nomo=1">cette page</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/gitfr?a=weInbttCnGs:kI242lxYIb0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/gitfr?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=weInbttCnGs:kI242lxYIb0:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/gitfr?i=weInbttCnGs:kI242lxYIb0:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/gitfr?a=weInbttCnGs:kI242lxYIb0:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/gitfr?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/gitfr/~4/weInbttCnGs" height="1" width="1"/>]]></content:encoded>
    <feedburner:origLink>http://www.gitfr.net/blog/2012/02/01/presentation-git-le-13-02-a-montpellier</feedburner:origLink></item>
  </channel>
</rss>
