<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Git on bartman&#39;s blog</title>
    <link>http://www.jukie.net/~bart/tags/git/</link>
    <description>Recent content in Git on bartman&#39;s blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 16 Dec 2025 17:14:36 -0500</lastBuildDate>
    <atom:link href="http://www.jukie.net/~bart/tags/git/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>git-wip C&#43;&#43; rewrite — over a decade later</title>
      <link>http://www.jukie.net/~bart/blog/git-wip-cpp-rewrite/</link>
      <pubDate>Tue, 16 Dec 2025 17:14:36 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-wip-cpp-rewrite/</guid>
      <description>&lt;p&gt;Many many years ago I wrote about &lt;a href=&#34;http://www.jukie.net/bart/blog/save-everything-with-git-wip&#34;&gt;git-wip&lt;/a&gt;, a tool I created to automatically snapshot your working tree on every file save.  The original was a bash script, written over a few weekends in 2009.  It served me well for over a decade, but it had accumulated technical debt: the bash script had issues with whitespace in filenames, it used external tools like &lt;code&gt;git-sh-setup&lt;/code&gt;, it was getting harder to extend, slow on large repos, and so on.&lt;/p&gt;&#xA;&lt;p&gt;A decade and a half of GitHub issues had piled up.  Some were feature requests.  Others were bugs.  Many were just things that didn&amp;rsquo;t work on platforms that weren&amp;rsquo;t my own.  I had ignored most of them — the script was good enough for me, and I didn&amp;rsquo;t really have to pull to work on it in my free time.  Sorry.&lt;/p&gt;&#xA;&lt;p&gt;That changed recently.&lt;/p&gt;</description>
    </item>
    <item>
      <title>new git learnings</title>
      <link>http://www.jukie.net/~bart/blog/new-git-learnings/</link>
      <pubDate>Wed, 14 Feb 2024 13:21:02 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/new-git-learnings/</guid>
      <description>&lt;p&gt;watching the founder of github talk about git.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=aolI_Rz0ZqY&#34;&gt;https://www.youtube.com/watch?v=aolI_Rz0ZqY&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;here is what I learned:&lt;/p&gt;</description>
    </item>
    <item>
      <title>git 1.7.2 is out</title>
      <link>http://www.jukie.net/~bart/blog/git-1.7.2-is-out/</link>
      <pubDate>Fri, 23 Jul 2010 13:45:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-1.7.2-is-out/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://gitlog.wordpress.com/2010/07/22/git-1-7-2/&#34;&gt;Just announced&lt;/a&gt; is release of &lt;a href=&#34;http://git.kernel.org/?p=git/git.git;a=tag;h=refs/tags/v1.7.2&#34;&gt;Git version 1.7.2&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Scanning through the &lt;a href=&#34;http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/RelNotes-1.7.2.txt;h=15cf01178c1f653230c8f718ef7024b147ecacf9;hb=64fdc08dac6694d1e754580e7acb82dfa4988bb9&#34;&gt;ReleaseNotes&lt;/a&gt; the following look interesting:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;git -c var=val&lt;/code&gt; will override config&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git show :/pattern&lt;/code&gt; now uses regex&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git&lt;/code&gt; no longer squelches if it doesn&amp;rsquo;t find .git (useful when using in PS1)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git checkout --orphan name&lt;/code&gt; makes a new root branch (no parent)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git cherry-pick&lt;/code&gt; can now be given a list of refs&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;git log --decorate&lt;/code&gt; learned to colour more things&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>serving http content out of a git repo</title>
      <link>http://www.jukie.net/~bart/blog/http-out-of-git/</link>
      <pubDate>Sat, 27 Feb 2010 09:34:35 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/http-out-of-git/</guid>
      <description>&lt;p&gt;While preparing for my [Git]{tag/git} Workshop for &lt;a href=&#34;http://flourishconf.com/&#34;&gt;Flourish Conf&lt;/a&gt;,&#xA;I thought about serving files over http directly out of a git repo.&lt;/p&gt;&#xA;&lt;p&gt;Here is a short shell script that I came up with: &lt;a href=&#34;http://git.jukie.net/snippets.git/tree/git-serv-sh/git-serv.cgi&#34;&gt;git-serv.cgi&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It takes request URLs like &lt;code&gt;http://domain/examples/dir/file&lt;/code&gt; and looks up the&#xA;objects in a bare git repository in &lt;code&gt;/home/git/examples.git&lt;/code&gt;.  It looks only on&#xA;the &lt;em&gt;master&lt;/em&gt; branch, and nothing is ever checked out.  If it finds a &lt;em&gt;tree&lt;/em&gt;&#xA;object, it prints the file listing at that point in the tree.  If the object is&#xA;a &lt;em&gt;blog&lt;/em&gt;, it dumps the contents.  Otherwise some error is reported.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pimped out zsh prompt</title>
      <link>http://www.jukie.net/~bart/blog/pimping-out-zsh-prompt/</link>
      <pubDate>Thu, 25 Feb 2010 10:40:49 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/pimping-out-zsh-prompt/</guid>
      <description>&lt;p&gt;Here is [yet another]{zsh-git-prompt} update to the series.  I&amp;rsquo;ve updated my git prompt again,&#xA;now using the &lt;em&gt;zsh 4.3.7&lt;/em&gt; built in &lt;code&gt;vcs_info&lt;/code&gt; module.  This time the motivation came&#xA;from &lt;a href=&#34;http://kriener.org/articles/2009/06/04/zsh-prompt-magic&#34;&gt;Zsh Prompt Magic&lt;/a&gt; article.&#xA;Here is what it looks like now:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://www.jukie.net/~bart/screenshots/zsh-git-prompt2.png&#34; alt=&#34;zsh git prompt&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Everything is now self contained in one file: &lt;a href=&#34;http://www.jukie.net/~bart/conf/zsh/rc/S60_prompt&#34;&gt;S60_prompt&lt;/a&gt;.  Grab it and source&#xA;it into your zsh config.&lt;/p&gt;&#xA;&lt;p&gt;The features are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;name of current branch,&lt;/li&gt;&#xA;&lt;li&gt;git repo state (&lt;code&gt;rebase&lt;/code&gt;, &lt;code&gt;am&lt;/code&gt;, &lt;code&gt;bisect&lt;/code&gt;, &lt;code&gt;merge&lt;/code&gt;, etc),&lt;/li&gt;&#xA;&lt;li&gt;markers indicating staged/unstaged changes,&#xA;&lt;ul&gt;&#xA;&lt;li&gt;little &lt;code&gt;1&lt;/code&gt; after branch name indicates dirty working tree,&lt;/li&gt;&#xA;&lt;li&gt;little &lt;code&gt;2&lt;/code&gt; after branch name indicates staged changes,&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;highlight depth decended into the repository on the right,&lt;/li&gt;&#xA;&lt;li&gt;show failure of commands via prompt background change,&lt;/li&gt;&#xA;&lt;li&gt;show command/insert mode when using vi mode (&lt;code&gt;set -o vi&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>using WIP branches to save every edit</title>
      <link>http://www.jukie.net/~bart/blog/save-everything-with-git-wip/</link>
      <pubDate>Wed, 04 Nov 2009 19:53:44 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/save-everything-with-git-wip/</guid>
      <description>&lt;p&gt;I am experimenting with a new workflow to help solve the problem of lost work&#xA;between commits.  As described [in my previous post]{20091104194146}, there&#xA;are already several ways to deal with keeping track of frequent edits.  The&#xA;only problem is that they all involve dedication and extra effort.&lt;/p&gt;</description>
    </item>
    <item>
      <title>using git workflows to avoid loosing intermediate changes</title>
      <link>http://www.jukie.net/~bart/blog/using-git-workflows-to-avoid-loosing-intermediate-changes/</link>
      <pubDate>Wed, 04 Nov 2009 19:41:46 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/using-git-workflows-to-avoid-loosing-intermediate-changes/</guid>
      <description>&lt;p&gt;A few days ago a buddy, &lt;a href=&#34;http://geemoo.ca/&#34;&gt;Jean&lt;/a&gt;, had stumbled into a problem caused by&#xA;infrequent committing to his git repository.  Committing after the feature is implemented&#xA;is common when working with tools like SVN&amp;hellip; but we have multiple workflows available&#xA;to us under git to manage frequent commits.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pimping out git log</title>
      <link>http://www.jukie.net/~bart/blog/pimping-out-git-log/</link>
      <pubDate>Wed, 07 Oct 2009 23:50:46 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/pimping-out-git-log/</guid>
      <description>&lt;p&gt;I got playing with &lt;code&gt;git log&lt;/code&gt; and ended up creating this alias:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;[alias]&#xA;    lg = log --graph --pretty=format:&#39;%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset&#39; --abbrev-commit --date=relative&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Which adds a &lt;code&gt;git lg&lt;/code&gt; command that is a prettier version of &lt;code&gt;git log --oneline&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>importing an old project into git</title>
      <link>http://www.jukie.net/~bart/blog/importing-an-old-project-into-git/</link>
      <pubDate>Tue, 14 Jul 2009 09:43:40 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/importing-an-old-project-into-git/</guid>
      <description>&lt;p&gt;I have recently been asked to revive an &lt;a href=&#34;http://www.jukie.net/~bart/elfpgp/&#34;&gt;old project&lt;/a&gt;.  Way back when&#xA;I used to use bk for tracking changes.  But today, I don&amp;rsquo;t even have a working bk tree.&lt;/p&gt;&#xA;&lt;p&gt;Moving the history to git is easiest done by taking the tarballs I&amp;rsquo;ve published and creating a commit per tarball.&lt;/p&gt;&#xA;&lt;p&gt;Below is a simple script that will do just that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why pick Git?</title>
      <link>http://www.jukie.net/~bart/blog/why-pick-git/</link>
      <pubDate>Thu, 02 Jul 2009 11:32:22 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/why-pick-git/</guid>
      <description>&lt;p&gt;Someone on the Git LinkedIn group asked &amp;ldquo;why pick Git?&amp;rdquo;.  I started writing a&#xA;response on LinkedIn but quickly realized I had more to say on the topic than I&amp;rsquo;d&#xA;care to leave behind closed doors of LinkedIn.&lt;/p&gt;&#xA;&lt;p&gt;If you already use Git, none of the stuff I talk about below will surprise you.&#xA;But if this sparks your interest see my &lt;a href=&#34;http://excess.org/article/2008/07/ogre-git-tutorial/&#34;&gt;Git talk&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>bringing git-format-patch to bzr</title>
      <link>http://www.jukie.net/~bart/blog/bringing-git-format-patch-to-bzr/</link>
      <pubDate>Mon, 22 Jun 2009 21:40:23 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/bringing-git-format-patch-to-bzr/</guid>
      <description>&lt;p&gt;It should be of no surprise to readers of this blog that I am a fan of Git.  If you know me, you will&#xA;also know that I am no fan of Bzr.&lt;/p&gt;&#xA;&lt;p&gt;I was working on something today and wanted to export a patch&amp;hellip; you know, like &lt;code&gt;git format-patch&lt;/code&gt; does.&#xA;Well, bzr does not seem to have an equivalent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scott Chacon smacks git around</title>
      <link>http://www.jukie.net/~bart/blog/scott-chacon-smacks-git-around/</link>
      <pubDate>Wed, 10 Jun 2009 20:20:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/scott-chacon-smacks-git-around/</guid>
      <description>&lt;p&gt;I came across &lt;a href=&#34;http://en.oreilly.com/rails2009/public/schedule/detail/7367&#34;&gt;a RailsConf talk&lt;/a&gt; given&#xA;by &lt;a href=&#34;http://jointheconversation.org/&#34;&gt;Scott Chacon&lt;/a&gt; last month.  As previously, his git work is really good.&#xA;His presentation style has also guided my &lt;a href=&#34;http://excess.org/article/2008/07/ogre-git-tutorial/&#34;&gt;Git the basics&lt;/a&gt;&#xA;talk which I gave about a year ago.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, I want to summarize what I learned from Scott&amp;rsquo;s presentation&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-vim hacking</title>
      <link>http://www.jukie.net/~bart/blog/git-vim-hacking/</link>
      <pubDate>Mon, 08 Jun 2009 01:04:05 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-vim-hacking/</guid>
      <description>&lt;p&gt;I did some hacking on &lt;a href=&#34;http://github.com/bartman/git-vim/tree&#34;&gt;my fork&lt;/a&gt; on&#xA;&lt;a href=&#34;http://github.com/motemen/git-vim/tree&#34;&gt;git-vim&lt;/a&gt;.  I am impressed how well&#xA;&lt;a href=&#34;http://www.osnews.com/story/21556/Using_Git_with_Vim&#34;&gt;things work&lt;/a&gt;.&#xA;&lt;em&gt;motemen&lt;/em&gt;, the upstream author, did a really great job setting things up.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been mostly tyoing with command handling and completion this evening.&#xA;I want to make that I could type &lt;code&gt;:git diff ma&amp;lt;tab&amp;gt;&lt;/code&gt; and have it do the&#xA;rigth thing&amp;hellip; it seems to work.&lt;/p&gt;&#xA;&lt;p&gt;Next, I need to integrate my &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1846&#34;&gt;other&lt;/a&gt;&#xA;&lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=2185&#34;&gt;git&lt;/a&gt; &lt;a href=&#34;http://www.jukie.net/~bart/conf/vim/plugin/&#34;&gt;hacks&lt;/a&gt;&#xA;and also &lt;a href=&#34;http://consttype.org/cgi/gitweb.cgi?p=githistorybrowser.git;a=summary&#34;&gt;others&lt;/a&gt; that seem interesting.&#xA;I should also see if I can get the upstream author to consider including any of it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>splitting files out of a commit</title>
      <link>http://www.jukie.net/~bart/blog/splitting-files-out-of-a-commit/</link>
      <pubDate>Fri, 01 May 2009 17:26:45 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/splitting-files-out-of-a-commit/</guid>
      <description>&lt;p&gt;I previously wrote on [splitting patches with git]{20081112150409}.  This is very similar&#xA;but deals with removing a file from a commit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>how old are these files in git?</title>
      <link>http://www.jukie.net/~bart/blog/git-file-blame/</link>
      <pubDate>Wed, 01 Apr 2009 11:20:30 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-file-blame/</guid>
      <description>&lt;p&gt;A freind asked me how he could check the age of a file in his git repository.  I came up with this:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    % git ls-files | xargs -n1 -i{} git log -1 --pretty=format:&amp;quot;%ci {}&amp;quot; -- {}&#xA;    2007-04-11 11:39:31 -0400 .gitignore&#xA;    2008-10-18 10:52:27 -0400 Xdefaults&#xA;    ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;It walks through all the files tracked by git and prints the time stamp of the last commit that&#xA;modified that file.&lt;/p&gt;&#xA;&lt;p&gt;Git rocks!&lt;/p&gt;</description>
    </item>
    <item>
      <title>splitting patches with git</title>
      <link>http://www.jukie.net/~bart/blog/splitting-patches-with-git/</link>
      <pubDate>Wed, 12 Nov 2008 15:04:09 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/splitting-patches-with-git/</guid>
      <description>&lt;p&gt;Here is a really cool workflow using git&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Say you have several commits (you can think of them as patches for this exercise) in your current repository and want to split one into multiple parts.&#xA;There could be various reaons like upstream request, only want to release part of it, remove debug code, etc.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, there is one commit in your &lt;strong&gt;unpublished&lt;/strong&gt; history that needs to be split.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-svn strangeness</title>
      <link>http://www.jukie.net/~bart/blog/git-svn-strangeness/</link>
      <pubDate>Tue, 16 Sep 2008 15:51:13 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-svn-strangeness/</guid>
      <description>&lt;p&gt;As awesome as &lt;code&gt;git-svn&lt;/code&gt; is, I had it fail today with this message:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    Last fetched revision of refs/remotes/branches/foo was r19307, but we are about to fetch: r19307!&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;To which I said: &amp;ldquo;WTF?&amp;rdquo;.  I still don&amp;rsquo;t know what it means, but I can share with you how I recovered it.&lt;/p&gt;&#xA;&lt;p&gt;It turns out that git-svn is quite capable of recovering from this.  You just have to remove its meta-data&#xA;for the offending branch, and resync with SVN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>installing git man pages quickly</title>
      <link>http://www.jukie.net/~bart/blog/git-man-install/</link>
      <pubDate>Mon, 15 Sep 2008 11:29:59 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-man-install/</guid>
      <description>&lt;p&gt;I just upgraded git to get a fix &lt;a href=&#34;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3546&#34;&gt;for a diff buffer overflow&lt;/a&gt;.&#xA;I built the git binaries, but this box is too slow to rebuild the man pages.&lt;/p&gt;&#xA;&lt;p&gt;Fortunately those are already prebuilt in a separate branch.  One way to install them without rebuilding them locally is to:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    # in a clone of git://git.kernel.org/pub/scm/git/git.git&#xA;    &#xA;    git archive --format=tar origin/man | sudo tar -x -C /usr/share/man/ -vf -&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&amp;hellip; with which I don&amp;rsquo;t have to rebuild man pages locally.  Git rocks!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Screencast</title>
      <link>http://www.jukie.net/~bart/blog/ogre-git-screencast/</link>
      <pubDate>Sun, 13 Jul 2008 19:47:04 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ogre-git-screencast/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://excess.org&#34;&gt;Ian Ward&lt;/a&gt; posted a &lt;a href=&#34;http://excess.org/article/2008/07/ogre-git-tutorial/&#34;&gt;screencast&lt;/a&gt; of my&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/blog/ogre-git-intro&#34;&gt;Git intro talk&lt;/a&gt;.  Thanks &lt;a href=&#34;tricolour.net/&#34;&gt;Richard&lt;/a&gt; for doing&#xA;the audio, Ian for doing the screencast and post production, and &lt;a href=&#34;http://infonium.ca/&#34;&gt;Jay&lt;/a&gt; for hosting us.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; Richard took &lt;a href=&#34;http://tricolour.net/photos/2008/07/09/oclug.html&#34;&gt;some photos of the OGRE meeting&lt;/a&gt;.  Thanks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing the Ottawa Ruby folks to Git</title>
      <link>http://www.jukie.net/~bart/blog/ogre-git-intro/</link>
      <pubDate>Wed, 02 Jul 2008 11:36:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/ogre-git-intro/</guid>
      <description>&lt;p&gt;I am giving [another]{into-to-git-talk-2} git talk for &lt;a href=&#34;http://groups.google.ca/group/ogre-list/browse_thread/thread/19e76fec11053b92&#34;&gt;The Ottawa Group of Ruby Enthusiasts!&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The talk is on July 9th at 7:00 PM, at &lt;a href=&#34;http://infonium.ca/&#34;&gt;Infonium&lt;/a&gt;.&#xA;I was told that they have room for 20 people.&lt;/p&gt;&#xA;&lt;p&gt;I will post my slides after the talk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>show more git info on zsh prompt</title>
      <link>http://www.jukie.net/~bart/blog/zsh-git-prompt/</link>
      <pubDate>Fri, 09 May 2008 11:15:34 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-git-prompt/</guid>
      <description>&lt;p&gt;UPDATE: This post was [updated]{pimping-out-zsh-prompt} (yet again).&lt;/p&gt;&#xA;&lt;p&gt;This is my [third]{zsh-git-branch} [post]{zsh-git-branch2} on the topic.  I have &lt;em&gt;harshly&lt;/em&gt; assimulated&#xA;&lt;a href=&#34;http://blog.madism.org/index.php/2008/05/07/173-git-prompt&#34;&gt;MadCoder&amp;rsquo;s&lt;/a&gt;&#xA;&lt;a href=&#34;http://madism.org/~madcoder/dotfiles/zsh/60_prompt&#34;&gt;configuration&lt;/a&gt;.  Here is my new zsh prompt:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;http://www.jukie.net/~bart/screenshots/zsh-git-prompt.png&#34; alt=&#34;zsh git prompt&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; I&amp;rsquo;ve [updated my prompt again]{pimping-out-zsh-prompt}.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-vim</title>
      <link>http://www.jukie.net/~bart/blog/git-vim/</link>
      <pubDate>Wed, 30 Apr 2008 10:42:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-vim/</guid>
      <description>&lt;p&gt;I have had an item on my todo list to improve my [vim/git]{tag/vimgit} integration for a while.  Today,&#xA;I found &lt;a href=&#34;http://github.com/motemen/git-vim/tree/master&#34;&gt;git-vim&lt;/a&gt; on github.  I was really&#xA;impressed.  So I forked it and hope to do some work on the project&amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git://git.jukie.net/git-vim.git&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;First I will have to check if there is anything salvageable from &lt;a href=&#34;http://www.vim.org/account/profile.php?user_id=1186&#34;&gt;my current vim scripts&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>color your word</title>
      <link>http://www.jukie.net/~bart/blog/color-your-word/</link>
      <pubDate>Sat, 12 Apr 2008 10:03:37 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/color-your-word/</guid>
      <description>&lt;p&gt;I just discovered a [git]{tag/git} feature that has eluded me since v1.4.3, when it was&#xA;introduced.  It&amp;rsquo;s a way to colour differing words in &lt;code&gt;git diff&lt;/code&gt; output.  Maybe you don&amp;rsquo;t&#xA;know about it either&amp;hellip; allow me demonstrate:&lt;/p&gt;</description>
    </item>
    <item>
      <title>show current git branch on zsh prompt (2)</title>
      <link>http://www.jukie.net/~bart/blog/zsh-git-branch2/</link>
      <pubDate>Fri, 04 Apr 2008 10:56:20 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-git-branch2/</guid>
      <description>&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This post has been [updated]{zsh-git-prompt} (again).&lt;/p&gt;&#xA;&lt;p&gt;I previously wrote about [showing the git branch name on the  zsh prompt]{zsh-git-branch}.  Caio Marcelo pointed out that&#xA;it didn&amp;rsquo;t work very well because the git branch was being queried before the command was executed, and it should&#xA;be after to catch git commands that change the branch, like &lt;code&gt;git branch&lt;/code&gt; and &lt;code&gt;git checkout&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;He was right, here is a repost.&lt;/p&gt;</description>
    </item>
    <item>
      <title>how to track multiple svn branches in git</title>
      <link>http://www.jukie.net/~bart/blog/svn-branches-in-git/</link>
      <pubDate>Mon, 03 Mar 2008 20:03:59 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/svn-branches-in-git/</guid>
      <description>&lt;p&gt;I must say that I am no fan of [SVN]{tag/svn}, but SVN and I get a long a lot better since I started&#xA;using &lt;a href=&#34;&#34;&gt;git-svn&lt;/a&gt;.  Long ago a good friend of mine, Dave O&amp;rsquo;Neill, taught me how to handle&#xA;&lt;a href=&#34;http://www.dmo.ca/blog/20070608113513&#34;&gt;multiple branches using git-svn&lt;/a&gt;.  I had used that&#xA;technique until Dave taught me how to do it better.&lt;/p&gt;&#xA;&lt;p&gt;Recently I saw this &lt;a href=&#34;http://blog.teksol.info/2008/2/29/how-to-handle-multiple-branches-from-subversion-using-git&#34;&gt;blog post&lt;/a&gt;&#xA;which referenced Dave&amp;rsquo;s article talking about the first method.  I guess Dave never got around to&#xA;updating his blog with the &lt;em&gt;better way&lt;/em&gt;.  So I am going to do that here:&lt;/p&gt;</description>
    </item>
    <item>
      <title>show current git branch in zsh</title>
      <link>http://www.jukie.net/~bart/blog/zsh-git-branch/</link>
      <pubDate>Wed, 19 Dec 2007 22:13:58 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/zsh-git-branch/</guid>
      <description>&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: This post has been [updated]{zsh-git-branch2}.&lt;/p&gt;&#xA;&lt;p&gt;Earlier today I saw a blog post titled &amp;ldquo;&lt;a href=&#34;http://acts.as.streeteasy.com/archives/2007/12/19/git_in_your_prompt/&#34;&gt;Git in your prompt&lt;/a&gt;&amp;rdquo;&#xA;which showed how to get the current git branch to display in zsh and bash.  I tried it on my setup and found it really slow, probably due&#xA;having &lt;code&gt;$HOME&lt;/code&gt; on NFS or having big git repos or maybe not enough ram.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, after looking at some zsh docs &lt;a href=&#34;http://xanana.ucsc.edu/~wgscott/wordpress_new/wordpress/?p=12&#34;&gt;and blog posts&lt;/a&gt;, I had&#xA;added caching to the idea.  Now the git-branch is only queried on a directory change or on a command that matches &lt;code&gt;*git*&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-rebase --interactive</title>
      <link>http://www.jukie.net/~bart/blog/git-rebase-interactive/</link>
      <pubDate>Sun, 09 Sep 2007 20:41:25 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-rebase-interactive/</guid>
      <description>&lt;p&gt;MadCoder wrote today about &lt;a href=&#34;http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive-?cos=1&#34;&gt;git-rebase &amp;ndash;interactive&lt;/a&gt;&#xA;which is a new feature in git that allows you to easily reorder, or fix patches already applied to the&#xA;current branch by editing a file&amp;hellip; very neat.&lt;/p&gt;</description>
    </item>
    <item>
      <title>svn status like output in git</title>
      <link>http://www.jukie.net/~bart/blog/parsing-git-status/</link>
      <pubDate>Fri, 31 Aug 2007 14:26:46 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/parsing-git-status/</guid>
      <description>&lt;p&gt;Today &lt;a href=&#34;http://www.dmo.ca/blog&#34;&gt;Dave&lt;/a&gt; asked me how to get a script-friendly list of untracked files,&#xA;and modified files&amp;hellip; like &lt;code&gt;svn status&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;First I suggested that he look at &lt;code&gt;--diff-filter&lt;/code&gt; and &lt;code&gt;--name-status&lt;/code&gt; options for &lt;code&gt;git-diff&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git diff --name-status --diff-filter=M&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;While &lt;code&gt;git-diff&lt;/code&gt; can actually report a lot of cool stuff (see the &lt;code&gt;git-diff-files&lt;/code&gt; man page for&#xA;more details), it did not solve all the problems.  The above worked for getting the list of&#xA;modified files, but not for untracked files.  We scratched our heads and were unable to get anywhere.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Cheat Sheet</title>
      <link>http://www.jukie.net/~bart/blog/git-cheat-sheet/</link>
      <pubDate>Wed, 29 Aug 2007 14:18:47 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-cheat-sheet/</guid>
      <description>&lt;p&gt;Zack Rusin &amp;ldquo;&lt;a href=&#34;http://article.gmane.org/gmane.comp.version-control.git/56904&#34;&gt;took a break from being insanely handsome&lt;/a&gt;&amp;rdquo;&#xA;and created a stunning &lt;a href=&#34;http://ktown.kde.org/~zrusin/git/&#34;&gt;Git Cheat Sheet&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;There are three formats:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://ktown.kde.org/~zrusin/git/git-cheat-sheet-medium.png&#34;&gt;medium sized png&lt;/a&gt;,&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://ktown.kde.org/~zrusin/git/git-cheat-sheet-large.png&#34;&gt;large sized png&lt;/a&gt;, and&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://ktown.kde.org/~zrusin/git/git-cheat-sheet.svg&#34;&gt;original svg&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;em&gt;(these are distributed under the &lt;a href=&#34;http://ktown.kde.org/~zrusin/git/license.html&#34;&gt;Creative Commons License&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now I have to figure out how I can print it in colour.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-svnup</title>
      <link>http://www.jukie.net/~bart/blog/git-svnup/</link>
      <pubDate>Tue, 07 Aug 2007 11:25:31 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-svnup/</guid>
      <description>&lt;p&gt;My employer (or client, since I am a &lt;a href=&#34;http://www.jukie.net/~bart/consulting/&#34;&gt;contractor&lt;/a&gt; there) uses [svn]{tag/svn}.  I prefer to&#xA;use [git]{tag/git}.&lt;/p&gt;&#xA;&lt;p&gt;This following git allows me to update all tracked svn branches in my git-svn repository:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git config --get alias.svnup&#xA;    !git-config --get-regexp &#39;svn-remote.*url&#39; | cut -d . -f 2 | xargs -n1 git-svn fetch&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The way to invoke it is to run:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    git svnup&#xA;    git-svn rebase some-remote-snv-branch&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;You need to put that into your &lt;code&gt;~/.gitconfig&lt;/code&gt; like so:&lt;/p&gt;</description>
    </item>
    <item>
      <title>git slides updated</title>
      <link>http://www.jukie.net/~bart/blog/into-to-git-talk-2/</link>
      <pubDate>Wed, 27 Jun 2007 19:19:16 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/into-to-git-talk-2/</guid>
      <description>&lt;p&gt;I recently gave my [git talk]{20070329011735} for a client.  I had about 3.5 hours,&#xA;and found that was quite adequate to relay all the information.  My&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/slides&#34;&gt;slides&lt;/a&gt; are available in&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.pdf&#34;&gt;PDF&lt;/a&gt; and the&#xA;&lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.tgz&#34;&gt;magicpoint source&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-svn with multiple branches</title>
      <link>http://www.jukie.net/~bart/blog/git-svn-with-multiple-branches/</link>
      <pubDate>Mon, 11 Jun 2007 12:58:52 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-svn-with-multiple-branches/</guid>
      <description>&lt;p&gt;Dave recently wrote about &lt;a href=&#34;http://www.dmo.ca/blog/20070608113513&#34;&gt;git-svn with multiple branches&lt;/a&gt;.  Worth a read if you want to use &lt;strong&gt;git&lt;/strong&gt; in a hostile&#xA;&lt;strong&gt;svn&lt;/strong&gt; environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linus on Git at Google</title>
      <link>http://www.jukie.net/~bart/blog/linus-on-git-at-google/</link>
      <pubDate>Thu, 17 May 2007 08:53:21 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/linus-on-git-at-google/</guid>
      <description>&lt;p&gt;YouTube has a good talk by Linus Torvalds on &lt;a href=&#34;http://www.youtube.com/watch?v=4XpnKHJAok8&#34;&gt;why you would want to use git&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I think a few points he sold very well, and a few were very Linus-centric.  It&amp;rsquo;s worth a watch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>gitdiff.vba v2</title>
      <link>http://www.jukie.net/~bart/blog/vimscript-gitdiff-v2/</link>
      <pubDate>Wed, 02 May 2007 21:19:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vimscript-gitdiff-v2/</guid>
      <description>&lt;p&gt;I released version 2 of my &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1846&#34;&gt;gitdiff.vba&lt;/a&gt;&#xA;vim script.&lt;/p&gt;&#xA;&lt;p&gt;It now supports two features:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;:GITDiff [commitish]&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Split the vim window vertically, display the HEAD, or some other changeset, version of the file in the split, then diff them.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;:GITChanges [commitish]&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Highlight lines that were changed since the HEAD or some other changeset.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I also started using the &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1502&#34;&gt;VimBall&lt;/a&gt; script, which is a package format&#xA;for vim scripts.  So to install it, you need to first have the vimball extension.  Further, if you have the&#xA;&lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=642&#34;&gt;GetLatestVimScripts&lt;/a&gt; you can use the &lt;code&gt;:GLVS&lt;/code&gt; commands to&#xA;automatically upgrade your packages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GITDiff vim plugin</title>
      <link>http://www.jukie.net/~bart/blog/vim-gitdiff/</link>
      <pubDate>Fri, 30 Mar 2007 22:10:19 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/vim-gitdiff/</guid>
      <description>&lt;p&gt;Taking a TODO item off my list, I am adding a plugin to vim that splits the current&#xA;window and presents a diff between the current file and any revision of that file in&#xA;the current git repository.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git presentation for OCLUG</title>
      <link>http://www.jukie.net/~bart/blog/intro-to-git-talk/</link>
      <pubDate>Thu, 29 Mar 2007 01:17:35 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/intro-to-git-talk/</guid>
      <description>&lt;p&gt;I am giving a &lt;em&gt;intro to git&lt;/em&gt; tutorial for &lt;a href=&#34;http://oclug.on.ca/&#34;&gt;oclug&lt;/a&gt; tomorrow.&lt;/p&gt;&#xA;&lt;p&gt;Here are the slides in &lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.pdf&#34;&gt;PDF format&lt;/a&gt;.  If&#xA;you are one of the lucky ones and magic point works for you, you can also&#xA;grab &lt;a href=&#34;http://www.jukie.net/~bart/slides/intro-to-git/intro-to-git.tgz&#34;&gt;the source tarball&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>etc snapshots with git</title>
      <link>http://www.jukie.net/~bart/blog/etc-snapshots-with-git/</link>
      <pubDate>Mon, 12 Mar 2007 13:47:06 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/etc-snapshots-with-git/</guid>
      <description>&lt;p&gt;I got this idea from a blog posting a few months back.  I think the guy was using &lt;em&gt;darcs&lt;/em&gt;.  Unfortunately, I&#xA;was unable to find the reference to link to him.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, here is how you can track your &lt;code&gt;/etc&lt;/code&gt; directory with &lt;em&gt;git&lt;/em&gt;, and have &lt;em&gt;apt&lt;/em&gt; update it&#xA;automatically each time a package is installed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git caching for v1.5.x</title>
      <link>http://www.jukie.net/~bart/blog/git-1.5-caching/</link>
      <pubDate>Wed, 21 Feb 2007 04:13:16 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-1.5-caching/</guid>
      <description>&lt;p&gt;I wrote about [git caching]{git-caching} several months back.  The term, &lt;em&gt;git caching&lt;/em&gt;, was something I&#xA;had given a local repository that can be used as a reference for multiple projects.  New features in the&#xA;recently released git 1.5.x requires that I blog again about this great tool.&lt;/p&gt;&#xA;&lt;p&gt;Recap: I am working on a linux patch &amp;ndash; [klips]{tags/openswan} to be specific.  I have more repositories&#xA;then I know what to do with.  Git has this cool feature where it can point to another directory to&#xA;find it&amp;rsquo;s object files, this is called &lt;em&gt;alternate&lt;/em&gt; or &lt;em&gt;reference&lt;/em&gt; repository.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fetching all git branches from remote</title>
      <link>http://www.jukie.net/~bart/blog/fetch-all-git-branches/</link>
      <pubDate>Wed, 01 Nov 2006 00:20:27 -0500</pubDate>
      <guid>http://www.jukie.net/~bart/blog/fetch-all-git-branches/</guid>
      <description>&lt;p&gt;When you clone a new git repository, using a recent git release, by default git&#xA;will create a &lt;code&gt;.git/remotes/origin&lt;/code&gt; with all remote branches.  This file lists&#xA;all remote branches that are to be updated on a fetch.&lt;/p&gt;&#xA;&lt;p&gt;Over time the remote may get more branches, and it may be necessary to update the&#xA;remote branch list.  The way to find out what is available at a remote is to&#xA;call &lt;code&gt;git-ls-remote origin&lt;/code&gt;, then pick out the branches of interest, and add them&#xA;to the &lt;code&gt;.git/remotes/origin&lt;/code&gt; file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>local caching for git repos</title>
      <link>http://www.jukie.net/~bart/blog/git-caching/</link>
      <pubDate>Sat, 28 Oct 2006 11:16:07 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-caching/</guid>
      <description>&lt;p&gt;I try to minimize the amount of data I pull from git repositories.  To do this I have a&#xA;directory on my file server that has a bunch of clones of git (and hg and previously bk)&#xA;repositories.  All of these are exported and mounted on my other machines in &lt;code&gt;/site/scm/&lt;/code&gt;.&#xA;I will refer to this as &lt;em&gt;cache&lt;/em&gt; :)&lt;/p&gt;&#xA;&lt;p&gt;Next, I have a cron job that regularly updates those trees from the their upstream&#xA;counterparts.  All my working copies are cloned from those repositories using the&#xA;&lt;code&gt;--local --shared&lt;/code&gt; mode, or using &lt;code&gt;--reference&lt;/code&gt; if I think I will be committing&#xA;upstream any time soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>automatic version creation with git</title>
      <link>http://www.jukie.net/~bart/blog/auto-git-versioning/</link>
      <pubDate>Fri, 20 Oct 2006 14:54:37 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/auto-git-versioning/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.openswan.org/&#34;&gt;openswan&lt;/a&gt; is going through a process of redefining what their versions numbers will mean&amp;hellip; what&amp;rsquo;s&#xA;stable, what&amp;rsquo;s testing, what&amp;rsquo;s devel, etc.&lt;/p&gt;&#xA;&lt;p&gt;I participated in the discovery of how to do this &lt;em&gt;automagically&lt;/em&gt; from git release tags.  Patrick was so happy with the results&#xA;that the conversation ended with &amp;hellip;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    14:49 &amp;lt;patlap&amp;gt; C&#39;mon bart, blog it :-)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&amp;hellip; and how can I tell the CEO of &lt;a href=&#34;http://www.xelerance.com/&#34;&gt;Xelerance&lt;/a&gt; &amp;ldquo;no&amp;rdquo;  :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-find findings</title>
      <link>http://www.jukie.net/~bart/blog/git-find-findings/</link>
      <pubDate>Fri, 28 Jul 2006 10:55:00 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-find-findings/</guid>
      <description>&lt;p&gt;So I have a simple &lt;a href=&#34;http://gitweb.jukie.net/git-find.git&#34;&gt;git-find&lt;/a&gt; working, and now I want to use&#xA;it to rip out some patches I am interested in.  The repository I am working on has a lot of uninteresting deltas&#xA;in it that I don&amp;rsquo;t care about.  I am actually only interesting in backporting an interface change in one file&#xA;from the &lt;code&gt;klipsng&lt;/code&gt; branch:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    $ git-find klipsng --file linux/net/ipsec/ipsec_sa.c&#xA;    ...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This works as advertised, I get a list of revisions that altered that file.  The current git command line parsing&#xA;does not allow me to do much with this however.&lt;/p&gt;</description>
    </item>
    <item>
      <title>starting on git-find</title>
      <link>http://www.jukie.net/~bart/blog/starting-git-find/</link>
      <pubDate>Thu, 27 Jul 2006 16:29:41 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/starting-git-find/</guid>
      <description>&lt;p&gt;So I am giving myself some time to write a &lt;code&gt;git-find&lt;/code&gt; script that I can use to feed&#xA;commits to another tool, like &lt;code&gt;git-graft&lt;/code&gt; (or &lt;code&gt;git-cherry-pick&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t really know what I am doing yet, so I want to survey what is available in&#xA;&lt;code&gt;git-*&lt;/code&gt; tools and reuse as much of the available features.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git-graft and git-find brainstorm</title>
      <link>http://www.jukie.net/~bart/blog/git-graft-brainstorm/</link>
      <pubDate>Thu, 27 Jul 2006 11:36:32 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-graft-brainstorm/</guid>
      <description>&lt;p&gt;I want to be able to take a bunch of patches that were applied to one &lt;em&gt;semi-related&lt;/em&gt;&#xA;branch and appened them to the current branch, or better yet a new branch of the&#xA;current.  The &lt;em&gt;bunch of patches&lt;/em&gt; will be selected by what they change; I should&#xA;be able to graft all patches that modify some file, or modify some regular expression.&lt;/p&gt;&#xA;&lt;p&gt;Here is what I mean:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; ,-----X---X---X---X--- ... ---             &amp;quot;historical&amp;quot; branch&#xA;o&#xA; `--------------------Y                     &amp;quot;current&amp;quot; branch&#xA;                       \&#xA;                        `---Z---Z---...     &amp;quot;working&amp;quot; branch&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;You start off at &lt;code&gt;current&lt;/code&gt; branch and run something like:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;git-find historical --file some_file.c --or --re &#39;some pattern&#39; \&#xA;| git-graft --new-branch working -&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This will let me take the interesting subset of &lt;code&gt;X&lt;/code&gt; commits and apply them at some&#xA;point &lt;code&gt;Y&lt;/code&gt;.  Should the patches &lt;code&gt;X&lt;/code&gt; cause conflicts with the &lt;code&gt;current&lt;/code&gt; branch, then&#xA;&lt;code&gt;git-graft&lt;/code&gt; needs to let the user resolve those conflicts a patch at a time.  The&#xA;default is to apply onto the &lt;code&gt;current&lt;/code&gt; branch, however if desired it should be&#xA;possible to create the changes on a new, &lt;code&gt;working&lt;/code&gt;, branch.  The result is a new&#xA;set of &lt;code&gt;Z&lt;/code&gt; commits, as shown above.&lt;/p&gt;</description>
    </item>
    <item>
      <title>reverting a git changeset</title>
      <link>http://www.jukie.net/~bart/blog/manual-git-revert/</link>
      <pubDate>Thu, 06 Jul 2006 16:22:56 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/manual-git-revert/</guid>
      <description>&lt;p&gt;I accidentally committed a changeset without a description and wanted to fix it.  As I was pushing enter I&#xA;realized that I didn&amp;rsquo;t want to commit yet.  I have not pushed anywhere &amp;ndash; an important requirement for this kind of revert.&lt;/p&gt;&#xA;&lt;p&gt;I basically want to do a &lt;code&gt;bk fix -c&lt;/code&gt; (if I recall my &lt;em&gt;bk&lt;/em&gt; correctly).&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;code&gt;git revert&lt;/code&gt; pollutes the history, it is not the right thing to do here since the &lt;em&gt;bad&lt;/em&gt; changeset was not pushed.&#xA;But it would be the right thing to do had I pushed my change.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git vs hg</title>
      <link>http://www.jukie.net/~bart/blog/git-vs-hg/</link>
      <pubDate>Wed, 21 Jun 2006 15:14:02 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/git-vs-hg/</guid>
      <description>&lt;p&gt;After working almost exclusively with &lt;a href=&#34;http://git.or.cz/&#34;&gt;git&lt;/a&gt; for a few months, I had to do some work&#xA;on a freebsd kernel.  The freebsd kernel is maintained in &lt;a href=&#34;http://www.selenic.com/mercurial&#34;&gt;mercurial&lt;/a&gt;. I&#xA;noticed right away a few features that I have started to take for granted with git.&lt;/p&gt;</description>
    </item>
    <item>
      <title>learning to love git</title>
      <link>http://www.jukie.net/~bart/blog/learning-to-love-git/</link>
      <pubDate>Thu, 25 May 2006 23:41:48 -0400</pubDate>
      <guid>http://www.jukie.net/~bart/blog/learning-to-love-git/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working for &lt;a href=&#34;http://www.xelerance.com/&#34;&gt;Xelerance&lt;/a&gt;, &lt;a href=&#34;http://www.sandelman.ca/mcr/&#34;&gt;mcr&lt;/a&gt;&amp;rsquo;s company, for a couple of weeks now.  The project I am working on is mostly bringing KLIPS, &lt;a href=&#34;http://www.openswan.org/&#34;&gt;openswan&lt;/a&gt; ipsec kernel module, into the 21st centry.  Since KLIPS is a patch against the &lt;a href=&#34;http://kernel.org/git/&#34;&gt;Linux kernel&lt;/a&gt;, it makes sense to keep it in &lt;a href=&#34;http://git.or.cz/&#34;&gt;git&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
