/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/layers.txt

  • Committer: Martin Pool
  • Date: 2005-06-28 03:02:31 UTC
  • Revision ID: mbp@sourcefrog.net-20050628030231-d311e4ebcd467ef4
Merge John's import-speedup branch:

                                                                                         
  777 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:20:32 -0500
      revision-id: john@arbash-meinel.com-20050627032031-e82a50db3863b18e
      bzr selftest was not using the correct bzr

  776 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:20:22 -0500
      revision-id: john@arbash-meinel.com-20050627032021-c9f21fde989ddaee
      Add was using an old mutter

  775 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:02:33 -0500
      revision-id: john@arbash-meinel.com-20050627030233-9165cfe98fc63298
      Cleaned up to be less different

  774 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:54:53 -0500
      revision-id: john@arbash-meinel.com-20050627025452-4260d0e744edef43
      Allow BZR_PLUGIN_PATH='' to negate plugin loading.

  773 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:49:34 -0500
      revision-id: john@arbash-meinel.com-20050627024933-b7158f67b7b9eae5
      Finished the previous cleanup (allowing load_plugins to be called twice)

  772 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:45:08 -0500
      revision-id: john@arbash-meinel.com-20050627024508-723b1df510d196fc
      Work on making the tests pass. versioning.py is calling run_cmd directly, but plugins have been loaded.

  771 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:32:29 -0500
      revision-id: john@arbash-meinel.com-20050627023228-79972744d7c53e15
      Got it down a little bit more by removing import of tree and inventory.

  770 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:26:05 -0500
      revision-id: john@arbash-meinel.com-20050627022604-350b9773ef622f95
      Reducing the number of import from bzrlib/__init__.py and bzrlib/branch.py

  769 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:32:25 -0500
      revision-id: john@arbash-meinel.com-20050627013225-32dd044f10d23948
      Updated revision.py and xml.py to include SubElement.

  768 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:03:56 -0500
      revision-id: john@arbash-meinel.com-20050627010356-ee66919e1c377faf
      Minor typo

  767 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:03:13 -0500
      revision-id: john@arbash-meinel.com-20050627010312-40d024007eb85051
      Caching the import

  766 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:51:47 -0500
      revision-id: john@arbash-meinel.com-20050627005147-5281c99e48ed1834
      Created wrapper functions for lazy import of ElementTree

  765 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:46:37 -0500
      revision-id: john@arbash-meinel.com-20050627004636-bf432902004a94c5
      Removed all of the test imports of cElementTree

  764 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:43:59 -0500
      revision-id: john@arbash-meinel.com-20050627004358-d137fbe9570dd71b
      Trying to make bzr startup faster.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 * Write-once store of files identified by globally-unique names
 
2
   (e.g. hashes or UUIDs).
 
3
 
 
4
   Simplest option is to just dump them in a directory.  
 
5
 
 
6
   Optionally do delta-compression between similar/related files; or
 
7
   build this on top of deltas.
 
8
 
 
9
 * Tree manifests/inventories which say which files should be assembled at
 
10
   particular points to build a tree.  These too can be stored indexed
 
11
   by hash.
 
12
 
 
13
   - Reconstruct a revision by pulling out the manifest and then all
 
14
     the individual files. 
 
15
  
 
16
   - Manipulate working copy of inventory by add/mv/remove/commands.
 
17
 
 
18
 * Retrieve deltas 
 
19
 
 
20
   - Calculate diffs between two file versions, just by getting them
 
21
     from the store.
 
22
 
 
23
   - Retrieve deltas between any two revisions: requires looking for
 
24
     changes to the structure of the tree, and then text changes for
 
25
     anything inside it.
 
26
 
 
27
   - Deltas may be either stored or calculated on demand.  They can be
 
28
     put in the store just indexed by the from and to manifest id.
 
29
 
 
30
   - Calculate diff between a previous revision and the working copy. 
 
31
 
 
32
 * Commit and retrieve revisions
 
33
 
 
34
   - Revisions hold metadata (date, committer, comment, optional
 
35
     parents, merged patches), and a pointer to the inventory.
 
36
 
 
37
   - Stored in a write-once store.
 
38
 
 
39
 * Branch holds a linear history of revisions.
 
40
 
 
41
   - This is mostly redundant; we could just remember the current base
 
42
     revision and walk backwards from there.  But it still seems
 
43
     possibly useful to hold; we can check that the two are always
 
44
     consistent.
 
45
 
 
46
     (This suggests that we actually *could* do ``switch`` if we
 
47
     really wanted to, by replacing the revision history and head
 
48
     revision.  But I don't think it's a good idea.)
 
49
 
 
50
   - Can add a new revision to the end.
 
51
 
 
52
   - By indexing into this can translate between 0-based revision
 
53
     numbers and revision ids. 
 
54
 
 
55
   - By walking through and looking at revision dates can find
 
56
     revisions in a particular date range.
 
57
 
 
58
 * Calculations on branch histories:
 
59
 
 
60
   - Find if one branch is a prefix of another.
 
61
 
 
62
   - Find the latest common ancestor of another.
 
63
 
 
64
 * Three-way merge between revisions
 
65
 
 
66
   - Resolve shape of directory
 
67
   
 
68
   - Then resolve textual conflicts
 
69
 
 
70
 * Pull/push changes when they perfectly match
 
71
 
 
72
   - Possible when the destination is a prefix of the source
 
73
 
 
74
   - Just move all revisions, manifests and texts across, and 
 
75
 
 
76
 * Merge all changes from one branch into another
 
77
 
 
78
 * Signatures applied to revisions
 
79
 
 
80
   - There is a separable module for checking a signature: this is
 
81
     passed the claimed author, changeset, date.  This needs to fetch
 
82
     an appropriate key, decide if it is trusted to correspond to that
 
83
     author, is not revoked, etc.
 
84
 
 
85
   - If it is unknown, untrusted, revoked, etc, that is reported.
 
86
     Depending on a paranoia level it may cause the operation to
 
87
     abort.
 
88