Size: 812
Comment:
|
← Revision 7 as of 2013-09-02 01:57:06 ⇥
Size: 1258
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Some rant about general VCS requirements which will ''ideally'' end in a formal model matching mercurial implementation. | ## 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). |
Line 3: | Line 4: |
Look at this page as a pure intellectual exercise for now. | See this page as a pure intellectual exercise for now. |
Line 5: | Line 6: |
=Requirements= | = Requirements = |
Line 18: | Line 19: |
* add property to objects (comment, date, author..) * add property to history state (tags ?) |
|
Line 20: | Line 23: |
* Local history (repository / branches) | * Local history (will end in repository / branches) |
Line 27: | Line 30: |
== Low levels requirements == Map to Mercurial commands/functions: * init, add, remove, backout, branch, clone, commit, copy, move, merge, push, pull, revert, tag |
|
Line 28: | Line 34: |
=Formal Method= | Map to Mercurial internals: * manifest, revlogs, = Formal Method = |
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)