Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the test-erase-content command. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e709bf16e7708359140da40a0fb5bb3b |
User & Date: | drh 2016-01-18 23:13:06.892 |
Context
2016-01-18
| ||
23:19 | Improved "help" for the "fossil whatis" command. ... (check-in: 0f9d0f0b user: drh tags: trunk) | |
23:13 | Add the test-erase-content command. ... (check-in: e709bf16 user: drh tags: trunk) | |
22:34 | Improved error message when a received artifact has an incorrect hash. ... (check-in: 4c8e6d91 user: drh tags: trunk) | |
Changes
Changes to src/content.c.
︙ | ︙ | |||
903 904 905 906 907 908 909 | if( blob_size(&content)!=size ){ fossil_print("size mismatch on artifact %d: wanted %d but got %d\n", rid, size, blob_size(&content)); nErr++; } sha1sum_blob(&content, &cksum); if( fossil_strcmp(blob_str(&cksum), zUuid)!=0 ){ | | | 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 | if( blob_size(&content)!=size ){ fossil_print("size mismatch on artifact %d: wanted %d but got %d\n", rid, size, blob_size(&content)); nErr++; } sha1sum_blob(&content, &cksum); if( fossil_strcmp(blob_str(&cksum), zUuid)!=0 ){ fossil_print("wrong hash on artifact %d: wanted %s but got %s\n", rid, zUuid, blob_str(&cksum)); nErr++; } if( bParse && looks_like_control_artifact(&content) ){ Blob err; int i, n; char *z; |
︙ | ︙ | |||
1122 1123 1124 1125 1126 1127 1128 | } db_finalize(&q); if( nErr>0 || quietFlag==0 ){ fossil_print("%d missing or shunned references in %d control artifacts\n", nErr, nArtifact); } } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 | } db_finalize(&q); if( nErr>0 || quietFlag==0 ){ fossil_print("%d missing or shunned references in %d control artifacts\n", nErr, nArtifact); } } /* ** COMMAND: test-content-erase ** ** Usage: %fossil test-content-erase RID .... ** ** Remove all traces of one or more artifacts from the local repository. ** ** WARNING: This command destroys data and can cause you to lose work. ** Make sure you have a backup copy before using this command! ** ** WARNING: You must run "fossil rebuild" after this command to rebuild ** the metadata. ** ** Note that the arguments are the integer raw RID values from the BLOB table, ** not SHA1 hashs or labels. */ void test_content_erase(void){ int i; Blob x; char c; prompt_user("This command erases information from the repository and\n" "might irrecoverably damage the repository. Make sure you\n" "have a backup copy!\n" "Continue? (y/N)? ", &x); c = blob_str(&x)[0]; blob_reset(&x); if( c!='y' && c!='Y' ) return; db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); db_begin_transaction(); for(i=2; i<g.argc; i++){ int rid = atoi(g.argv[i]); fossil_print("Erasing artifact %d (%s)\n", rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); content_undelta(rid); db_multi_exec("DELETE FROM blob WHERE rid=%d", rid); } db_end_transaction(0); } |