[darcs-users] domains: a proposal for composing repositories
Nils Decker
darcs at ndecker.de
Tue Jan 31 21:55:27 UTC 2006
Hello,
i had an idea that is a lot like yours but would require much deeper changes
in darcs, but anyway here it is:
Every patch in a repo has path translation that consists of a prefix that is
removed from every path in the patch and a prefix that is added to every
path. If a file/directory path does not begin with the removed prefix it is
silently ignored. The translation is local to the repo that contains the
patch.
A patch that depends on another patch inherits this translation. A patch can
not depend on patches with different translations. Tags might be allowed to
depend on any patch.
A new repo begins with with a patch that creates the root of the repo. When
this patch is pulled into another repo with a translation it becomes the
adddir for the path it is pulled to.
When pulling a patch that has no dependencies the translation can be
specified.
This allows "mounting" any part of a repo anywhere into another repo while
allowing patches to flow in any direction.
Mockup:
# repo with some files
darcs pull ../darcs --remove-prefix manual --add-prefix darcs-manual
# now there is a new directory "darcs-manual" with the files of the darcs
# "manual" directory
darcs add darcs-manual/newfile
darcs add otherfile
darcs record
# the record can not record both files into one patch because one depends on
# the adddir "manual" translated to "darcs-manual" and the other on the adddir
# of the repo root that has a different translation (none).
darcs apply < some patch to darcs
# because the patch depends on the darcs root patch it inherits the
# translation
Nils
More information about the darcs-users
mailing list