cvs vs. arch/tla
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