Fossil

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

About branch repo-fingerprint

The checkout database ("_FOSSIL_" or ".fslckout") stores integer BLOB.RID values instead of complete 40- or 64-character hashes of various artifacts. This normally works fine. However, if the repository is replaced by a clone, or if the repository is restored from an older backup and then resynced with a remote repository, the hash-to-RID mapping might change. This can render the RID values in the checkout database obsolete.

The purpose of this branch is to detect, and possibly fix, that situation.

The first step is detection using the new "db_fingerprint()" interface. After we can reliably detect RID number changes in the repository, then we can start working on fixing the checkout database when that happens.

See the forum discussion for additional insights.

5 check-ins related to "repo-fingerprint"
2019-01-16
00:11
Detect when the repository associated with a check-out has been swapped out for a clone with different RID values, and give the user a warning. Still to do: automatically recover. ... (check-in: 1b114d24 user: drh tags: trunk)
2019-01-11
03:31
Verify the repository fingerprint whenever a repository is opened from a checkout database. For now, abort with an error if the fingerprint is incorrect. To do: have Fossil automatically adjust RIDs in the checkout database if the fingerprint is incorrect. ... (Closed-Leaf check-in: 6036bc62 user: drh tags: repo-fingerprint)
2019-01-10
21:07
Store "fingerprint" and "checkout-hash" in the VVAR table whenever the working checkout changes. ... (check-in: e07139a0 user: drh tags: repo-fingerprint)
19:54
Add the db_fingerprint() interface for computing a repository fingerprint. ... (check-in: f5043617 user: drh tags: repo-fingerprint)
18:25
Fix the remote_repo_info() function to avoid resource leaks and to suppress unhelpful error and warning messages. ... (check-in: 1e3cfc1e user: drh tags: trunk)