~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/transports.txt

  • Committer: Martin Pool
  • Date: 2010-07-16 12:40:07 UTC
  • mto: This revision was merged to the branch mainline in revision 5348.
  • Revision ID: mbp@canonical.com-20100716124007-e4rey43r3mnq6ogo
review feedback on transport docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 
5
5
This guide describes the `Transport` classes that Bazaar uses for most
6
6
local and remote file access.  (Working tree files are the major
7
 
exception.)
 
7
exception (`bug 606249 <https://bugs.launchpad.net/bzr/+bug/606249>`).
8
8
 
9
9
 
10
10
Handling symlinks
11
11
#################
12
12
 
13
13
A symlink creates an alias where files or directories can be accessed by a
14
 
different name.  Symlinks are annoying.
 
14
different name.  Symlinks are useful but raise a few annoying cases for
 
15
bzr.
15
16
 
16
 
It's important to have tests for symlinks but there tests can't run on
 
17
It's important to have tests for symlinks but these tests can't run on
17
18
Windows, so you need eg ::
18
19
 
19
20
    _test_needs_features = [tests.SymlinkFeature]
23
24
    self.requireFeature(tests.SymlinkFeature)
24
25
 
25
26
Bazaar versions symlinks as objects in their own right, whose content is
26
 
the (Unicode) path they point to.  bzr doesn't care whether a versioned
 
27
the path they point to.  bzr doesn't care whether a versioned
27
28
symlink is absolute or relative; or whether it points inside or outside
28
 
the working tree; or whether its referent exists or not.
 
29
the working tree; or whether its referent exists or not.  In Unix the
 
30
target of a symlink is a byte string; bzr treats this as a Unicode string
 
31
in the filesystem encoding (`osutils._fs_enc`).
29
32
 
30
33
So when we say ``bzr add symlink``, this should always add the symlink to
31
34
its containing working tree, and never dereference the symlink.