~bzr-pqm/bzr/bzr.dev

2513.1.1 by Martin Pool
(in progress) analysis of commit
1
"use-case apis" - means not just the api called by the Command layer, but
2
also the stack going down.
3
4
top level - an atomic api - whole thing should either commit or not
5
6
needs to come back and interact with the user to get the commit message, if
7
not previously specified
8
 
9
hooks that will modify the wt before commit takes place;
10
line endings - actually not an issue for commit because we propose to always commit what's in the tree and just transform them when reading back out
11
 
12
problem with commit builder api - you need to build a whole tree in it.
13
14
takes contents of a workingtree, logically puts it into a branch and the
15
branch's repository
16
point is that it should only store the new things in the tree which are 
17
not already in the tree
18
* possibly updates the workingtree after the commit to tell it about the new
19
  basis revision
20
21
if you commit only a single file, you should only need to tell it about that 
22
single file.
23
24
if implemented with dirstate present, will still make good use of dirstate.
25
26
requirements wrt branches - bound branches do complicate it, so does bzr-svn. 
27
28
commit is an operation between the tree and the branch.
29
30
api should only be told about content changes by the tree.