/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/config-specs.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
************
 
2
Config specs
 
3
************
 
4
 
 
5
A *config spec* is a set of instructions for assembling a source tree
 
6
from separately maintained branches.  This is like CVS's "modules"
 
7
format.  Config specs are very commonly used in Clearcase, and the
 
8
main way of getting a new checkout.
 
9
 
 
10
Scenarios:
 
11
 
 
12
 * One module is shared by several projects, and it needs to be
 
13
   present in a subdirectory of their trees to build.
 
14
 
 
15
 * There are different commit or stability rules for different parts
 
16
   of a tree.
 
17
 
 
18
The simplest form is just a specification of branch sources, and where
 
19
they should be assembled into the tree.  Example::
 
20
 
 
21
  .              http://foo.net/fooapp
 
22
  ./libbaz       http://foo.net/libbaz
 
23
 
 
24
Normally the entire branch will be placed at this point, but sometimes
 
25
subdirectory should be selected.  Selecting just a single file rather
 
26
than subdirectory might be problematic because we wouldn't have
 
27
anywhere to put the control files.
 
28
 
 
29
Each branch will have a .bzr directory at the top level.  Changes on
 
30
each branch can be pushed back independently.
 
31
 
 
32
The tool needs to support (and be tested with) nested checkouts.
 
33
Commands should normally only apply to a single tree, but there might
 
34
be an option to descend into nested trees.
 
35
 
 
36
One very important use case is a naive user checking out a tree that
 
37
happens to use a configspec.  This is transparent in cvs, but not at
 
38
all so in Arch.
 
39
 
 
40
The ``svn:externals`` mechanism in Subversion works like this.
 
41
 
 
42
One interesting idea from Aaron is that all branches should be like
 
43
this: the latest-patch pointer can be generalized to in fact name
 
44
several patches that should be assembled in subdirectories.  A
 
45
simplest branch names just one, assembled to the base directory.  You
 
46
might want to specify the parent branches for each one as well....
 
47