Fix documentation regarding splitting of symlinks across multiple stow directories.
This commit is contained in:
parent
1f41616b12
commit
d5aa061abe
2 changed files with 10 additions and 12 deletions
|
@ -739,20 +739,18 @@ software separately, or if there is any other reason to want two or more
|
||||||
stow directories, it can be done by creating a file named @file{.stow}
|
stow directories, it can be done by creating a file named @file{.stow}
|
||||||
in each stow directory. The presence of @file{/usr/local/foo/.stow}
|
in each stow directory. The presence of @file{/usr/local/foo/.stow}
|
||||||
informs Stow that, though @file{foo} is not the current stow
|
informs Stow that, though @file{foo} is not the current stow
|
||||||
directory, and though it is a subdirectory of the target directory,
|
directory, even if it is a subdirectory of the target directory,
|
||||||
nevertheless it is @emph{a} stow directory and as such Stow
|
nevertheless it is @emph{a} stow directory and as such Stow
|
||||||
doesn't ``own'' anything in it (@pxref{Installing Packages}). This will
|
doesn't ``own'' anything in it (@pxref{Installing Packages}). This will
|
||||||
protect the contents of @file{foo} from a @samp{stow -D}, for instance.
|
protect the contents of @file{foo} from a @samp{stow -D}, for instance.
|
||||||
|
|
||||||
XXX is this still true? XXX
|
@c There is a test for the following case in t/examples.t:
|
||||||
|
|
||||||
When multiple stow directories share a target tree, the effectiveness
|
|
||||||
of Stow is reduced. If a tree-folding symlink is encountered and
|
|
||||||
needs to be split open during an installation, but the symlink points
|
|
||||||
into the wrong stow directory, Stow will report a conflict rather
|
|
||||||
than split open the tree (because it doesn't consider itself to own the
|
|
||||||
symlink, and thus cannot remove it).
|
|
||||||
|
|
||||||
|
When multiple stow directories share a target tree, if a tree-folding
|
||||||
|
symlink is encountered and needs to be split open during an
|
||||||
|
installation, as long as the top-level stow directory into which the
|
||||||
|
existing symlink points contains @file{.stow}, Stow knows how to split
|
||||||
|
open the tree in the correct manner.
|
||||||
|
|
||||||
@c ===========================================================================
|
@c ===========================================================================
|
||||||
@node Target Maintenance, Resource Files, Multiple Stow Directories, Top
|
@node Target Maintenance, Resource Files, Multiple Stow Directories, Top
|
||||||
|
|
|
@ -416,7 +416,7 @@ sub stow_node {
|
||||||
}
|
}
|
||||||
debug(3, "--- Evaluate existing link: $target => $existing_source");
|
debug(3, "--- Evaluate existing link: $target => $existing_source");
|
||||||
|
|
||||||
# Does it point to a node under our stow directory?
|
# Does it point to a node under any stow directory?
|
||||||
my ($existing_path, $existing_stow_path, $existing_package) =
|
my ($existing_path, $existing_stow_path, $existing_package) =
|
||||||
$self->find_stowed_path($target, $existing_source);
|
$self->find_stowed_path($target, $existing_source);
|
||||||
if (not $existing_path) {
|
if (not $existing_path) {
|
||||||
|
@ -620,7 +620,7 @@ sub unstow_node_orig {
|
||||||
error("Could not read link: $target");
|
error("Could not read link: $target");
|
||||||
}
|
}
|
||||||
|
|
||||||
# Does it point to a node under our stow directory?
|
# Does it point to a node under any stow directory?
|
||||||
my ($existing_path, $existing_stow_path, $existing_package) =
|
my ($existing_path, $existing_stow_path, $existing_package) =
|
||||||
$self->find_stowed_path($target, $existing_source);
|
$self->find_stowed_path($target, $existing_source);
|
||||||
if (not $existing_path) {
|
if (not $existing_path) {
|
||||||
|
@ -755,7 +755,7 @@ sub unstow_node {
|
||||||
return; # XXX #
|
return; # XXX #
|
||||||
}
|
}
|
||||||
|
|
||||||
# Does it point to a node under our stow directory?
|
# Does it point to a node under any stow directory?
|
||||||
my ($existing_path, $existing_stow_path, $existing_package) =
|
my ($existing_path, $existing_stow_path, $existing_package) =
|
||||||
$self->find_stowed_path($target, $existing_source);
|
$self->find_stowed_path($target, $existing_source);
|
||||||
if (not $existing_path) {
|
if (not $existing_path) {
|
||||||
|
|
Loading…
Reference in a new issue