]> arthur.barton.de Git - bup.git/commit
index: make --fake-valid match the man page
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 17 Feb 2020 20:02:11 +0000 (21:02 +0100)
committerRob Browning <rlb@defaultvalue.org>
Sat, 25 Apr 2020 19:27:27 +0000 (14:27 -0500)
commit6c6be9856a6e39c1d09ada270303abe44d4ab80d
tree716c64aed8fe5ca77cd3d54e7aa16c2de567c422
parent80a536ffff0eb13e781e894f29985a18d65a5436
index: make --fake-valid match the man page

The index command currently clobbers the hash of a file when
marking it as valid, but the man page states:

    --fake-valid
        mark specified paths as up-to-date even if they aren't.
        This can be useful for testing, or to avoid unnecessarily
        backing up files that you know are boring.

The latter part ("avoid unnecessarily backing up [...]") cannot be
implemented with --fake-valid as is, because of the clobbering of
the hash: the fake invented hash will not exist in the repository,
and thus save checks and saves the file.

Fix this by clobbering the hash only if it's the invalid EMPTY_SHA.

Add a test for this to test-save-smaller, just because that's where
we discovered it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
(cherry picked from commit a79de5af5c6fcdf730a94ae8d1b839dfbbc2dc59)
Tested-by: Rob Browning <rlb@defaultvalue.org>
cmd/index-cmd.py
t/test-save-smaller