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.
