Incorporate Simple 3-way Merge in Main-line Vesta Release

We already have a usable 3-way merge tool. It's build on top of the 3-way merge command-line tool that's packaged with RCS. While it's far from perfect, it gives Vesta merging capability similar with CVS or Subversion.

The trouble is, this merge tool is a Perl script written using the SWIG interface to the Vesta APIs. In order to make it useful for the general public, we need to do one of two things:

  1. Package the SWIG interfaces for installation like the rest of Vesta (in .rpm/.deb form) and gnerally figure out how to make them work in more environments with more different versions of the scripting languages they target.
  2. Re-write the vmerge tool in C++.

Option #1 is defintiely better, as it will have other benefits (like making it possible to write other scripts using the SWIG interfaces, such as an improved vestaweb. However, it might be a bit more complicated. It might be best to facilitate building the SWIG itnerface outside of Vesta (rather than making many more std_envs for different versions of different Linux distributions and other operating systems). This might mean package the Vesta libraries and their headers for use outside Vesta. This could also tie in with using autoconf to build Vesta outside Vesta.

On the other hand, making a Perl script part of the Vesta core adds a dependence on an external piece of software. Re-writing vmerge in C++ might make it simpler to support more operating systems. Of course to really make it portable we shouldn't be calling out to the merge(1) command that comes with RCS to do the work. (I have several times heard other revision control authors mention eliminating dependencies on external programs as common as diff(1).)

Fix Bugs and Add Features Related to Merging

There's a lot of little issues related to merging which we need to deal with:

@@@ Add more stuff here

Improve Basic 3-way Merge Capability

There are several things which we could do with 3-way merge that the current one doesn't:

@@@ Add more stuff here