Stefan, I have some questions/comments about DVC layering.
For me, it seems that DVC layering and xhg layers are cyclic.
e.g.
(defun xhg-dvc-log (arg)
"Shows the changelog in the current Mercurial tree.
ARG is passed as prefix argument"
(call-interactively 'xhg-log))
xhg-dvc-log in xhg-core.el uses xhg-log in xhg.el.
In other word xhg-core.el depends on xhg.el.
I think the relation should be reversed: xhg.el
should depend on xhg-core.el. Am I wrong?
Another thing I don't understand is line
;;; Code:
(require 'xhg)
in dvc-unified.el.
I think ideally dvc*.el should not depend on any concrete
version control systems' code; xhg, xtla, etc.
Am I wrong?
After the questions hitting me, I think at least following three
files are needed for each concrete version concrete system code:
xfoo-core.el: Provides facility for xfoo.el
This can use dvc code if necessary.
xfoo-dvc.el: Registers xfoo to dvc. This provide
(or dvc-xfoo.el) xfoo functions which is required by dvc.
This may require both xfoo-core.el and xfoo.el.
xfoo.el: Rather user interface layer of xfoo.
xfoo uses xfoo-core and dvc.
xfoo.el provides user interfaces not covered by
dvc-unified.
user interfaces covered by dvc-unified may be
implemented xfoo.el. However, xfoo-dvc exports
them to dvc.
Just another thing.
Symbols in xhg-core.el use `xhg' as prefix. The prefix includes `x'.
In other hand, symbols in xtla-core.el use tla as prefix. The prefix
doesn't include `x'. About darcs, my target, which I should use
xdarcs or darcs as perfix? I think I should use xdarcs because
there are some dracs frontends for emacs. xdracs is good for avoiding
symbol name conflicts. Do you think tla- is special case?
Masatake YAMATO