This repository contains a bunch of scripts that helps me with the development and maintenance. May or may not be useful for other people :-)


  • bisect.rb: a tool to find a minimal set of files causing a problem. Similar to git bisect or hg bisect but usable standalone and even for non-git, non-hg sources.

  • patch-and-check.rb: a simple tool to apply a set of patches and verify patched sources. Handy when transplating changes from one branch to another and SCM is not of much help (such as cross-SCM)

  • stx-pkg-rename.rb: renaming a Smalltalk/X package is sort of a pain. This script makes it a little bit easier.

  • stx-normalize-trace-log.rb a script to normalize a trace output from Smalltalk/X VM so difference in two traces can be easily spotted using text diff tool.

  • hg-archive-revisions.rb: an hg archive wrapper which allows to export multiple revisions at once, in the same way hg export can. Handy for generating complete archives for those who don't like patches :-)

  • hg-xplant.rb: a script to transplant changes from Mercurial repository to other, non-Mercurial working copy (such as CVS checkout).

  • hg-xpull.rb: a script to incrementally pull changes from non-mercurial repository (using a convert extension). Handy when a forest of Mercurial repositories are forked off a non-Mercurial upstream (such as those of Smalltalk/X jv-branch).

  • hg-automerge.rb: a script to automate branch merge. May be used in conjunction with hg-xpull.rb to automatically merge changes in upstream.

  • hgf.rb: a script to execute command on all repositories in a repository forest.

  • cvs-addremove.rb a script to examine CVS working copy, cvs add allnew files and cvs remove all missing files.

  • bee-pkg-set.rb a simple script to set package name in Bee Smalltalk changeset file (.ch)

  • bee.rb a script to run Bee Smalltalk under WINE.

  • bee-config.rb a convenience script to open an editor on Bee Smalltalk config file (used by bee.rb).

  • bee-extract-c-defines.rb simple script to extract #define'd constants from C header files and create Smalltalk statements that fill in pool dictionary.

  • bitbucket-sync.rb a simple script for bi-directional synchronization of BitBucket-hosted repositories with local mirror

  • smb-sync.rb a simple script to synchronize SMB/CIFS share to a local directory.

You can find more details about inside these scripts, or run script with --help. More scripts will come as I polish them :-)


Just clone the repository to some location and add it to the PATH.

However, you may need to install Ruby to run Ruby scripts (those with .rb suffix)