[PATCH] transaction: enable hardlink backups for non-windows systems

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] transaction: enable hardlink backups for non-windows systems

Jeroen Vaelen
# HG changeset patch
# User Jeroen Vaelen <[hidden email]>
# Date 1487064458 28800
#      Tue Feb 14 01:27:38 2017 -0800
# Node ID c7fb7ac39a12c8683518bb7db7e1a93346e017e0
# Parent  a0e3d808690d57d1c9dff840e0b8ee099526397b
transaction: enable hardlink backups for non-windows systems

07a92bbd02e5 disabled hardlink backups entirely because they can cause trouble
with CIFS on Windows (see issue 4546). This changeset limits that restriction
to Windows systems. Ideally we check for CIFS, because e.g. NTFS does support
hardlinks. But this at least gives us cheaper transactional backups for posix,
which is a step forward.

Note: the test changes were originally introduced in 07a92bbd02e5.

diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -1084,9 +1084,9 @@
         if checkambig:
             oldstat = checkambig and filestat(dest)
         unlink(dest)
-    # hardlinks are problematic on CIFS, quietly ignore this flag
-    # until we find a way to work around it cleanly (issue4546)
-    if False and hardlink:
+    # quietly ignore the hardlink flag on Windows due to CIFS limitations
+    # (see discussion on issue 4546)
+    if hardlink and pycompat.osname != 'nt':
         try:
             oslink(src, dest)
             return
diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
--- a/tests/test-hardlinks.t
+++ b/tests/test-hardlinks.t
@@ -166,7 +166,7 @@
   1 r2/.hg/store/00manifest.i
   1 r2/.hg/store/data/d1/f2.i
   2 r2/.hg/store/data/f1.i
-  1 r2/.hg/store/fncache
+  2 r2/.hg/store/fncache
 
   $ hg -R r2 verify
   checking changesets
@@ -191,7 +191,7 @@
   1 r2/.hg/store/00manifest.i
   1 r2/.hg/store/data/d1/f2.i
   1 r2/.hg/store/data/f1.i
-  1 r2/.hg/store/fncache
+  2 r2/.hg/store/fncache
 
 
   $ cd r3
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Augie Fackler-2
On Tue, Feb 14, 2017 at 01:31:02AM -0800, Jeroen Vaelen wrote:

> # HG changeset patch
> # User Jeroen Vaelen <[hidden email]>
> # Date 1487064458 28800
> #      Tue Feb 14 01:27:38 2017 -0800
> # Node ID c7fb7ac39a12c8683518bb7db7e1a93346e017e0
> # Parent  a0e3d808690d57d1c9dff840e0b8ee099526397b
> transaction: enable hardlink backups for non-windows systems
>
> 07a92bbd02e5 disabled hardlink backups entirely because they can cause trouble
> with CIFS on Windows (see issue 4546). This changeset limits that restriction
> to Windows systems. Ideally we check for CIFS, because e.g. NTFS does support
> hardlinks. But this at least gives us cheaper transactional backups for posix,
> which is a step forward.

I'm hesitant to take this because as of 10.12 macOS is pushing people
towards CIFS instead of AFP, so this issue feels more likely to come
up there. Also, isn't it possible to mount CIFS volumes in the
filesystem space on Linux? Do we have any reason for confidence this
is only a problem in the Windows CIFS client, and not a problem in the
server?

Thanks!

