On Tue, Jul 11, 2006 at 10:23:01AM -0400, Matthew Good wrote: > > Also, if you are brave enough, you might want to try another > > trac+darcs implementation in scratchbox.org[1]. It is somewhat > > experimental and depends on python-4suite, postgresql and > > python-psycopg (and darcs 1.0.7 when used with mod_python). > > > > It has also support for wiki formating in all fields and dependency > > support in tickets. > > Interesting. My experience with Darcs has been pretty limited, but from > the small repository I have it seems quite nice. > > What are your future plans with your Trac+Darcs implementation? It > looks like it's currently based on 0.9.2, so it's a bit out of date. Actually 0.9.3 (r2807)
The project has been on hold for a while because of other things, but there should be some time soon to get back to working with it. > Have you looked into extracting the Darcs VC implementation as a plugin > so it can be used with the Trac mainline? Yes. There are some reasons for it not being as a plugin (yet). Firstly, I started working with this a while before there was a vc-refactoring branch that brought pluging based approach to version control, so having an own repository have been easier. Secondly, there are some other minor things that have been done to to get the thing working happily with postgres (eg. own fix for #2437). Why would you not want to have this trac+darcs into mainline? - It supports only postgres This can probably be fixed, but I haven't got time for doing it. Some queries like pg special functions and db creation code should be more generic (and I probably should drop the schemas). - It has new dependencies Especially python-4suite xml-library. Python has an xml library implementation called minidom built-in, but it has some performance and resource problems. A regular darcs changelog[1] for a regular project, 800kB in size, takes 40MB of memory with minidom, 5 with 4suite. The memory consumption explodes when having multiple repositories. [1] darcs changes -s --xml-output - There are some api changes Especially get_diff function in vc-api. Darcs stores data internally as changesets, but the old trac api wants the the old&new file and builds the diff by itself. This leads to insanity with darcs, because it has to go the repository through twice to build the two versions to just have the diff, which is already there. It would be easy to make a fallback implementation of get_diff that fetches two versions of the file and returns the differences, but it is not done. What are the main differences with the other trac+darcs implementation? -Support for multiple darcs repositories This one supports multiple physical darcs repositories in one trac+darcs virtual repository. That is, you can have just have a directory containing darcs repositories and use this as your virtual repository. This is practical and very needed with darcs, because it doesn't support branches inside the repository, but has a copy of the repository instead. -Support for numbered patches across branches Darcs does't have numbers for the changesets, so indexing of changesets is done in a database level. The same changeset that lives in multiple branches (darcs repositories) is referred with one changeset id. -Support for removal of changesets This implementation doesn't depend on the ordering of patches in the individual darcs repository, so patches can be unpulled or optimized. -Support for move/delete/add of files and directories. -Doesn't have support for file caching This is mostly not needed because of the get_diff solution. Granted, it is somewhat slow in some situation, so file cache wouldn't be a bad thing. -- Toni Timonen 040-5111863,GPG 0x7984A4FD _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
