Masatake YAMATO <[EMAIL PROTECTED]> writes:

> However, I have some comments about DVC.
> Just comments.

Thanks, we need comments more than code in the current development
phase IMHO.

> 0. Baz support
>
> I've found some problems in baz support of xtla-12.
> In other hand, Matthieu or someone will fix a baz related bug in
> dvc tree. What we should do? My proposal is that
>
> A. I will maintain xtla-12 main tree,
> B. Other developers put "baz-dvc" in keyword of ++log when fixing a bug 
>    about baz in dvc tree. I will merge the change to my xtla-12 main tree.
> C. When fixing a bug about baz in xtla-12 tree, I will merge the fix to
>    MY dvc tree with keyword baz-12. Matthieu, dvc main tree maintainer will
>    merge the fix to the main tree.

If you remove bzr-*.el and xhg-*.el from the DVC tree, you should get
only a better structured Xtla. So, let's say that Xtla 1.3 is DVC
without the other files. Then, you're in the common situation of
maintaining a stable branch in parallel with a development branch. The
only real problem is that many code moving and renaming prevent
automatic merging in a part of the code. That's why I think we should
concentrate the efforts on DVC, and release Xtla 1.2 as soon as
possible (this doesn't prevent us from fixing bugs in 1.2.x, but it's
a symbolic and relatively strong way to say that no more feature will
come in the 1.2 branch).

I wanted to make a simultaneous release of Bazaar 1.5 and Xtla 1.2.
Perhaps we should release the 1.2 now itself, and consider that Xtla
1.3 will be a subset of DVC.

> CVC - Changeset oriented unified frontend for version control system

Just two points of vocubulary:

Be carefull with the expression "changeset oriented" because not all
modern RCS belong to that category. GNU Arch 1.x and Bazaar 1.x are
changeset oriented. This means that revisions are stored as changesets
against the ancestor. Many operations (merge, undo, ...) are usually
done by computing a changeset, and applying it to a tree.

Bazaar 2, GNU Arch 2.0 (if it ever reaches maturity), git, mercurial
(not sure about the last one) are all "snapshot oriented". In Bazaar
2, for example, you do not (yet) have a notion of changeset. Each
revision is stored logically as a snapshot, although the latest
archive format use weaves to compress them, which gives a compact
storage format, like changesets. Merge operations use 3-way merge. The
input for the merge operation are: "the common ancestor", "your
version", and "the merge source". Not "your version" and "the delta".

I think what you meant is "version-control with atomic commits", or
"tree-wide operations version control". Don't know what's the most
appropriate wording.


Second point, I don't like to describe DVC as a "unified frontend". I
don't target a real unification, and I do want the different
dvc-backends to be different, to reflect the differences (in
particular the strength) of the back-end tools.

> DVC - Unified frontend for distributed version control system
>    
>       What I'd like to say is CVC and DVC is different.
>       e.g. grand unified changeset oriented diff interface is 
>       not part of DVC but CVC.
>
>       So what is DVC?
>       I think Matthieu's bookmark and partner functions are the core 
>       functionality of DVC layer.

Only 50% agree.

I made a mistake making the bookmark feature so much central. The
"partner missing" feature is great, but we could have allowed a more
simple M-x baz-partner-missing RET ~/path/to/local-tree RET. The
bookmarks are a way to store the information, but the bookmark buffer
doesn't _have_ to be the starting point for version control
operations.

> At first time, I tried to implement darcs backend. However, darcs and
> emacs user will not join our development because we are using tla, baz
> and bzr. We should use a version control system Foo for developing a
> dvc backend for Foo. As the result we will get much more users and developers.
> More importantly, the quality of backend will be improved.

Clearly. I'm a bit frustrated myself to use baz to develop a
bzr-related tool ;-). But that's not easy.

What's easy is to maintain a mirror of a branch managed by another
version control system. Canonical maintains an arch mirror of many CVS
projects for example. The difficulty is to have a correct management
of the merge history.

Some people have been talking about implementing "foreign branches"
into bzr. That may allow bzr users to access an arch archive for
example. But that would solve the problem only for bzr users.

I think we can wait a bit to consider this problem. For now, I'm still
confortable with the Xtla part of DVC to develop DVC, and the TODO
list is long enough, so I don't need more experience with bzr-dvc to
fill it in ;-).

-- 
Matthieu

Reply via email to