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 _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
