Masatake YAMATO <[EMAIL PROTECTED]> writes:

>> >> My dream is to have a good enough abstraction layer, similar to VC,
>> >> but oriended towards distributed modern RCS, and on top of which
>> >> support for different backends can be implemented (people may want
>> >> support for git or mercurial in Emacs with a similar interface).
>> >
>> > Ambitious. However, it is really worth to seek.
>> > If we could start from such framework, I'll call DVC, we could handle
>> > the differences between tla, baz, bzr and tla-2.0.
>> 
>> This idea has popped into my head every now and again too.  The idea of
>> allowing Xtla to support multiple version control backends is quite
>> appealing, I think.
>
> We have explored what kinds of emacs interface are needed for
> distributed (decentralized) version control system: inventory(file
> list), diff, committing, changelog, revisions, merging, bookmark and
> browser. We can do something based on these result.
>
> As far as I know, monotone includes monotone.el. Therefore, monotone
> people may continue to use monotone.el, the standard one. In other
> hand some emacs frontend for dracs are. There is no standard one.
> If core DVC is implemented, we can recruite other developers.

I really like the idea of a common platform for distributed revision
control interfaces.

Let me tell some thoughts that I have:
* Traditionally the revision control interfaces were modelled after
  the command line interface. That made it easy for the users to
  understand the emacs interface, when they have already used the
  command line.
* Gnu Arch has many, many different command line options. That is also
  a key reason, why the source code of Xtla is much bigger than any
  other revision control interfaces available for emacs. Another
  reason is (in my opinion) that Xtla is a very convenient and already
  quite complete interface.
* The new distributed systems share similar concepts, so I think it is
  possible to find a common base. But I think it is also very
  important, that the common base can be extended for every system to
  provide an interface for every available feature.
* Xtla's concept of a major mode for different things (changes,
  inventory, ...) is one possible idea to provide good support for
  multiple systems.

I have all the features that I need from a revision control system in
tla/baz. An important point for me is the emacs integration, because I
use emacs all the time.

I follow the development of some other systems (bzr, monotone,
mercurial, git/cogito, darcs). I think, that all that named systems
(and possible some others) will have a place in the future. And It
would be very nice, if Xtla could provide good support for all of
them.


How can we achieve that goal?

* The hardest, but perhaps best way would be to define that common
  interface and add support for the different revision control systems
  from that base.

That is much work at the beginning. And it will take a long time to
get an interface really working. The big benefit would be, that code
could be shared more efficient.

* The hackish (and more fun way) would be to add xtla-bzr,
  xtla-mercurial,... and try to refactor the existing Xtla and build a
  common base during that process.

I would prefer that way, because it is more fun, because it takes less
time to get something working. The drawback is here, that we will have
code duplication and a system that is not designed from ground up.


What do you think?


Stefan.

Reply via email to