>
> Note: the test changes were originally introduced in 07a92bbd02e5.
>
> diff --git a/mercurial/util.py b/mercurial/util.py
> --- a/mercurial/util.py
> +++ b/mercurial/util.py
> @@ -1084,9 +1084,9 @@
>          if checkambig:
>              oldstat = checkambig and filestat(dest)
>          unlink(dest)
> -    # hardlinks are problematic on CIFS, quietly ignore this flag
> -    # until we find a way to work around it cleanly (issue4546)
> -    if False and hardlink:
> +    # quietly ignore the hardlink flag on Windows due to CIFS limitations
> +    # (see discussion on issue 4546)
> +    if hardlink and pycompat.osname != 'nt':
>          try:
>              oslink(src, dest)
>              return
> diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
> --- a/tests/test-hardlinks.t
> +++ b/tests/test-hardlinks.t
> @@ -166,7 +166,7 @@
>    1 r2/.hg/store/00manifest.i
>    1 r2/.hg/store/data/d1/f2.i
>    2 r2/.hg/store/data/f1.i
> -  1 r2/.hg/store/fncache
> +  2 r2/.hg/store/fncache
>
>    $ hg -R r2 verify
>    checking changesets
> @@ -191,7 +191,7 @@
>    1 r2/.hg/store/00manifest.i
>    1 r2/.hg/store/data/d1/f2.i
>    1 r2/.hg/store/data/f1.i
> -  1 r2/.hg/store/fncache
> +  2 r2/.hg/store/fncache
>
>
>    $ cd r3
> _______________________________________________
> Mercurial-devel mailing list
> [hidden email]
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

timeless
Augie Fackler wrote:
> I'm hesitant to take this because as of 10.12 macOS is pushing people
> towards CIFS instead of AFP,

Interesting

> so this issue feels more likely to come up there.

> Also, isn't it possible to mount CIFS volumes in the filesystem space on Linux?

I was going to mention CIFS for Linux.

> Do we have any reason for confidence this is only a problem in the Windows CIFS client,
> and not a problem in the server?

I can't imagine this being the case. It's incredibly rare for the
linux CIFS clients to be significantly better than the Windows
implementations.

Out of curiosity, does sshfs handle this stuff correctly? :)
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Jeroen Vaelen
In reply to this post by Augie Fackler-2
Sorry for the delay in reply.

Confidence in stable posix implementations could come from:

- hardlink backups being the default for nearly 10 years before the previously
  mentioned patch disabled them after a series of bug reports coming
  exclusively from Windows users.
- generally more dependencies on hardlinks on such systems by different
  tools which make cache coherency bugs (theory) like issue 4546 less
  likely.
 
Getting a repro for this bug has been tough. Do you have any ideas for
alternative directions here?

Excerpts from Augie Fackler's message of 2017-02-14 10:39:00 -0500:

