Projects / Meta-CVS

Meta-CVS

Meta-CVS is version control system created around CVS. It retains most of the features of CVS while adding support for first class directory structure versioning, storage of symbolic links, and versioning of execute permissions and user-defined properties. Meta-CVS greatly simplifies branching and merging by keeping track of what is merged where. It records file types and automatically assigns a CVS keyword expansion mode to newly added files whose suffixes match previously recorded types. Meta-CVS also has an importing feature that automatically figures out renames and moves, making it possible to easily keep up with patches from multiple sources in spite of directory structure changes.

Tags
Licenses
Operating Systems
Implementation

Recent releases

  •  08 Mar 2008 12:34

    Release Notes: Major changes have been made to how Meta-CVS is built. It now adheres to the de-facto configure/make/make install standard. A C compiler is no longer required, only an installation of CLISP (but only glibc and cygwin are supported target platforms, since the program now targets the platform ABI directly rather than through C wrappers). The output of certain commands is now automatically filtered to convert the F-hex names to paths.

    •  12 Mar 2004 22:14

      Release Notes: Symbols have been put into the package. Minor refactoring has been done. The build system has been simplified and made more portable.

      Recent comments

      07 Mar 2008 22:23 kazkylheku

      Re: amazing, hardly any drawbacks


      >

      > % 1. 'mcvs create' doesnot remember the

      > % execute file permission.

      >

      >

      > Eeek, do we have a bug? I will look into

      > that. (I haven't worked on Meta-CVS in

      > quite a while!)

      >

      > The "mcvs grab" command tracks changes

      > in permissions. Another workaround might

      > be to use "mcvs create" in an empty

      > directory to make an empty project. Then

      > use "mcvs grab" to fetch the contents of

      > the tree you want in the repository;

      > "mcvs grab" is normally used to bring

      > snapshots to a branch, but it can be

      > told to grab to the trunk.

      >

      Hmm, this could be a result of the logic that a file is considered executable only if it has both owner and group execute permissions. The EXECUTABLE-P test should be based on just the owner's execute permission. (When Meta-CVS sets the attribute on a file though, it adds it to every permission category where there is already read permission).

      09 Oct 2006 14:05 PeterBorzas

      Re: bug
      % The bug is:
      > When a checkout my project to a freshly
      > installed debian testing system, mcvs
      > tell me "invalid byte" and get
      > only the MCVS directory.

      Sorry for the previous post, I solve this error.
      There was only one locale on the system, en_US.UTF-8.
      I generated en_US.ISO-8859-1 with "dpkg-reconfigure locales" and the error message disappeared.

      But I am interested in converting my MCVS repository into Subversion yet, so if anybody knows it, tell it to me, please.

      Thank you in advance
      Peter

      09 Oct 2006 13:49 PeterBorzas

      bug
      I have used this excellent program for more than one year, but now I came accross a bug.

      I had it earlier too, but then I could solve it.

      The bug is:

      When a checkout my project to a freshly installed debian testing system, mcvs tell me "invalid byte" and get only the MCVS directory.

      A tried setting the LC_ALL, LANG and LANGUAGE environment variables to C and/or en_US, but it could not help.

      To tell the truth,I installed an other debian testing system 2 days ago, and mcvs works fine on that.

      Because mcvs is not developed yet, I will try to switch to subversion, but I am afraid of loosing all my messages.

      Could anybody tell me a way to import my mcvs project into subversion?

      Thank you in advance

      Peter

      31 Mar 2006 23:31 kazkylheku

      Re: amazing, hardly any drawbacks


      > 1. 'mcvs create' doesnot remember the

      > execute file permission.

      Eeek, do we have a bug? I will look into that. (I haven't worked on Meta-CVS in quite a while!)

      The "mcvs grab" command tracks changes in permissions. Another workaround might be to use "mcvs create" in an empty directory to make an empty project. Then use "mcvs grab" to fetch the contents of the tree you want in the repository; "mcvs grab" is normally used to bring snapshots to a branch, but it can be told to grab to the trunk.

      03 Mar 2006 17:26 kazkylheku

      Re: amazing, hardly any drawbacks


      > I forget one thing:

      >

      > You cant use empty dirs.

      >

      > I usually make some dirs (examples:

      > tmp/, output/ ) and theese are filled

      > with files after running the main

      > program. So theese are empty before

      > running the program.

      >

      > I put an empty file into theese dirs,

      > usually named 'nothing'. You can let

      > mcvs remember this directory with this

      > file. (example : mcvs add -R output)

      >

      >

      Hi Peter.

      A little trick for saving empty directories is to populate them with a dummy symbolic link. (Remember, Meta-CVS stores symlinks). It doesn't have to point to anything, it could just point to itself. (Remember, Meta-CVS stores broken symlinks just fine). A symlink is cheaper than a dummy file, because it's just an entry in the MAP.

      Screenshot

      Project Spotlight

      OpenStack4j

      A Fluent OpenStack client API for Java.

      Screenshot

      Project Spotlight

      TurnKey TWiki Appliance

      A TWiki appliance that is easy to use and lightweight.