Yuya Nishihara <yuya@tcha.org> [Fri, 22 Dec 2017 21:22:49 +0900] rev 35482
templater: drop unneeded resources from conflict-marker data
Follow-up for
32c278eb876f and
f1c54d003327.
Yuya Nishihara <yuya@tcha.org> [Fri, 22 Dec 2017 21:12:17 +0900] rev 35481
templater: rewrite docstring of templater.__init__()
More importantly, this patch adds what the cache is.
Phil Cohen <phillco@fb.com> [Fri, 22 Dec 2017 00:44:36 -0600] rev 35480
rebase: don't take out a dirstate guard for in-memory rebase
Since IMM doesn't affect the dirstate, it's not needed, and might be faster.
Differential Revision: https://phab.mercurial-scm.org/D1745
Matt Harbison <matt_harbison@yahoo.com> [Fri, 22 Dec 2017 02:38:08 -0500] rev 35479
test-split: stabilize for Windows
- $PYTHON needs to be quoted when used as an executable in $HGEDITOR. This
avoids the error "'c' is not recognized as an internal or external command".
- seq.py is printing out CRLF, and then the subsequent `sed` script seems to
convert to LF on MSYS. IDK if python print statements can be made to print
LF on Windows, and I'm pretty sure CRLF is baked into some other tests.
- A stray glob was causing the 'obsstore-off' case to report 'no result code
from test'.
- When I ran with --debug, the `hg diff` commands in the test both printed
color sequences, and paused the output as it was run through the pager.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Dec 2017 23:31:46 -0500] rev 35478
lfs: use ui.note() and ui.debug() instead of ui.write() and their flags
Even though the upload/download message is still in a ui.verbose check, I
switched that to ui.note() too so that the 'ui.note' label is applied. The
debug message is no longer marked for translation because check-code complained.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Dec 2017 14:13:39 -0500] rev 35477
lfs: only hardlink between the usercache and local store if the blob verifies
This fixes the issue where verify (and other read commands) would propagate
corrupt blobs. I originalled coded this to only hardlink if 'verify=True' for
store.read(), but then good blobs weren't being linked, and this broke a bunch
of tests. (The blob in repo5 that is being corrupted seems to be linked into
repo5 in the loop running dumpflog.py prior to it being corrupted, but only if
verify=False is handled too.) It's probably better to do a one time extra
verification in order to create these files, so that the repo can be copied to a
removable drive.
Adding the same check to store.write() was only for completeness, but also needs
to do a one time extra verification to avoid breaking tests.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 17 Nov 2017 00:06:45 -0500] rev 35476
lfs: verify lfs object content when transferring to and from the remote store
This avoids inserting corrupt files into the usercache, and local and remote
stores. One down side is that the bad file won't be available locally for
forensic purposes after a remote download. I'm thinking about adding an
'incoming' directory to the local lfs store to handle the download, and then
move it to the 'objects' directory after it passes verification. That would
have the additional benefit of not concatenating each transfer chunk in memory
until the full file is transferred.
Verification isn't needed when the data is passed back through the revlog
interface or when the oid was just calculated, but otherwise it is on by
default. The additional overhead should be well worth avoiding problems with
file based remote stores, or buggy lfs servers.
Having two different verify functions is a little sad, but the full data of the
blob is mostly passed around in memory, because that's what the revlog interface
wants. The upload function, however, chunks up the data. It would be ideal if
that was how the content is always handled, but that's probably a huge project.
I don't really like printing the long hash, but `hg debugdata` isn't a public
interface, and is the only way to get it. The filelog and revision info is
nowhere near this area, so recommending `hg verify` is the easiest thing to do.