cvs vs. arch/tla

Harald Hoyer harald at redhat.com
Mon Feb 28 06:57:14 PST 2005


Thinking about the process of patch maintainance, I found gnu-arch aka tla.
It has a very non-intuitive command set and naming scheme, if you are used to 
CVS, but it handles repository merging quite well.
I was able with a small shell script to create a repository for each patch in 
our rpm and "replay"/merge all patches in another repository. The resulting 
repo has stored which patchsets have already been merged and can be updated 
very simple. If every patch can be applied seperatly this is a big advantage, 
because we could maintain the patches seperatly and everyone could pick his 
own favourite patchset.

               |-- 01_patch_repo --|
               |                   | "replay"
main_repo --- |-- 02_patch_repo --|--------- merged_repo
               |                   |
               |-- 03_patch_repo --|

With main_repo == cdrtools-2.01 in our case.

Each _repo is its own repository, where you can commit. Which patch_repos you 
use for you merge_repo is up to you. The patches for the conflicts which may 
occure on a "replay"/merge are stored in the merged_repo. merged_repo knows 
what you have merged before and will only "replay"/merge what changed in the 
patch_repos or the main_repo since the last merge.

What do you think? Or should we create a seperate CVS repo for every applied 
patch? Or should every patch be checked in CVS directly and maintained there?



More information about the freedrtools-devel mailing list