Differences between revisions 3 and 7 (spanning 4 versions)
Revision 3 as of 2008-03-28 13:49:49
Size: 1258
Comment: Camelcase
Revision 7 as of 2013-09-02 01:57:06
Size: 1258
Editor: KevinBot
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
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). 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).
Line 31: Line 31:
Map to mercurial commands/functions: Map to Mercurial commands/functions:
Line 34: Line 34:
Map to mercurial internals: Map to Mercurial internals:

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)

MathieuClabaut/VcsModelling (last edited 2013-09-02 01:57:06 by KevinBot)