[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] some rewrites
From: |
Graydon Hoare |
Subject: |
[Monotone-devel] some rewrites |
Date: |
Mon, 20 Jun 2005 00:59:56 -0700 |
hi,
I've posted some work I started on while on vacation to
net.venge.monotone.rewrites.change_set (and cvs_import). these are
sandbox branches I'll be merging in once I'm confident in their
functionality (and, of course, depending on how much complaint I get
from others). each addresses a particular sore spot in monotone. I
might add a .database and .netsync branch too :)
anyways, they don't represent 100% rewrites, just major restructuring
with the benefit of hindsight. no significant new ideas, just
consolidation.
the cvs_import one involves:
- using global information about commits rather than best-local information
- using smaller intermediate data structures, to consume less memory
- replacing ugly and confusing code with shiny and lovely code
- largely trying to work the way cvs2svn works
the change_set one involves:
- eliminating path_rearrangement, path_analysis, directory_map;
working on a single
representation of change_sets at all times
- changing manifests to be more like directory_maps
- representing change_sets as pairs of manifests
- eliminating the need for a separate "verification" phase when
writing manifests
- supporting explicit directories
- supporting file and directory attributes directly, eliminating .mt-attrs
- supporting file suturing safely
- supporting a conservative enhancement to 3-way merge "per-aspect
graph contraction"
(read a comment in the code if you're curious; it's not implemented
yet but it's
straightforward)
- *not* implementing precise-cdv-merge at the moment. frankly, I do
not understand it
and it keeps changing. if someone else wants to make a sandbox
which implements it
by all means do so. I'm just not confident that I know what it
means, and I can't write
a program if I don't know what it means. this is not a slight
against the algorithm; it's
just a statement about my current lack of understanding of it.
-graydon
- [Monotone-devel] some rewrites,
Graydon Hoare <=