> On Tue, Feb 14, 2017 at 01:31:02AM -0800, Jeroen Vaelen wrote:
> > # HG changeset patch
> > # User Jeroen Vaelen <[hidden email]>
> > # Date 1487064458 28800
> > #      Tue Feb 14 01:27:38 2017 -0800
> > # Node ID c7fb7ac39a12c8683518bb7db7e1a93346e017e0
> > # Parent  a0e3d808690d57d1c9dff840e0b8ee099526397b
> > transaction: enable hardlink backups for non-windows systems
> >
> > 07a92bbd02e5 disabled hardlink backups entirely because they can cause trouble
> > with CIFS on Windows (see issue 4546). This changeset limits that restriction
> > to Windows systems. Ideally we check for CIFS, because e.g. NTFS does support
> > hardlinks. But this at least gives us cheaper transactional backups for posix,
> > which is a step forward.
>
> I'm hesitant to take this because as of 10.12 macOS is pushing people
> towards CIFS instead of AFP, so this issue feels more likely to come
> up there. Also, isn't it possible to mount CIFS volumes in the
> filesystem space on Linux? Do we have any reason for confidence this
> is only a problem in the Windows CIFS client, and not a problem in the
> server?
>
> Thanks!
>
> >
> > Note: the test changes were originally introduced in 07a92bbd02e5.
> >
> > diff --git a/mercurial/util.py b/mercurial/util.py
> > --- a/mercurial/util.py
> > +++ b/mercurial/util.py
> > @@ -1084,9 +1084,9 @@
> >          if checkambig:
> >              oldstat = checkambig and filestat(dest)
> >          unlink(dest)
> > -    # hardlinks are problematic on CIFS, quietly ignore this flag
> > -    # until we find a way to work around it cleanly (issue4546)
> > -    if False and hardlink:
> > +    # quietly ignore the hardlink flag on Windows due to CIFS limitations
> > +    # (see discussion on issue 4546)
> > +    if hardlink and pycompat.osname != 'nt':
> >          try:
> >              oslink(src, dest)
> >              return
> > diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
> > --- a/tests/test-hardlinks.t
> > +++ b/tests/test-hardlinks.t
> > @@ -166,7 +166,7 @@
> >    1 r2/.hg/store/00manifest.i
> >    1 r2/.hg/store/data/d1/f2.i
> >    2 r2/.hg/store/data/f1.i
> > -  1 r2/.hg/store/fncache
> > +  2 r2/.hg/store/fncache
> >
> >    $ hg -R r2 verify
> >    checking changesets
> > @@ -191,7 +191,7 @@
> >    1 r2/.hg/store/00manifest.i
> >    1 r2/.hg/store/data/d1/f2.i
> >    1 r2/.hg/store/data/f1.i
> > -  1 r2/.hg/store/fncache
> > +  2 r2/.hg/store/fncache
> >
> >
> >    $ cd r3
> > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel 
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Yuya Nishihara
On Wed, 15 Feb 2017 20:34:32 +0000, Jeroen Vaelen wrote:
> Confidence in stable posix implementations could come from:
>
> - hardlink backups being the default for nearly 10 years before the previously
>   mentioned patch disabled them after a series of bug reports coming
>   exclusively from Windows users.

No. This particular code path was introduced in 3.3-rc, and we got the bug
report soon after the release.
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Sean Farley-3
In reply to this post by Augie Fackler-2
Augie Fackler <[hidden email]> writes:

> On Tue, Feb 14, 2017 at 01:31:02AM -0800, Jeroen Vaelen wrote:
>> # HG changeset patch
>> # User Jeroen Vaelen <[hidden email]>
>> # Date 1487064458 28800
>> #      Tue Feb 14 01:27:38 2017 -0800
>> # Node ID c7fb7ac39a12c8683518bb7db7e1a93346e017e0
>> # Parent  a0e3d808690d57d1c9dff840e0b8ee099526397b
>> transaction: enable hardlink backups for non-windows systems
>>
>> 07a92bbd02e5 disabled hardlink backups entirely because they can cause trouble
>> with CIFS on Windows (see issue 4546). This changeset limits that restriction
>> to Windows systems. Ideally we check for CIFS, because e.g. NTFS does support
>> hardlinks. But this at least gives us cheaper transactional backups for posix,
>> which is a step forward.
>
> I'm hesitant to take this because as of 10.12 macOS is pushing people
> towards CIFS instead of AFP

Actually, it's since 10.9:

http://appleinsider.com/articles/13/06/11/apple-shifts-from-afp-file-sharing-to-smb2-in-os-x-109-mavericks
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Jun Wu
In reply to this post by Jeroen Vaelen
According to https://bz.mercurial-scm.org/show_bug.cgi?id=4546:

  Testing with mercurial 3.2 and 3.3 to a Linux samba server worked without
  issue in the few tests I've done.  This suggests the most likely cause is
  an NTFS/Windows based file server?

So I think at least we can have a whitelist (instead of a blacklist) that
allows Linux to use real hardlinks. Just ignore OS X or Windows for now.

I want hardlinks :)

Excerpts from Jeroen Vaelen's message of 2017-02-15 20:34:32 +0000:

> Sorry for the delay in reply.
>
> Confidence in stable posix implementations could come from:
>
> - hardlink backups being the default for nearly 10 years before the previously
>   mentioned patch disabled them after a series of bug reports coming
>   exclusively from Windows users.
> - generally more dependencies on hardlinks on such systems by different
>   tools which make cache coherency bugs (theory) like issue 4546 less
>   likely.
>  
> Getting a repro for this bug has been tough. Do you have any ideas for
> alternative directions here?
>
> Excerpts from Augie Fackler's message of 2017-02-14 10:39:00 -0500:
> > On Tue, Feb 14, 2017 at 01:31:02AM -0800, Jeroen Vaelen wrote:
> > > # HG changeset patch
> > > # User Jeroen Vaelen <[hidden email]>
> > > # Date 1487064458 28800
> > > #      Tue Feb 14 01:27:38 2017 -0800
> > > # Node ID c7fb7ac39a12c8683518bb7db7e1a93346e017e0
> > > # Parent  a0e3d808690d57d1c9dff840e0b8ee099526397b
> > > transaction: enable hardlink backups for non-windows systems
> > >
> > > 07a92bbd02e5 disabled hardlink backups entirely because they can cause trouble
> > > with CIFS on Windows (see issue 4546). This changeset limits that restriction
> > > to Windows systems. Ideally we check for CIFS, because e.g. NTFS does support
> > > hardlinks. But this at least gives us cheaper transactional backups for posix,
> > > which is a step forward.
> >
> > I'm hesitant to take this because as of 10.12 macOS is pushing people
> > towards CIFS instead of AFP, so this issue feels more likely to come
> > up there. Also, isn't it possible to mount CIFS volumes in the
> > filesystem space on Linux? Do we have any reason for confidence this
> > is only a problem in the Windows CIFS client, and not a problem in the
> > server?
> >
> > Thanks!
> >
> > >
> > > Note: the test changes were originally introduced in 07a92bbd02e5.
> > >
> > > diff --git a/mercurial/util.py b/mercurial/util.py
> > > --- a/mercurial/util.py
> > > +++ b/mercurial/util.py
> > > @@ -1084,9 +1084,9 @@
> > >          if checkambig:
> > >              oldstat = checkambig and filestat(dest)
> > >          unlink(dest)
> > > -    # hardlinks are problematic on CIFS, quietly ignore this flag
> > > -    # until we find a way to work around it cleanly (issue4546)
> > > -    if False and hardlink:
> > > +    # quietly ignore the hardlink flag on Windows due to CIFS limitations
> > > +    # (see discussion on issue 4546)
> > > +    if hardlink and pycompat.osname != 'nt':
> > >          try:
> > >              oslink(src, dest)
> > >              return
> > > diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
> > > --- a/tests/test-hardlinks.t
> > > +++ b/tests/test-hardlinks.t
> > > @@ -166,7 +166,7 @@
> > >    1 r2/.hg/store/00manifest.i
> > >    1 r2/.hg/store/data/d1/f2.i
> > >    2 r2/.hg/store/data/f1.i
> > > -  1 r2/.hg/store/fncache
> > > +  2 r2/.hg/store/fncache
> > >
> > >    $ hg -R r2 verify
> > >    checking changesets
> > > @@ -191,7 +191,7 @@
> > >    1 r2/.hg/store/00manifest.i
> > >    1 r2/.hg/store/data/d1/f2.i
> > >    1 r2/.hg/store/data/f1.i
> > > -  1 r2/.hg/store/fncache
> > > +  2 r2/.hg/store/fncache
> > >
> > >
> > >    $ cd r3
> > > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel 
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Yuya Nishihara
On Wed, 1 Mar 2017 17:55:25 -0800, Jun Wu wrote:
> According to https://bz.mercurial-scm.org/show_bug.cgi?id=4546:
>
>   Testing with mercurial 3.2 and 3.3 to a Linux samba server worked without
>   issue in the few tests I've done.  This suggests the most likely cause is
>   an NTFS/Windows based file server?
>
> So I think at least we can have a whitelist (instead of a blacklist) that
> allows Linux to use real hardlinks. Just ignore OS X or Windows for now.

She said a Linux samba server had no problem, not a Linux client with Windows
server.
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Ryan McElroy-2


On 3/2/17 7:46 AM, Yuya Nishihara wrote:

> On Wed, 1 Mar 2017 17:55:25 -0800, Jun Wu wrote:
>> According to https://urldefense.proofpoint.com/v2/url?u=https-3A__bz.mercurial-2Dscm.org_show-5Fbug.cgi-3Fid-3D4546-3A&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=Jw8rundaE7TbmqBYd1txIQ&m=vjW-XcGbq_x7AbgPtmJ8lHDdDLYljlyx2xvUxSdf4IE&s=6scd8qQkJR-0MXuZo-p47gjTcBa4U3m-ZywPbWfxOKI&e=
>>
>>    Testing with mercurial 3.2 and 3.3 to a Linux samba server worked without
>>    issue in the few tests I've done.  This suggests the most likely cause is
>>    an NTFS/Windows based file server?
>>
>> So I think at least we can have a whitelist (instead of a blacklist) that
>> allows Linux to use real hardlinks. Just ignore OS X or Windows for now.
> She said a Linux samba server had no problem, not a Linux client with Windows
> server.

Sounds like just changing this is a non-starter then. How about using a
config option, so people like us can get the perf benefits in places
where we are not concerned about the possible downsides (because we
prevent clones onto NFS/CIFS shares, for example)? Would anyone object
to turning this into an option that defaults to off?
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Durham Goode
On 3/2/17 8:09 AM, Ryan McElroy wrote:

>
>
> On 3/2/17 7:46 AM, Yuya Nishihara wrote:
>> On Wed, 1 Mar 2017 17:55:25 -0800, Jun Wu wrote:
>>> According to
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__bz.mercurial-2Dscm.org_show-5Fbug.cgi-3Fid-3D4546-3A&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=Jw8rundaE7TbmqBYd1txIQ&m=vjW-XcGbq_x7AbgPtmJ8lHDdDLYljlyx2xvUxSdf4IE&s=6scd8qQkJR-0MXuZo-p47gjTcBa4U3m-ZywPbWfxOKI&e=
>>>
>>>
>>>    Testing with mercurial 3.2 and 3.3 to a Linux samba server worked
>>> without
>>>    issue in the few tests I've done.  This suggests the most likely
>>> cause is
>>>    an NTFS/Windows based file server?
>>>
>>> So I think at least we can have a whitelist (instead of a blacklist)
>>> that
>>> allows Linux to use real hardlinks. Just ignore OS X or Windows for now.
>> She said a Linux samba server had no problem, not a Linux client with
>> Windows
>> server.
>
> Sounds like just changing this is a non-starter then. How about using a
> config option, so people like us can get the perf benefits in places
> where we are not concerned about the possible downsides (because we
> prevent clones onto NFS/CIFS shares, for example)? Would anyone object
> to turning this into an option that defaults to off?

Might be hard to get a config option down to this level, since there's
no ui object around here, but we could probably move the 'False' value
to a module level variable so extensions could at least set it to True.
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Augie Fackler-2

