Subject: Re: bug#28245: 26.0.50; symbolic links not well handled by vc-dir

From: [email-masked] (Vincent Belaïche)
Date: Sun, 27 Aug 2017 22:52:53 +0200

My answers bellow...

Le 27/08/2017 à 16:21, Eli Zaretskii a écrit :
>> From: [email-masked] (Vincent Belaïche)
>> Date: Sat, 26 Aug 2017 23:02:55 +0200
>> Cc: Vincent Belaïche <[email-masked]>
>>
>> Hello, I have a project under SVN version control. Under the directory
>> under change control I have a test directory, call it `trunk/test', in
>> which a symbolic link is created to another file, call it
>> `trunk/scr/foo', for the purpose of test. So the symbolic link is
>> `trunk/foo' pointing at `trunk/src/foo'. `trunk/foo' is not under change
>> control, it is created by the test makefile, while `trunk/src/foo' is
>> under change control.
>>
>> Please note that I am under MSW, I have created the symbolic links as
>> native NTFS symbolic links thanks to MSYS2 ln command --- by default
>> this command makes a copy, but it is possible to configure MSYS2 to have
>> native symlinks.
>>
>> OK, `trunk/src/foo' is edited, and when I do `M-x vc-dir', I see in the
>> list of edited files `trunk/src/foo' twice. That is, IMHO, a bug.
>
> vc-dir calls the SVN backend to collect its information, and according
> to my references, SVN doesn't support symlinks on MS-Windows.

You are correct, SVN doesn't support symlinks on MS-Windows. So, it
might well be that nothing is to be done on the Emacs side. But please
read the following...

> Does your port of SVN support symlinks?  

FYI, my port is the collabnet one.

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
$ svn --version
svn, version 1.8.13 (r1667537)
   compiled Mar 23 2015, 03:35:53 on x86_64/x86-microsoft-windows5.1.2600

Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.8
  - handles 'http' scheme
  - handles 'https' scheme
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

It does not support symlinks to the extent that if there is a symlink in
the repo, then the symlink is not created by a chekcout in the work
area. Instead a plain file containing the link information is
created. However, if I create manually the symlink in place of this
file, then subsequent svn update won't overwrite it.

Now, here, we are not talking about a symlink in the repo, this is a
symlink created locally and which is not under version control.

> What does "svn status -v" show in that repository?

When I do that, I see the original file `foo' only once. Please note
that my bug report is erroneous. Actually, the symlink is
trunk/test/foo, pointing as trunk/src/foo. trunk/src/foo is under change
control, but the directory trunk/test and all its content is not under
change control --- I have not yet imported it. So `svn status -v' done
under trunk shows only, as far as trunk/test and its content are
concerned, this:

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
?                                        test
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

My intention was to import trunk/test to the repo with only the files
under trunk/test that aren't created by the test, so the symlinks would
in the end not be under change control, which anyway is impossible
because my SVN client does not support symlinks.

  Vincent.

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus