Fri, 29 Dec 2017 22:15:37 -0500 win32: split a utility function to obtain the volume out of getfstype()
Matt Harbison <matt_harbison@yahoo.com> [Fri, 29 Dec 2017 22:15:37 -0500] rev 35516
win32: split a utility function to obtain the volume out of getfstype() This is only done on Windows because it's simple enough to call statfs() on Unix. The goal is to display this in `hg debugfs`.
Sat, 30 Dec 2017 21:15:12 -0500 util: whitelist NTFS for hardlink creation (issue4580)
Matt Harbison <matt_harbison@yahoo.com> [Sat, 30 Dec 2017 21:15:12 -0500] rev 35515
util: whitelist NTFS for hardlink creation (issue4580)
Fri, 29 Dec 2017 21:28:19 -0500 win32: implement util.getfstype()
Matt Harbison <matt_harbison@yahoo.com> [Fri, 29 Dec 2017 21:28:19 -0500] rev 35514
win32: implement util.getfstype() This will allow NTFS to be added to the hardlink whitelist, and resume creating hardlinks in transactions (which was disabled globally in 07a92bbd02e5; see also e5ce49a30146). I opted to report "cifs" for remote volumes because this shows in `hg debugfs`, which also reports that hardlinks are supported for these volumes. So being able to distinguish it from "unknown" seems useful. The documentation [1] seems to indicate that SMB isn't supported by these functions, but experimenting shows that mapped drives are reported as "NTFS" on Windows 7. I don't have a second Windows machine, but instead shared a temp directory on C:\. In this setup, both of the following were detected as 'cifs' with the explicit GetDriveType() check: Z:\repo>hg ci -A C:\>hg -R \\hostname\temp\repo ci -A # (without Z:\ being mapped) It looks like this is called 6 times to add and commit a single new file, so I'm a little surprised this isn't cached. [1] https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993(v=vs.85).aspx
Sat, 30 Dec 2017 21:07:03 -0500 util: move getfstype() to the platform modules
Matt Harbison <matt_harbison@yahoo.com> [Sat, 30 Dec 2017 21:07:03 -0500] rev 35513
util: move getfstype() to the platform modules This makes room for implementing on Windows using ctypes.
Fri, 22 Dec 2017 23:17:04 +0800 graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net> [Fri, 22 Dec 2017 23:17:04 +0800] rev 35512
graphlog: add another graph node type, unstable, using character "*" (BC)
Tue, 26 Dec 2017 23:40:49 -0500 largefiles: modernize how capabilities are added to the wire protocol
Matt Harbison <matt_harbison@yahoo.com> [Tue, 26 Dec 2017 23:40:49 -0500] rev 35511
largefiles: modernize how capabilities are added to the wire protocol See 982f13bef503, which came well after this code was originally written.
Sat, 23 Dec 2017 17:49:12 -0500 lfs: show a friendly message when pushing lfs to a server without lfs enabled
Matt Harbison <matt_harbison@yahoo.com> [Sat, 23 Dec 2017 17:49:12 -0500] rev 35510
lfs: show a friendly message when pushing lfs to a server without lfs enabled Upfront disclaimer: I don't know anything about the wire protocol, and this was pretty much cargo-culted from largefiles, and then clonebundles, since it seems more modern. I was surprised that exchange.push() will ensure all of the proper requirements when exchanging between two local repos, but doesn't care when one is remote. All this new capability marker does is inform the client that the extension is enabled remotely. It may or may not contain commits with external blobs. Open issues: - largefiles uses 'largefiles=serve' for its capability. Someday I hope to be able to push lfs blobs to an `hg serve` instance. That will probably require a distinct capability. Should it change to '=serve' then? Or just add an 'lfs-serve' capability then? - The flip side of this is more complicated. It looks like largefiles adds an 'lheads' command for the client to signal to the server that the extension is loaded. That is then converted to 'heads' and sent through the normal wire protocol plumbing. A client using the 'heads' command directly is kicked out with a message indicating that the largefiles extension must be loaded. We could do similar with 'lfsheads', but then a repo with both largefiles and lfs blobs can't be pushed over the wire. Hopefully somebody with more wire protocol experience can think of something else. I see 'x-hgarg-1' on some commands in the tests, but not on heads, and didn't dig any further.
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -7 +7 +10 +30 +100 +300 +1000 +3000 +10000 tip