## page was renamed from MathieuClabaut/Modelling Some rant about general VCS requirements which will ''ideally'' end in a formal model matching Mercurial implementation (with hope it's not totally out of topic on the Mercurial wiki). See this page as a pure intellectual exercise for now. = Requirements = Express from coarser detail to finer detail. == High level requirements == * Manage objects (will be files, directory, metadata...) * add object * remove object * modify object * keep immutable history (except for obliterating some content ?) * restore state from the past == Intermediate level requirements == * keep trace of who did the object management actions * add property to objects (comment, date, author..) * add property to history state (tags ?) == Distributed requirements == * Local history (will end in repository / branches) * clone * merge == Other secondary requirements == * narrow/shallow cloning ? == Low levels requirements == Map to Mercurial commands/functions: * init, add, remove, backout, branch, clone, commit, copy, move, merge, push, pull, revert, tag Map to Mercurial internals: * manifest, revlogs, = Formal Method = * B event (via rodin platform)