monotone-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]