On Fri, Nov 11, 2022 at 3:58 PM Daniel Shahaf <d...@daniel.shahaf.name>
wrote:

> Daniel Shahaf wrote on Mon, Oct 31, 2022 at 10:02:14 +0000:
> > Vincent Lefevre wrote on Mon, 24 Oct 2022 13:57 +00:00:
> > > "svn" goes up in the directory hierarchy to look for a .svn directory.
> > > The issue is that it doesn't stop at filesystem and/or owner change.
> >
> > Why should the upwards scan stop at mount points?  Because accessing
> > /home/.svn on a random machine in your lab hangs?  That's insufficient
> > justification.



FWIW git stops scanning upwards at a filesystem boundary by default; IIRC
some command line switch overrides that. I don't have example output handy
(writing this on my phone).


Because if the .svn directory were on a different mount point,
> a subsequent «svn update» might attempt to atomically rename(2) something
> from .svn/ into the ACTUAL tree, and fail because they're not on the
> same device?
>
> Example: If /h/home is a mountpoint and jrandom does 'svn up' in
> /h/home/jrandom, then even if /h/.svn exists, atomic renames from
> /h/.svn/tmp/foo to /h/home/jrandom/path/to/wc/bar wouldn't be possible.
> Is this a good reason not to look for /h/.svn or /.svn at all (i.e., to
> recurse upwards no further than to /h/home/.svn)?
>


How could a working copy end up spanning filesystems? I can think of two
ways: (1) a checkout into a non-empty directory, in which some subdirectory
is a mountpoint; if that subdirectory shares the same path as a versioned
subdirectory, the former will occlude the latter. Or (2) a user checks out
a working copy and then mounts a filesystem onto one of the subdirectories.

Is there a reasonable use case for doing either of the above?

Thanks
Nathan

Reply via email to