return to OCLUG Web Site
A Django site.
July 23, 2010

Michael P. Soulier
msoulier
But I Digress
» I really love *nix

So I’ve recently been playing with Ditz, a ruby-based distributed issue tracker, to go along with my distributed workflow in Git. It’s a good start, but not quite polished yet. I added the issue-claiming plugin, played with it for a while, and then realized that I don’t need it since I’m the only developer on the projects that I want to use it for.

Then I removed the plugin, but it left behind sections in the ditz yaml files that caused it to now spew warnings.

msoulier@egor:...ier/work/mbg-bugs$ ditz todo
warning: unknown field "claimer" in YAML for
tag:ditz.rubyforge.org,2008-03-06:issue; ignoring
warning: unknown field "claimer" in YAML for
tag:ditz.rubyforge.org,2008-03-06:issue; ignoring
warning: unknown field "claimer" in YAML for
tag:ditz.rubyforge.org,2008-03-06:issue; ignoring
warning: unknown field "claimer" in YAML for
tag:ditz.rubyforge.org,2008-03-06:issue; ignoring

Well that’s unacceptable. So now I need to remove this claimer line from each file. Well, this is *nix so I’m not doing it by hand. I could use a perl one-liner but I’m a tad more familiar with ex commands, editing in Vim all day as I do.

So, I make an exscript file containing this:

%g/^claimer:/d
wq

And then run it on the files like so

for file in $(find bugs -name "issue*.yaml")
do
   ex - $file < exscript
done

Presto. Fixed. So happy.


July 1, 2008

Michael P. Soulier
msoulier
But I Digress
» Tftpy on Github

As distributed version control systems work far better for open-source software development, I’ve cloned Tftpy from SourceForge’s Subversion using git-svn, and pushed it to Github.

Check it out here, and feel free to clone it like so:

    git clone git://github.com/msoulier/tftpy.git

» Playing in Git-land

I’ve been playing with distributed version control systems for a while now. First Mercurial, and now Git.

While I don’t find Git nearly as friendly and intuitive as Mercurial, I’m slowly starting to get into it. While a superior interface is often sorely overlooked, with the misguided believe that a more cryptic one must be somehow superior, I am finding that Git contains more potential.

While I am forced to do work on Windows, Git on CygWin works quite well, and there’s always the option of simply using Samba and running Git in a remote Linux box. At least merging works in Git on Windows out of the box, while in Mercurial they don’t even bother to fall back to simple conflict bars when no merge tool is available. Sad.

The basics of push, pull, merge, etc., are pretty much the same, but what I am finding Git fits my style better for is the ability to sync up my unfinished changes to the various places that I work. For some reason very little attention is given to this in version control systems. In Git I can work on a lightweight topic branch, and push that branch so I can pick it up as a remote tracking branch in other repositories where I work. I can keep that topic branch in sync until the work is done, and then merge it to master.

My main alternative in Mercurial for this is a versioned match queue, and pushing the patch queue around as a sub-repository of the main one. Thus far it seems like when you rebase, if your patches don’t apply, you’re expected to fix them manually without any kind of merge support.

I have constant questions, as much of Git is anything but intuitive, but I’m getting there. Interesting journey from CVS to Subversion to Mercurial and now to Git, not to mention the proprietary systems I’ve had to work with, being Nortel’s PLS and MCEPLS, and now Rational Clearcase (God save me from that one). Should be interesting as I learn more. Luckily there are some individuals with plenty of experience in it already to lean on.

May 29, 2008

Michael P. Soulier
msoulier
But I Digress
» Tftpy 0.4.5 available

I just pushed out the latest version of Tftpy, my pure-Python TFTP library. Thanks to some helpful bug reports it now has better support on that other operating system, and some minor bugfixes in general.

I think I’ll have to spend some time doing a proper page for the project, and then integrate in some contributed patches to support uploads, and then add symmetric UDP support so it can work through NAT.