~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/add.txt

  • Committer: Martin Pool
  • Date: 2007-04-26 07:48:05 UTC
  • mto: (2420.2.2 bzr.http.auth)
  • mto: This revision was merged to the branch mainline in revision 2462.
  • Revision ID: mbp@sourcefrog.net-20070426074805-va53nylsxqt7ur7u
Repository.tarball fixes for python2.4

Use 'r|bz2' to extract since r:bz2 is not supported
Replace extractall, which is not in python2.4
RemoteRepository._get_tarball returns a TemporaryFile
-------------- This line and the following will be ignored --------------

modified:
  bzrlib/remote.py
  bzrlib/tests/test_remote.py
  bzrlib/tests/test_smart.py

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Add
2
 
===
3
 
 
4
 
Add is used to recursively version some paths supplied by the user. Paths that
5
 
match ignore rules are not versioned, and paths that become versioned are
6
 
versioned in the nearest containing bzr tree. Currently we only do this within
7
 
a single tree, but perhaps with nested trees this should change.
8
 
 
9
 
Least work we can hope to perform
10
 
---------------------------------
11
 
 
12
 
* Read a subset of the full versioned paths data for the tree matching the scope of the paths the user supplied.
13
 
* Seek once to each directory within the scope and readdir its contents.
14
 
* Probe if each directory is a child tree to avoid adding data for paths within a child tree.
15
 
* Calculate the ignored status for paths not previously known to be ignored
16
 
* Write data proportional to the newly versioned file count to record their versioning.
17
 
* Assign a fileid for each path (so that merge --uncommitted can work immediately)
18
 
 
19
 
Optionally:
20
 
 
21
 
* Print the ignore rule for each ignored path in the scope.
22
 
* Print the path of each added file.
23
 
* Print the total count of ignored files within the scopes.
24
 
* Record the result of calculating ignored status for ignored files.
25
 
  (proportional to the number we actually calculate).
26
 
 
27
 
Per file algorithm
28
 
------------------
29
 
 
30
 
#. If the path is versioned, and it is a directory, push onto the recurse stack.
31
 
#. If the path is supplied by the user or is not ignored, version it, and if a
32
 
   directory, push onto the recurse stack. Versioning the path may require
33
 
   versioning the paths parents.
34
 
#. Output or otherwise record the ignored rule as per the user interface selected.