> On Mar 2, 2017, at 12:37 PM, Durham Goode <[hidden email]> wrote:
>
> On 3/2/17 8:09 AM, Ryan McElroy wrote:
>>
>>
>> On 3/2/17 7:46 AM, Yuya Nishihara wrote:
>>> On Wed, 1 Mar 2017 17:55:25 -0800, Jun Wu wrote:
>>>> According to
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__bz.mercurial-2Dscm.org_show-5Fbug.cgi-3Fid-3D4546-3A&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=Jw8rundaE7TbmqBYd1txIQ&m=vjW-XcGbq_x7AbgPtmJ8lHDdDLYljlyx2xvUxSdf4IE&s=6scd8qQkJR-0MXuZo-p47gjTcBa4U3m-ZywPbWfxOKI&e=
>>>>
>>>>
>>>>   Testing with mercurial 3.2 and 3.3 to a Linux samba server worked
>>>> without
>>>>   issue in the few tests I've done.  This suggests the most likely
>>>> cause is
>>>>   an NTFS/Windows based file server?
>>>>
>>>> So I think at least we can have a whitelist (instead of a blacklist)
>>>> that
>>>> allows Linux to use real hardlinks. Just ignore OS X or Windows for now.
>>> She said a Linux samba server had no problem, not a Linux client with
>>> Windows
>>> server.
>>
>> Sounds like just changing this is a non-starter then. How about using a
>> config option, so people like us can get the perf benefits in places
>> where we are not concerned about the possible downsides (because we
>> prevent clones onto NFS/CIFS shares, for example)? Would anyone object
>> to turning this into an option that defaults to off?
>
> Might be hard to get a config option down to this level, since there's no ui object around here, but we could probably move the 'False' value to a module level variable so extensions could at least set it to True.

I worry about such a config knob (see my previous statements about people actually choosing to turn on SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_SLEEP_FOR_TIMESTAMPS and then being surprised when they get the promised corruption) in core. I’d welcome a change like this that would let an out-of-tree extension with extensive warnings make the desired changes though.

> _______________________________________________
> Mercurial-devel mailing list
> [hidden email]
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] transaction: enable hardlink backups for non-windows systems

Durham Goode


On 3/2/17 11:55 AM, Augie Fackler wrote:

>
>> On Mar 2, 2017, at 12:37 PM, Durham Goode <[hidden email]> wrote:
>>
>> On 3/2/17 8:09 AM, Ryan McElroy wrote:
>>>
>>>
>>> On 3/2/17 7:46 AM, Yuya Nishihara wrote:
>>>> On Wed, 1 Mar 2017 17:55:25 -0800, Jun Wu wrote:
>>>>> According to
>>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__bz.mercurial-2Dscm.org_show-5Fbug.cgi-3Fid-3D4546-3A&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=Jw8rundaE7TbmqBYd1txIQ&m=vjW-XcGbq_x7AbgPtmJ8lHDdDLYljlyx2xvUxSdf4IE&s=6scd8qQkJR-0MXuZo-p47gjTcBa4U3m-ZywPbWfxOKI&e=
>>>>>
>>>>>
>>>>>   Testing with mercurial 3.2 and 3.3 to a Linux samba server worked
>>>>> without
>>>>>   issue in the few tests I've done.  This suggests the most likely
>>>>> cause is
>>>>>   an NTFS/Windows based file server?
>>>>>
>>>>> So I think at least we can have a whitelist (instead of a blacklist)
>>>>> that
>>>>> allows Linux to use real hardlinks. Just ignore OS X or Windows for now.
>>>> She said a Linux samba server had no problem, not a Linux client with
>>>> Windows
>>>> server.
>>>
>>> Sounds like just changing this is a non-starter then. How about using a
>>> config option, so people like us can get the perf benefits in places
>>> where we are not concerned about the possible downsides (because we
>>> prevent clones onto NFS/CIFS shares, for example)? Would anyone object
>>> to turning this into an option that defaults to off?
>>
>> Might be hard to get a config option down to this level, since there's no ui object around here, but we could probably move the 'False' value to a module level variable so extensions could at least set it to True.
>
> I worry about such a config knob (see my previous statements about people actually choosing to turn on SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_SLEEP_FOR_TIMESTAMPS and then being surprised when they get the promised corruption) in core. I’d welcome a change like this that would let an out-of-tree extension with extensive warnings make the desired changes though.

Earlier this morning I sent a patch "util: add allowhardlinks module
variable" V2 to do just this. Let me know if you think it needs more
scary comments.
_______________________________________________
Mercurial-devel mailing list
[hidden email]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel