Fossil SCM

Replace most calls to db_begin_transaction() with db_begin_write() to avoid having a reader locking during a COMMIT.

andybradford 2019-03-19 14:09 trunk
Commit 6cc5354821e21ce045703e2012606d99a133949e094966321e14f8508a7b8843
+4 -4
--- src/add.c
+++ src/add.c
@@ -306,11 +306,11 @@
306306
if( zIgnoreFlag==0 ){
307307
zIgnoreFlag = db_get("ignore-glob", 0);
308308
}
309309
if( db_get_boolean("dotfiles", 0) ) scanFlags |= SCAN_ALL;
310310
vid = db_lget_int("checkout",0);
311
- db_begin_transaction();
311
+ db_begin_write();
312312
db_multi_exec("CREATE TEMP TABLE sfile(pathname TEXT PRIMARY KEY %s)",
313313
filename_collation());
314314
pClean = glob_create(zCleanFlag);
315315
pIgnore = glob_create(zIgnoreFlag);
316316
nRoot = strlen(g.zLocalRoot);
@@ -460,11 +460,11 @@
460460
461461
/* We should be done with options.. */
462462
verify_all_options();
463463
464464
db_must_be_within_tree();
465
- db_begin_transaction();
465
+ db_begin_write();
466466
if( g.argv[1][0]=='f' ){ /* i.e. "forget" */
467467
removeFiles = 0;
468468
}else if( softFlag ){
469469
removeFiles = 0;
470470
}else if( hardFlag ){
@@ -662,11 +662,11 @@
662662
if( zIgnoreFlag==0 ){
663663
zIgnoreFlag = db_get("ignore-glob", 0);
664664
}
665665
if( db_get_boolean("dotfiles", 0) ) scanFlags |= SCAN_ALL;
666666
vid = db_lget_int("checkout",0);
667
- db_begin_transaction();
667
+ db_begin_write();
668668
669669
/* step 1:
670670
** Populate the temp table "sfile" with the names of all unmanaged
671671
** files currently in the check-out, except for files that match the
672672
** --ignore or ignore-glob patterns and dot-files. Then add all of
@@ -881,11 +881,11 @@
881881
}
882882
if( g.argc<4 ){
883883
usage("OLDNAME NEWNAME");
884884
}
885885
zDest = g.argv[g.argc-1];
886
- db_begin_transaction();
886
+ db_begin_write();
887887
if( g.argv[1][0]=='r' ){ /* i.e. "rename" */
888888
moveFiles = 0;
889889
}else if( softFlag ){
890890
moveFiles = 0;
891891
}else if( hardFlag ){
892892
--- src/add.c
+++ src/add.c
@@ -306,11 +306,11 @@
306 if( zIgnoreFlag==0 ){
307 zIgnoreFlag = db_get("ignore-glob", 0);
308 }
309 if( db_get_boolean("dotfiles", 0) ) scanFlags |= SCAN_ALL;
310 vid = db_lget_int("checkout",0);
311 db_begin_transaction();
312 db_multi_exec("CREATE TEMP TABLE sfile(pathname TEXT PRIMARY KEY %s)",
313 filename_collation());
314 pClean = glob_create(zCleanFlag);
315 pIgnore = glob_create(zIgnoreFlag);
316 nRoot = strlen(g.zLocalRoot);
@@ -460,11 +460,11 @@
460
461 /* We should be done with options.. */
462 verify_all_options();
463
464 db_must_be_within_tree();
465 db_begin_transaction();
466 if( g.argv[1][0]=='f' ){ /* i.e. "forget" */
467 removeFiles = 0;
468 }else if( softFlag ){
469 removeFiles = 0;
470 }else if( hardFlag ){
@@ -662,11 +662,11 @@
662 if( zIgnoreFlag==0 ){
663 zIgnoreFlag = db_get("ignore-glob", 0);
664 }
665 if( db_get_boolean("dotfiles", 0) ) scanFlags |= SCAN_ALL;
666 vid = db_lget_int("checkout",0);
667 db_begin_transaction();
668
669 /* step 1:
670 ** Populate the temp table "sfile" with the names of all unmanaged
671 ** files currently in the check-out, except for files that match the
672 ** --ignore or ignore-glob patterns and dot-files. Then add all of
@@ -881,11 +881,11 @@
881 }
882 if( g.argc<4 ){
883 usage("OLDNAME NEWNAME");
884 }
885 zDest = g.argv[g.argc-1];
886 db_begin_transaction();
887 if( g.argv[1][0]=='r' ){ /* i.e. "rename" */
888 moveFiles = 0;
889 }else if( softFlag ){
890 moveFiles = 0;
891 }else if( hardFlag ){
892
--- src/add.c
+++ src/add.c
@@ -306,11 +306,11 @@
306 if( zIgnoreFlag==0 ){
307 zIgnoreFlag = db_get("ignore-glob", 0);
308 }
309 if( db_get_boolean("dotfiles", 0) ) scanFlags |= SCAN_ALL;
310 vid = db_lget_int("checkout",0);
311 db_begin_write();
312 db_multi_exec("CREATE TEMP TABLE sfile(pathname TEXT PRIMARY KEY %s)",
313 filename_collation());
314 pClean = glob_create(zCleanFlag);
315 pIgnore = glob_create(zIgnoreFlag);
316 nRoot = strlen(g.zLocalRoot);
@@ -460,11 +460,11 @@
460
461 /* We should be done with options.. */
462 verify_all_options();
463
464 db_must_be_within_tree();
465 db_begin_write();
466 if( g.argv[1][0]=='f' ){ /* i.e. "forget" */
467 removeFiles = 0;
468 }else if( softFlag ){
469 removeFiles = 0;
470 }else if( hardFlag ){
@@ -662,11 +662,11 @@
662 if( zIgnoreFlag==0 ){
663 zIgnoreFlag = db_get("ignore-glob", 0);
664 }
665 if( db_get_boolean("dotfiles", 0) ) scanFlags |= SCAN_ALL;
666 vid = db_lget_int("checkout",0);
667 db_begin_write();
668
669 /* step 1:
670 ** Populate the temp table "sfile" with the names of all unmanaged
671 ** files currently in the check-out, except for files that match the
672 ** --ignore or ignore-glob patterns and dot-files. Then add all of
@@ -881,11 +881,11 @@
881 }
882 if( g.argc<4 ){
883 usage("OLDNAME NEWNAME");
884 }
885 zDest = g.argv[g.argc-1];
886 db_begin_write();
887 if( g.argv[1][0]=='r' ){ /* i.e. "rename" */
888 moveFiles = 0;
889 }else if( softFlag ){
890 moveFiles = 0;
891 }else if( hardFlag ){
892
+1 -1
--- src/alerts.c
+++ src/alerts.c
@@ -211,11 +211,11 @@
211211
login_check_credentials();
212212
if( !g.perm.Setup ){
213213
login_needed(0);
214214
return;
215215
}
216
- db_begin_transaction();
216
+ db_begin_write();
217217
218218
alert_submenu_common();
219219
style_submenu_element("Send Announcement","%R/announce");
220220
style_header("Email Notification Setup");
221221
@ <h1>Status</h1>
222222
--- src/alerts.c
+++ src/alerts.c
@@ -211,11 +211,11 @@
211 login_check_credentials();
212 if( !g.perm.Setup ){
213 login_needed(0);
214 return;
215 }
216 db_begin_transaction();
217
218 alert_submenu_common();
219 style_submenu_element("Send Announcement","%R/announce");
220 style_header("Email Notification Setup");
221 @ <h1>Status</h1>
222
--- src/alerts.c
+++ src/alerts.c
@@ -211,11 +211,11 @@
211 login_check_credentials();
212 if( !g.perm.Setup ){
213 login_needed(0);
214 return;
215 }
216 db_begin_write();
217
218 alert_submenu_common();
219 style_submenu_element("Send Announcement","%R/announce");
220 style_header("Email Notification Setup");
221 @ <h1>Status</h1>
222
+2 -2
--- src/allrepo.c
+++ src/allrepo.c
@@ -301,11 +301,11 @@
301301
int j;
302302
Blob fn = BLOB_INITIALIZER;
303303
Blob sql = BLOB_INITIALIZER;
304304
useCheckouts = find_option("ckout","c",0)!=0;
305305
verify_all_options();
306
- db_begin_transaction();
306
+ db_begin_write();
307307
for(j=3; j<g.argc; j++, blob_reset(&sql), blob_reset(&fn)){
308308
file_canonical_name(g.argv[j], &fn, useCheckouts?1:0);
309309
blob_append_sql(&sql,
310310
"DELETE FROM global_config WHERE name GLOB '%s:%q'",
311311
useCheckouts?"ckout":"repo", blob_str(&fn)
@@ -324,11 +324,11 @@
324324
}else if( strncmp(zCmd, "add", n)==0 ){
325325
int j;
326326
Blob fn = BLOB_INITIALIZER;
327327
Blob sql = BLOB_INITIALIZER;
328328
verify_all_options();
329
- db_begin_transaction();
329
+ db_begin_write();
330330
for(j=3; j<g.argc; j++, blob_reset(&fn), blob_reset(&sql)){
331331
sqlite3 *db;
332332
int rc;
333333
const char *z;
334334
file_canonical_name(g.argv[j], &fn, 0);
335335
--- src/allrepo.c
+++ src/allrepo.c
@@ -301,11 +301,11 @@
301 int j;
302 Blob fn = BLOB_INITIALIZER;
303 Blob sql = BLOB_INITIALIZER;
304 useCheckouts = find_option("ckout","c",0)!=0;
305 verify_all_options();
306 db_begin_transaction();
307 for(j=3; j<g.argc; j++, blob_reset(&sql), blob_reset(&fn)){
308 file_canonical_name(g.argv[j], &fn, useCheckouts?1:0);
309 blob_append_sql(&sql,
310 "DELETE FROM global_config WHERE name GLOB '%s:%q'",
311 useCheckouts?"ckout":"repo", blob_str(&fn)
@@ -324,11 +324,11 @@
324 }else if( strncmp(zCmd, "add", n)==0 ){
325 int j;
326 Blob fn = BLOB_INITIALIZER;
327 Blob sql = BLOB_INITIALIZER;
328 verify_all_options();
329 db_begin_transaction();
330 for(j=3; j<g.argc; j++, blob_reset(&fn), blob_reset(&sql)){
331 sqlite3 *db;
332 int rc;
333 const char *z;
334 file_canonical_name(g.argv[j], &fn, 0);
335
--- src/allrepo.c
+++ src/allrepo.c
@@ -301,11 +301,11 @@
301 int j;
302 Blob fn = BLOB_INITIALIZER;
303 Blob sql = BLOB_INITIALIZER;
304 useCheckouts = find_option("ckout","c",0)!=0;
305 verify_all_options();
306 db_begin_write();
307 for(j=3; j<g.argc; j++, blob_reset(&sql), blob_reset(&fn)){
308 file_canonical_name(g.argv[j], &fn, useCheckouts?1:0);
309 blob_append_sql(&sql,
310 "DELETE FROM global_config WHERE name GLOB '%s:%q'",
311 useCheckouts?"ckout":"repo", blob_str(&fn)
@@ -324,11 +324,11 @@
324 }else if( strncmp(zCmd, "add", n)==0 ){
325 int j;
326 Blob fn = BLOB_INITIALIZER;
327 Blob sql = BLOB_INITIALIZER;
328 verify_all_options();
329 db_begin_write();
330 for(j=3; j<g.argc; j++, blob_reset(&fn), blob_reset(&sql)){
331 sqlite3 *db;
332 int rc;
333 const char *z;
334 file_canonical_name(g.argv[j], &fn, 0);
335
+2 -2
--- src/attach.c
+++ src/attach.c
@@ -266,11 +266,11 @@
266266
int rid;
267267
int i, n;
268268
int addCompress = 0;
269269
Manifest *pManifest;
270270
271
- db_begin_transaction();
271
+ db_begin_write();
272272
blob_init(&content, aContent, szContent);
273273
pManifest = manifest_parse(&content, 0, 0);
274274
manifest_destroy(pManifest);
275275
blob_init(&content, aContent, szContent);
276276
if( pManifest ){
@@ -501,11 +501,11 @@
501501
char *zDate;
502502
Blob manifest;
503503
Blob cksum;
504504
const char *zFile = zName;
505505
506
- db_begin_transaction();
506
+ db_begin_write();
507507
blob_zero(&manifest);
508508
for(i=n=0; zFile[i]; i++){
509509
if( zFile[i]=='/' || zFile[i]=='\\' ) n = i;
510510
}
511511
zFile += n;
512512
--- src/attach.c
+++ src/attach.c
@@ -266,11 +266,11 @@
266 int rid;
267 int i, n;
268 int addCompress = 0;
269 Manifest *pManifest;
270
271 db_begin_transaction();
272 blob_init(&content, aContent, szContent);
273 pManifest = manifest_parse(&content, 0, 0);
274 manifest_destroy(pManifest);
275 blob_init(&content, aContent, szContent);
276 if( pManifest ){
@@ -501,11 +501,11 @@
501 char *zDate;
502 Blob manifest;
503 Blob cksum;
504 const char *zFile = zName;
505
506 db_begin_transaction();
507 blob_zero(&manifest);
508 for(i=n=0; zFile[i]; i++){
509 if( zFile[i]=='/' || zFile[i]=='\\' ) n = i;
510 }
511 zFile += n;
512
--- src/attach.c
+++ src/attach.c
@@ -266,11 +266,11 @@
266 int rid;
267 int i, n;
268 int addCompress = 0;
269 Manifest *pManifest;
270
271 db_begin_write();
272 blob_init(&content, aContent, szContent);
273 pManifest = manifest_parse(&content, 0, 0);
274 manifest_destroy(pManifest);
275 blob_init(&content, aContent, szContent);
276 if( pManifest ){
@@ -501,11 +501,11 @@
501 char *zDate;
502 Blob manifest;
503 Blob cksum;
504 const char *zFile = zName;
505
506 db_begin_write();
507 blob_zero(&manifest);
508 for(i=n=0; zFile[i]; i++){
509 if( zFile[i]=='/' || zFile[i]=='\\' ) n = i;
510 }
511 zFile += n;
512
+1 -1
--- src/bisect.c
+++ src/bisect.c
@@ -410,11 +410,11 @@
410410
Blob log, id;
411411
int ridBad = 0;
412412
int ridGood = 0;
413413
int cnt = 0, i;
414414
foundCmd = 1;
415
- db_begin_transaction();
415
+ db_begin_write();
416416
zLog = db_lget("bisect-log","");
417417
blob_init(&log, zLog, -1);
418418
while( blob_token(&log, &id) ){ cnt++; }
419419
if( cnt==0 ){
420420
fossil_fatal("no previous bisect steps to undo");
421421
--- src/bisect.c
+++ src/bisect.c
@@ -410,11 +410,11 @@
410 Blob log, id;
411 int ridBad = 0;
412 int ridGood = 0;
413 int cnt = 0, i;
414 foundCmd = 1;
415 db_begin_transaction();
416 zLog = db_lget("bisect-log","");
417 blob_init(&log, zLog, -1);
418 while( blob_token(&log, &id) ){ cnt++; }
419 if( cnt==0 ){
420 fossil_fatal("no previous bisect steps to undo");
421
--- src/bisect.c
+++ src/bisect.c
@@ -410,11 +410,11 @@
410 Blob log, id;
411 int ridBad = 0;
412 int ridGood = 0;
413 int cnt = 0, i;
414 foundCmd = 1;
415 db_begin_write();
416 zLog = db_lget("bisect-log","");
417 blob_init(&log, zLog, -1);
418 while( blob_token(&log, &id) ){ cnt++; }
419 if( cnt==0 ){
420 fossil_fatal("no previous bisect steps to undo");
421
+1 -1
--- src/branch.c
+++ src/branch.c
@@ -68,11 +68,11 @@
6868
zBranch)!=0 ){
6969
fossil_fatal("branch \"%s\" already exists", zBranch);
7070
}
7171
7272
user_select();
73
- db_begin_transaction();
73
+ db_begin_write();
7474
rootid = name_to_typed_rid(g.argv[4], "ci");
7575
if( rootid==0 ){
7676
fossil_fatal("unable to locate check-in off of which to branch");
7777
}
7878
7979
--- src/branch.c
+++ src/branch.c
@@ -68,11 +68,11 @@
68 zBranch)!=0 ){
69 fossil_fatal("branch \"%s\" already exists", zBranch);
70 }
71
72 user_select();
73 db_begin_transaction();
74 rootid = name_to_typed_rid(g.argv[4], "ci");
75 if( rootid==0 ){
76 fossil_fatal("unable to locate check-in off of which to branch");
77 }
78
79
--- src/branch.c
+++ src/branch.c
@@ -68,11 +68,11 @@
68 zBranch)!=0 ){
69 fossil_fatal("branch \"%s\" already exists", zBranch);
70 }
71
72 user_select();
73 db_begin_write();
74 rootid = name_to_typed_rid(g.argv[4], "ci");
75 if( rootid==0 ){
76 fossil_fatal("unable to locate check-in off of which to branch");
77 }
78
79
+4 -4
--- src/bundle.c
+++ src/bundle.c
@@ -158,11 +158,11 @@
158158
verify_all_options();
159159
bundle_attach_file(g.argv[3], "b1", 1);
160160
db_prepare(&q,
161161
"INSERT INTO bblob(blobid, uuid, sz, delta, data, notes) "
162162
"VALUES(NULL, $uuid, $sz, NULL, $data, $filename)");
163
- db_begin_transaction();
163
+ db_begin_write();
164164
for(i=4; i<g.argc; i++){
165165
int sz;
166166
blob_read_from_file(&content, g.argv[i], ExtFILE);
167167
sz = blob_size(&content);
168168
sha1sum_blob(&content, &hash);
@@ -303,11 +303,11 @@
303303
describe_artifacts("IN tobundle");
304304
305305
if( g.argc!=4 ) usage("export BUNDLE ?OPTIONS?");
306306
/* Create the new bundle */
307307
bundle_attach_file(g.argv[3], "b1", 1);
308
- db_begin_transaction();
308
+ db_begin_write();
309309
310310
/* Add 'mtime' and 'project-code' entries to the bconfig table */
311311
db_multi_exec(
312312
"INSERT INTO bconfig(bcname,bcvalue)"
313313
" VALUES('mtime',datetime('now'));"
@@ -599,11 +599,11 @@
599599
if( zMissingDeltas && zMissingDeltas[0] ){
600600
fossil_fatal("delta basis artifacts not found in repository: %s",
601601
zMissingDeltas);
602602
}
603603
604
- db_begin_transaction();
604
+ db_begin_write();
605605
db_multi_exec(
606606
"CREATE TEMP TABLE bix("
607607
" blobid INTEGER PRIMARY KEY,"
608608
" delta INTEGER"
609609
");"
@@ -639,11 +639,11 @@
639639
int bTest = find_option("test",0,0)!=0; /* Undocumented --test option */
640640
const char *zFile = g.argv[3];
641641
verify_all_options();
642642
if ( g.argc!=4 ) usage("purge BUNDLE ?OPTIONS?");
643643
bundle_attach_file(zFile, "b1", 0);
644
- db_begin_transaction();
644
+ db_begin_write();
645645
646646
/* Find all check-ins of the bundle */
647647
db_multi_exec(
648648
"CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY);"
649649
"INSERT OR IGNORE INTO ok SELECT blob.rid FROM bblob, blob, plink"
650650
--- src/bundle.c
+++ src/bundle.c
@@ -158,11 +158,11 @@
158 verify_all_options();
159 bundle_attach_file(g.argv[3], "b1", 1);
160 db_prepare(&q,
161 "INSERT INTO bblob(blobid, uuid, sz, delta, data, notes) "
162 "VALUES(NULL, $uuid, $sz, NULL, $data, $filename)");
163 db_begin_transaction();
164 for(i=4; i<g.argc; i++){
165 int sz;
166 blob_read_from_file(&content, g.argv[i], ExtFILE);
167 sz = blob_size(&content);
168 sha1sum_blob(&content, &hash);
@@ -303,11 +303,11 @@
303 describe_artifacts("IN tobundle");
304
305 if( g.argc!=4 ) usage("export BUNDLE ?OPTIONS?");
306 /* Create the new bundle */
307 bundle_attach_file(g.argv[3], "b1", 1);
308 db_begin_transaction();
309
310 /* Add 'mtime' and 'project-code' entries to the bconfig table */
311 db_multi_exec(
312 "INSERT INTO bconfig(bcname,bcvalue)"
313 " VALUES('mtime',datetime('now'));"
@@ -599,11 +599,11 @@
599 if( zMissingDeltas && zMissingDeltas[0] ){
600 fossil_fatal("delta basis artifacts not found in repository: %s",
601 zMissingDeltas);
602 }
603
604 db_begin_transaction();
605 db_multi_exec(
606 "CREATE TEMP TABLE bix("
607 " blobid INTEGER PRIMARY KEY,"
608 " delta INTEGER"
609 ");"
@@ -639,11 +639,11 @@
639 int bTest = find_option("test",0,0)!=0; /* Undocumented --test option */
640 const char *zFile = g.argv[3];
641 verify_all_options();
642 if ( g.argc!=4 ) usage("purge BUNDLE ?OPTIONS?");
643 bundle_attach_file(zFile, "b1", 0);
644 db_begin_transaction();
645
646 /* Find all check-ins of the bundle */
647 db_multi_exec(
648 "CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY);"
649 "INSERT OR IGNORE INTO ok SELECT blob.rid FROM bblob, blob, plink"
650
--- src/bundle.c
+++ src/bundle.c
@@ -158,11 +158,11 @@
158 verify_all_options();
159 bundle_attach_file(g.argv[3], "b1", 1);
160 db_prepare(&q,
161 "INSERT INTO bblob(blobid, uuid, sz, delta, data, notes) "
162 "VALUES(NULL, $uuid, $sz, NULL, $data, $filename)");
163 db_begin_write();
164 for(i=4; i<g.argc; i++){
165 int sz;
166 blob_read_from_file(&content, g.argv[i], ExtFILE);
167 sz = blob_size(&content);
168 sha1sum_blob(&content, &hash);
@@ -303,11 +303,11 @@
303 describe_artifacts("IN tobundle");
304
305 if( g.argc!=4 ) usage("export BUNDLE ?OPTIONS?");
306 /* Create the new bundle */
307 bundle_attach_file(g.argv[3], "b1", 1);
308 db_begin_write();
309
310 /* Add 'mtime' and 'project-code' entries to the bconfig table */
311 db_multi_exec(
312 "INSERT INTO bconfig(bcname,bcvalue)"
313 " VALUES('mtime',datetime('now'));"
@@ -599,11 +599,11 @@
599 if( zMissingDeltas && zMissingDeltas[0] ){
600 fossil_fatal("delta basis artifacts not found in repository: %s",
601 zMissingDeltas);
602 }
603
604 db_begin_write();
605 db_multi_exec(
606 "CREATE TEMP TABLE bix("
607 " blobid INTEGER PRIMARY KEY,"
608 " delta INTEGER"
609 ");"
@@ -639,11 +639,11 @@
639 int bTest = find_option("test",0,0)!=0; /* Undocumented --test option */
640 const char *zFile = g.argv[3];
641 verify_all_options();
642 if ( g.argc!=4 ) usage("purge BUNDLE ?OPTIONS?");
643 bundle_attach_file(zFile, "b1", 0);
644 db_begin_write();
645
646 /* Find all check-ins of the bundle */
647 db_multi_exec(
648 "CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY);"
649 "INSERT OR IGNORE INTO ok SELECT blob.rid FROM bblob, blob, plink"
650
+2 -2
--- src/checkin.c
+++ src/checkin.c
@@ -2241,11 +2241,11 @@
22412241
if( !db_exists("SELECT 1 FROM user WHERE login=%Q", g.zLogin) ){
22422242
fossil_fatal("no such user: %s", g.zLogin);
22432243
}
22442244
22452245
hasChanges = unsaved_changes(useHash ? CKSIG_HASH : 0);
2246
- db_begin_transaction();
2246
+ db_begin_write();
22472247
db_record_repository_filename(0);
22482248
if( hasChanges==0 && !isAMerge && !allowEmpty && !forceFlag ){
22492249
fossil_fatal("nothing has changed; use --allow-empty to override");
22502250
}
22512251
@@ -2340,11 +2340,11 @@
23402340
}
23412341
}
23422342
}else{
23432343
db_multi_exec("REPLACE INTO vvar VALUES('ci-comment',%B)", &comment);
23442344
db_end_transaction(0);
2345
- db_begin_transaction();
2345
+ db_begin_write();
23462346
}
23472347
23482348
/*
23492349
** Step 1: Compute an aggregate MD5 checksum over the disk image
23502350
** of every file in vid. The file names are part of the checksum.
23512351
--- src/checkin.c
+++ src/checkin.c
@@ -2241,11 +2241,11 @@
2241 if( !db_exists("SELECT 1 FROM user WHERE login=%Q", g.zLogin) ){
2242 fossil_fatal("no such user: %s", g.zLogin);
2243 }
2244
2245 hasChanges = unsaved_changes(useHash ? CKSIG_HASH : 0);
2246 db_begin_transaction();
2247 db_record_repository_filename(0);
2248 if( hasChanges==0 && !isAMerge && !allowEmpty && !forceFlag ){
2249 fossil_fatal("nothing has changed; use --allow-empty to override");
2250 }
2251
@@ -2340,11 +2340,11 @@
2340 }
2341 }
2342 }else{
2343 db_multi_exec("REPLACE INTO vvar VALUES('ci-comment',%B)", &comment);
2344 db_end_transaction(0);
2345 db_begin_transaction();
2346 }
2347
2348 /*
2349 ** Step 1: Compute an aggregate MD5 checksum over the disk image
2350 ** of every file in vid. The file names are part of the checksum.
2351
--- src/checkin.c
+++ src/checkin.c
@@ -2241,11 +2241,11 @@
2241 if( !db_exists("SELECT 1 FROM user WHERE login=%Q", g.zLogin) ){
2242 fossil_fatal("no such user: %s", g.zLogin);
2243 }
2244
2245 hasChanges = unsaved_changes(useHash ? CKSIG_HASH : 0);
2246 db_begin_write();
2247 db_record_repository_filename(0);
2248 if( hasChanges==0 && !isAMerge && !allowEmpty && !forceFlag ){
2249 fossil_fatal("nothing has changed; use --allow-empty to override");
2250 }
2251
@@ -2340,11 +2340,11 @@
2340 }
2341 }
2342 }else{
2343 db_multi_exec("REPLACE INTO vvar VALUES('ci-comment',%B)", &comment);
2344 db_end_transaction(0);
2345 db_begin_write();
2346 }
2347
2348 /*
2349 ** Step 1: Compute an aggregate MD5 checksum over the disk image
2350 ** of every file in vid. The file names are part of the checksum.
2351
+1 -1
--- src/checkout.c
+++ src/checkout.c
@@ -289,11 +289,11 @@
289289
int promptFlag; /* True to prompt before overwriting */
290290
int vid, prior;
291291
Blob cksum1, cksum1b, cksum2;
292292
293293
db_must_be_within_tree();
294
- db_begin_transaction();
294
+ db_begin_write();
295295
forceFlag = find_option("force","f",0)!=0;
296296
forceMissingFlag = find_option("force-missing",0,0)!=0;
297297
keepFlag = find_option("keep",0,0)!=0;
298298
latestFlag = find_option("latest",0,0)!=0;
299299
promptFlag = find_option("prompt",0,0)!=0 || forceFlag==0;
300300
--- src/checkout.c
+++ src/checkout.c
@@ -289,11 +289,11 @@
289 int promptFlag; /* True to prompt before overwriting */
290 int vid, prior;
291 Blob cksum1, cksum1b, cksum2;
292
293 db_must_be_within_tree();
294 db_begin_transaction();
295 forceFlag = find_option("force","f",0)!=0;
296 forceMissingFlag = find_option("force-missing",0,0)!=0;
297 keepFlag = find_option("keep",0,0)!=0;
298 latestFlag = find_option("latest",0,0)!=0;
299 promptFlag = find_option("prompt",0,0)!=0 || forceFlag==0;
300
--- src/checkout.c
+++ src/checkout.c
@@ -289,11 +289,11 @@
289 int promptFlag; /* True to prompt before overwriting */
290 int vid, prior;
291 Blob cksum1, cksum1b, cksum2;
292
293 db_must_be_within_tree();
294 db_begin_write();
295 forceFlag = find_option("force","f",0)!=0;
296 forceMissingFlag = find_option("force-missing",0,0)!=0;
297 keepFlag = find_option("keep",0,0)!=0;
298 latestFlag = find_option("latest",0,0)!=0;
299 promptFlag = find_option("prompt",0,0)!=0 || forceFlag==0;
300
+2 -2
--- src/clone.c
+++ src/clone.c
@@ -172,11 +172,11 @@
172172
}else{
173173
db_close_config();
174174
db_create_repository(g.argv[3]);
175175
db_open_repository(g.argv[3]);
176176
db_open_config(0,0);
177
- db_begin_transaction();
177
+ db_begin_write();
178178
db_record_repository_filename(g.argv[3]);
179179
db_initial_setup(0, 0, zDefaultUser);
180180
user_select();
181181
db_set("content-schema", CONTENT_SCHEMA, 0);
182182
db_set("aux-schema", AUX_SCHEMA_MAX, 0);
@@ -210,11 +210,11 @@
210210
file_delete(g.argv[3]);
211211
fossil_fatal("server returned an error - clone aborted");
212212
}
213213
db_open_repository(g.argv[3]);
214214
}
215
- db_begin_transaction();
215
+ db_begin_write();
216216
fossil_print("Rebuilding repository meta-data...\n");
217217
rebuild_db(0, 1, 0);
218218
if( !noCompress ){
219219
fossil_print("Extra delta compression... "); fflush(stdout);
220220
extra_deltification();
221221
--- src/clone.c
+++ src/clone.c
@@ -172,11 +172,11 @@
172 }else{
173 db_close_config();
174 db_create_repository(g.argv[3]);
175 db_open_repository(g.argv[3]);
176 db_open_config(0,0);
177 db_begin_transaction();
178 db_record_repository_filename(g.argv[3]);
179 db_initial_setup(0, 0, zDefaultUser);
180 user_select();
181 db_set("content-schema", CONTENT_SCHEMA, 0);
182 db_set("aux-schema", AUX_SCHEMA_MAX, 0);
@@ -210,11 +210,11 @@
210 file_delete(g.argv[3]);
211 fossil_fatal("server returned an error - clone aborted");
212 }
213 db_open_repository(g.argv[3]);
214 }
215 db_begin_transaction();
216 fossil_print("Rebuilding repository meta-data...\n");
217 rebuild_db(0, 1, 0);
218 if( !noCompress ){
219 fossil_print("Extra delta compression... "); fflush(stdout);
220 extra_deltification();
221
--- src/clone.c
+++ src/clone.c
@@ -172,11 +172,11 @@
172 }else{
173 db_close_config();
174 db_create_repository(g.argv[3]);
175 db_open_repository(g.argv[3]);
176 db_open_config(0,0);
177 db_begin_write();
178 db_record_repository_filename(g.argv[3]);
179 db_initial_setup(0, 0, zDefaultUser);
180 user_select();
181 db_set("content-schema", CONTENT_SCHEMA, 0);
182 db_set("aux-schema", AUX_SCHEMA_MAX, 0);
@@ -210,11 +210,11 @@
210 file_delete(g.argv[3]);
211 fossil_fatal("server returned an error - clone aborted");
212 }
213 db_open_repository(g.argv[3]);
214 }
215 db_begin_write();
216 fossil_print("Rebuilding repository meta-data...\n");
217 rebuild_db(0, 1, 0);
218 if( !noCompress ){
219 fossil_print("Extra delta compression... "); fflush(stdout);
220 extra_deltification();
221
+2 -2
--- src/configure.c
+++ src/configure.c
@@ -773,11 +773,11 @@
773773
|| strncmp(zMethod, "merge", n)==0 ){
774774
Blob in;
775775
int groupMask;
776776
if( g.argc!=4 ) usage(mprintf("%s FILENAME",zMethod));
777777
blob_read_from_file(&in, g.argv[3], ExtFILE);
778
- db_begin_transaction();
778
+ db_begin_write();
779779
if( zMethod[0]=='i' ){
780780
groupMask = CONFIGSET_ALL | CONFIGSET_OVERWRITE;
781781
}else{
782782
groupMask = CONFIGSET_ALL;
783783
}
@@ -821,11 +821,11 @@
821821
char *zBackup;
822822
if( g.argc!=4 ) usage("reset AREA");
823823
mask = configure_name_to_mask(g.argv[3], 1);
824824
zBackup = db_text(0,
825825
"SELECT strftime('config-backup-%%Y%%m%%d%%H%%M%%f','now')");
826
- db_begin_transaction();
826
+ db_begin_write();
827827
export_config(mask, g.argv[3], 0, zBackup);
828828
for(i=0; i<count(aConfig); i++){
829829
const char *zName = aConfig[i].zName;
830830
if( (aConfig[i].groupMask & mask)==0 ) continue;
831831
if( zName[0]!='@' ){
832832
--- src/configure.c
+++ src/configure.c
@@ -773,11 +773,11 @@
773 || strncmp(zMethod, "merge", n)==0 ){
774 Blob in;
775 int groupMask;
776 if( g.argc!=4 ) usage(mprintf("%s FILENAME",zMethod));
777 blob_read_from_file(&in, g.argv[3], ExtFILE);
778 db_begin_transaction();
779 if( zMethod[0]=='i' ){
780 groupMask = CONFIGSET_ALL | CONFIGSET_OVERWRITE;
781 }else{
782 groupMask = CONFIGSET_ALL;
783 }
@@ -821,11 +821,11 @@
821 char *zBackup;
822 if( g.argc!=4 ) usage("reset AREA");
823 mask = configure_name_to_mask(g.argv[3], 1);
824 zBackup = db_text(0,
825 "SELECT strftime('config-backup-%%Y%%m%%d%%H%%M%%f','now')");
826 db_begin_transaction();
827 export_config(mask, g.argv[3], 0, zBackup);
828 for(i=0; i<count(aConfig); i++){
829 const char *zName = aConfig[i].zName;
830 if( (aConfig[i].groupMask & mask)==0 ) continue;
831 if( zName[0]!='@' ){
832
--- src/configure.c
+++ src/configure.c
@@ -773,11 +773,11 @@
773 || strncmp(zMethod, "merge", n)==0 ){
774 Blob in;
775 int groupMask;
776 if( g.argc!=4 ) usage(mprintf("%s FILENAME",zMethod));
777 blob_read_from_file(&in, g.argv[3], ExtFILE);
778 db_begin_write();
779 if( zMethod[0]=='i' ){
780 groupMask = CONFIGSET_ALL | CONFIGSET_OVERWRITE;
781 }else{
782 groupMask = CONFIGSET_ALL;
783 }
@@ -821,11 +821,11 @@
821 char *zBackup;
822 if( g.argc!=4 ) usage("reset AREA");
823 mask = configure_name_to_mask(g.argv[3], 1);
824 zBackup = db_text(0,
825 "SELECT strftime('config-backup-%%Y%%m%%d%%H%%M%%f','now')");
826 db_begin_write();
827 export_config(mask, g.argv[3], 0, zBackup);
828 for(i=0; i<count(aConfig); i++){
829 const char *zName = aConfig[i].zName;
830 if( (aConfig[i].groupMask & mask)==0 ) continue;
831 if( zName[0]!='@' ){
832
+4 -4
--- src/content.c
+++ src/content.c
@@ -513,11 +513,11 @@
513513
int isDephantomize = 0;
514514
515515
assert( g.repositoryOpen );
516516
assert( pBlob!=0 );
517517
assert( srcId==0 || zUuid!=0 );
518
- db_begin_transaction();
518
+ db_begin_write();
519519
if( zUuid==0 ){
520520
assert( nBlob==0 );
521521
/* First check the auxiliary hash to see if there is already an artifact
522522
** that uses the auxiliary hash name */
523523
hname_hash(pBlob, 1, &hash);
@@ -659,11 +659,11 @@
659659
int content_new(const char *zUuid, int isPrivate){
660660
int rid;
661661
static Stmt s1, s2, s3;
662662
663663
assert( g.repositoryOpen );
664
- db_begin_transaction();
664
+ db_begin_write();
665665
if( uuid_is_shunned(zUuid) ){
666666
db_end_transaction(0);
667667
return 0;
668668
}
669669
db_static_prepare(&s1,
@@ -870,11 +870,11 @@
870870
Stmt s1, s2; /* Statements used to create the delta */
871871
blob_compress(&bestDelta, &bestDelta);
872872
db_prepare(&s1, "UPDATE blob SET content=:data WHERE rid=%d", rid);
873873
db_prepare(&s2, "REPLACE INTO delta(rid,srcid)VALUES(%d,%d)", rid, bestSrc);
874874
db_bind_blob(&s1, ":data", &bestDelta);
875
- db_begin_transaction();
875
+ db_begin_write();
876876
db_exec(&s1);
877877
db_exec(&s2);
878878
db_end_transaction(0);
879879
db_finalize(&s1);
880880
db_finalize(&s2);
@@ -1233,11 +1233,11 @@
12331233
"Continue? (y/N)? ", &x);
12341234
c = blob_str(&x)[0];
12351235
blob_reset(&x);
12361236
if( c!='y' && c!='Y' ) return;
12371237
db_find_and_open_repository(OPEN_ANY_SCHEMA, 0);
1238
- db_begin_transaction();
1238
+ db_begin_write();
12391239
db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid");
12401240
for(i=2; i<g.argc; i++){
12411241
int rid = atoi(g.argv[i]);
12421242
fossil_print("Erasing artifact %d (%s)\n",
12431243
rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid));
12441244
--- src/content.c
+++ src/content.c
@@ -513,11 +513,11 @@
513 int isDephantomize = 0;
514
515 assert( g.repositoryOpen );
516 assert( pBlob!=0 );
517 assert( srcId==0 || zUuid!=0 );
518 db_begin_transaction();
519 if( zUuid==0 ){
520 assert( nBlob==0 );
521 /* First check the auxiliary hash to see if there is already an artifact
522 ** that uses the auxiliary hash name */
523 hname_hash(pBlob, 1, &hash);
@@ -659,11 +659,11 @@
659 int content_new(const char *zUuid, int isPrivate){
660 int rid;
661 static Stmt s1, s2, s3;
662
663 assert( g.repositoryOpen );
664 db_begin_transaction();
665 if( uuid_is_shunned(zUuid) ){
666 db_end_transaction(0);
667 return 0;
668 }
669 db_static_prepare(&s1,
@@ -870,11 +870,11 @@
870 Stmt s1, s2; /* Statements used to create the delta */
871 blob_compress(&bestDelta, &bestDelta);
872 db_prepare(&s1, "UPDATE blob SET content=:data WHERE rid=%d", rid);
873 db_prepare(&s2, "REPLACE INTO delta(rid,srcid)VALUES(%d,%d)", rid, bestSrc);
874 db_bind_blob(&s1, ":data", &bestDelta);
875 db_begin_transaction();
876 db_exec(&s1);
877 db_exec(&s2);
878 db_end_transaction(0);
879 db_finalize(&s1);
880 db_finalize(&s2);
@@ -1233,11 +1233,11 @@
1233 "Continue? (y/N)? ", &x);
1234 c = blob_str(&x)[0];
1235 blob_reset(&x);
1236 if( c!='y' && c!='Y' ) return;
1237 db_find_and_open_repository(OPEN_ANY_SCHEMA, 0);
1238 db_begin_transaction();
1239 db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid");
1240 for(i=2; i<g.argc; i++){
1241 int rid = atoi(g.argv[i]);
1242 fossil_print("Erasing artifact %d (%s)\n",
1243 rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid));
1244
--- src/content.c
+++ src/content.c
@@ -513,11 +513,11 @@
513 int isDephantomize = 0;
514
515 assert( g.repositoryOpen );
516 assert( pBlob!=0 );
517 assert( srcId==0 || zUuid!=0 );
518 db_begin_write();
519 if( zUuid==0 ){
520 assert( nBlob==0 );
521 /* First check the auxiliary hash to see if there is already an artifact
522 ** that uses the auxiliary hash name */
523 hname_hash(pBlob, 1, &hash);
@@ -659,11 +659,11 @@
659 int content_new(const char *zUuid, int isPrivate){
660 int rid;
661 static Stmt s1, s2, s3;
662
663 assert( g.repositoryOpen );
664 db_begin_write();
665 if( uuid_is_shunned(zUuid) ){
666 db_end_transaction(0);
667 return 0;
668 }
669 db_static_prepare(&s1,
@@ -870,11 +870,11 @@
870 Stmt s1, s2; /* Statements used to create the delta */
871 blob_compress(&bestDelta, &bestDelta);
872 db_prepare(&s1, "UPDATE blob SET content=:data WHERE rid=%d", rid);
873 db_prepare(&s2, "REPLACE INTO delta(rid,srcid)VALUES(%d,%d)", rid, bestSrc);
874 db_bind_blob(&s1, ":data", &bestDelta);
875 db_begin_write();
876 db_exec(&s1);
877 db_exec(&s2);
878 db_end_transaction(0);
879 db_finalize(&s1);
880 db_finalize(&s2);
@@ -1233,11 +1233,11 @@
1233 "Continue? (y/N)? ", &x);
1234 c = blob_str(&x)[0];
1235 blob_reset(&x);
1236 if( c!='y' && c!='Y' ) return;
1237 db_find_and_open_repository(OPEN_ANY_SCHEMA, 0);
1238 db_begin_write();
1239 db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid");
1240 for(i=2; i<g.argc; i++){
1241 int rid = atoi(g.argv[i]);
1242 fossil_print("Erasing artifact %d (%s)\n",
1243 rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid));
1244
+3 -3
--- src/db.c
+++ src/db.c
@@ -2240,11 +2240,11 @@
22402240
22412241
db_create_repository(g.argv[2]);
22422242
db_open_repository(g.argv[2]);
22432243
db_open_config(0, 0);
22442244
if( zTemplate ) db_attach(zTemplate, "settingSrc");
2245
- db_begin_transaction();
2245
+ db_begin_write();
22462246
if( bUseSha1 ){
22472247
g.eHashPolicy = HPOLICY_SHA1;
22482248
db_set_int("hash-policy", HPOLICY_SHA1, 0);
22492249
}
22502250
if( zDate==0 ) zDate = "now";
@@ -2623,11 +2623,11 @@
26232623
z = db_text(0, "SELECT strftime(%Q,%Q,'unixepoch');", zFormat, z);
26242624
}
26252625
return z;
26262626
}
26272627
void db_set(const char *zName, const char *zValue, int globalFlag){
2628
- db_begin_transaction();
2628
+ db_begin_write();
26292629
if( globalFlag ){
26302630
db_swap_connections();
26312631
db_multi_exec("REPLACE INTO global_config(name,value) VALUES(%Q,%Q)",
26322632
zName, zValue);
26332633
db_swap_connections();
@@ -2639,11 +2639,11 @@
26392639
db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
26402640
}
26412641
db_end_transaction(0);
26422642
}
26432643
void db_unset(const char *zName, int globalFlag){
2644
- db_begin_transaction();
2644
+ db_begin_write();
26452645
if( globalFlag ){
26462646
db_swap_connections();
26472647
db_multi_exec("DELETE FROM global_config WHERE name=%Q", zName);
26482648
db_swap_connections();
26492649
}else{
26502650
--- src/db.c
+++ src/db.c
@@ -2240,11 +2240,11 @@
2240
2241 db_create_repository(g.argv[2]);
2242 db_open_repository(g.argv[2]);
2243 db_open_config(0, 0);
2244 if( zTemplate ) db_attach(zTemplate, "settingSrc");
2245 db_begin_transaction();
2246 if( bUseSha1 ){
2247 g.eHashPolicy = HPOLICY_SHA1;
2248 db_set_int("hash-policy", HPOLICY_SHA1, 0);
2249 }
2250 if( zDate==0 ) zDate = "now";
@@ -2623,11 +2623,11 @@
2623 z = db_text(0, "SELECT strftime(%Q,%Q,'unixepoch');", zFormat, z);
2624 }
2625 return z;
2626 }
2627 void db_set(const char *zName, const char *zValue, int globalFlag){
2628 db_begin_transaction();
2629 if( globalFlag ){
2630 db_swap_connections();
2631 db_multi_exec("REPLACE INTO global_config(name,value) VALUES(%Q,%Q)",
2632 zName, zValue);
2633 db_swap_connections();
@@ -2639,11 +2639,11 @@
2639 db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
2640 }
2641 db_end_transaction(0);
2642 }
2643 void db_unset(const char *zName, int globalFlag){
2644 db_begin_transaction();
2645 if( globalFlag ){
2646 db_swap_connections();
2647 db_multi_exec("DELETE FROM global_config WHERE name=%Q", zName);
2648 db_swap_connections();
2649 }else{
2650
--- src/db.c
+++ src/db.c
@@ -2240,11 +2240,11 @@
2240
2241 db_create_repository(g.argv[2]);
2242 db_open_repository(g.argv[2]);
2243 db_open_config(0, 0);
2244 if( zTemplate ) db_attach(zTemplate, "settingSrc");
2245 db_begin_write();
2246 if( bUseSha1 ){
2247 g.eHashPolicy = HPOLICY_SHA1;
2248 db_set_int("hash-policy", HPOLICY_SHA1, 0);
2249 }
2250 if( zDate==0 ) zDate = "now";
@@ -2623,11 +2623,11 @@
2623 z = db_text(0, "SELECT strftime(%Q,%Q,'unixepoch');", zFormat, z);
2624 }
2625 return z;
2626 }
2627 void db_set(const char *zName, const char *zValue, int globalFlag){
2628 db_begin_write();
2629 if( globalFlag ){
2630 db_swap_connections();
2631 db_multi_exec("REPLACE INTO global_config(name,value) VALUES(%Q,%Q)",
2632 zName, zValue);
2633 db_swap_connections();
@@ -2639,11 +2639,11 @@
2639 db_multi_exec("DELETE FROM config WHERE name=%Q", zName);
2640 }
2641 db_end_transaction(0);
2642 }
2643 void db_unset(const char *zName, int globalFlag){
2644 db_begin_write();
2645 if( globalFlag ){
2646 db_swap_connections();
2647 db_multi_exec("DELETE FROM global_config WHERE name=%Q", zName);
2648 db_swap_connections();
2649 }else{
2650
+1 -1
--- src/diff.c
+++ src/diff.c
@@ -2235,11 +2235,11 @@
22352235
}else{
22362236
/* Default limit is as much as we can do in 1.000 seconds */
22372237
iLimit = 0;
22382238
mxTime = current_time_in_milliseconds()+1000;
22392239
}
2240
- db_begin_transaction();
2240
+ db_begin_write();
22412241
22422242
/* Get the artifact ID for the check-in begin analyzed */
22432243
if( zRevision ){
22442244
cid = name_to_typed_rid(zRevision, "ci");
22452245
}else{
22462246
--- src/diff.c
+++ src/diff.c
@@ -2235,11 +2235,11 @@
2235 }else{
2236 /* Default limit is as much as we can do in 1.000 seconds */
2237 iLimit = 0;
2238 mxTime = current_time_in_milliseconds()+1000;
2239 }
2240 db_begin_transaction();
2241
2242 /* Get the artifact ID for the check-in begin analyzed */
2243 if( zRevision ){
2244 cid = name_to_typed_rid(zRevision, "ci");
2245 }else{
2246
--- src/diff.c
+++ src/diff.c
@@ -2235,11 +2235,11 @@
2235 }else{
2236 /* Default limit is as much as we can do in 1.000 seconds */
2237 iLimit = 0;
2238 mxTime = current_time_in_milliseconds()+1000;
2239 }
2240 db_begin_write();
2241
2242 /* Get the artifact ID for the check-in begin analyzed */
2243 if( zRevision ){
2244 cid = name_to_typed_rid(zRevision, "ci");
2245 }else{
2246
+1 -1
--- src/event.c
+++ src/event.c
@@ -255,11 +255,11 @@
255255
char *zDate;
256256
Blob cksum;
257257
int nrid, n;
258258
259259
blob_init(&event, 0, 0);
260
- db_begin_transaction();
260
+ db_begin_write();
261261
while( fossil_isspace(zComment[0]) ) zComment++;
262262
n = strlen(zComment);
263263
while( n>0 && fossil_isspace(zComment[n-1]) ){ n--; }
264264
if( n>0 ){
265265
blob_appendf(&event, "C %#F\n", n, zComment);
266266
--- src/event.c
+++ src/event.c
@@ -255,11 +255,11 @@
255 char *zDate;
256 Blob cksum;
257 int nrid, n;
258
259 blob_init(&event, 0, 0);
260 db_begin_transaction();
261 while( fossil_isspace(zComment[0]) ) zComment++;
262 n = strlen(zComment);
263 while( n>0 && fossil_isspace(zComment[n-1]) ){ n--; }
264 if( n>0 ){
265 blob_appendf(&event, "C %#F\n", n, zComment);
266
--- src/event.c
+++ src/event.c
@@ -255,11 +255,11 @@
255 char *zDate;
256 Blob cksum;
257 int nrid, n;
258
259 blob_init(&event, 0, 0);
260 db_begin_write();
261 while( fossil_isspace(zComment[0]) ) zComment++;
262 n = strlen(zComment);
263 while( n>0 && fossil_isspace(zComment[n-1]) ){ n--; }
264 if( n>0 ){
265 blob_appendf(&event, "C %#F\n", n, zComment);
266
+2 -2
--- src/import.c
+++ src/import.c
@@ -1754,11 +1754,11 @@
17541754
db_create_repository(g.argv[2]);
17551755
}
17561756
db_open_repository(g.argv[2]);
17571757
db_open_config(0, 0);
17581758
1759
- db_begin_transaction();
1759
+ db_begin_write();
17601760
if( !incrFlag ){
17611761
db_initial_setup(0, 0, 0);
17621762
db_set("main-branch", gimport.zTrunkName, 0);
17631763
}
17641764
@@ -1900,11 +1900,11 @@
19001900
db_end_transaction(0);
19011901
fossil_print(" \r");
19021902
if( omitRebuild ){
19031903
omitVacuum = 1;
19041904
}else{
1905
- db_begin_transaction();
1905
+ db_begin_write();
19061906
fossil_print("Rebuilding repository meta-data...\n");
19071907
rebuild_db(0, 1, !incrFlag);
19081908
verify_cancel();
19091909
db_end_transaction(0);
19101910
}
19111911
--- src/import.c
+++ src/import.c
@@ -1754,11 +1754,11 @@
1754 db_create_repository(g.argv[2]);
1755 }
1756 db_open_repository(g.argv[2]);
1757 db_open_config(0, 0);
1758
1759 db_begin_transaction();
1760 if( !incrFlag ){
1761 db_initial_setup(0, 0, 0);
1762 db_set("main-branch", gimport.zTrunkName, 0);
1763 }
1764
@@ -1900,11 +1900,11 @@
1900 db_end_transaction(0);
1901 fossil_print(" \r");
1902 if( omitRebuild ){
1903 omitVacuum = 1;
1904 }else{
1905 db_begin_transaction();
1906 fossil_print("Rebuilding repository meta-data...\n");
1907 rebuild_db(0, 1, !incrFlag);
1908 verify_cancel();
1909 db_end_transaction(0);
1910 }
1911
--- src/import.c
+++ src/import.c
@@ -1754,11 +1754,11 @@
1754 db_create_repository(g.argv[2]);
1755 }
1756 db_open_repository(g.argv[2]);
1757 db_open_config(0, 0);
1758
1759 db_begin_write();
1760 if( !incrFlag ){
1761 db_initial_setup(0, 0, 0);
1762 db_set("main-branch", gimport.zTrunkName, 0);
1763 }
1764
@@ -1900,11 +1900,11 @@
1900 db_end_transaction(0);
1901 fossil_print(" \r");
1902 if( omitRebuild ){
1903 omitVacuum = 1;
1904 }else{
1905 db_begin_write();
1906 fossil_print("Rebuilding repository meta-data...\n");
1907 rebuild_db(0, 1, !incrFlag);
1908 verify_cancel();
1909 db_end_transaction(0);
1910 }
1911
+1 -1
--- src/info.c
+++ src/info.c
@@ -2649,11 +2649,11 @@
26492649
if( fDryRun ){
26502650
assert( g.isHTTP==0 ); /* Only print control artifact in console mode. */
26512651
fossil_print("%s", blob_str(ctrl));
26522652
blob_reset(ctrl);
26532653
}else{
2654
- db_begin_transaction();
2654
+ db_begin_write();
26552655
g.markPrivate = content_is_private(rid);
26562656
nrid = content_put(ctrl);
26572657
manifest_crosslink(nrid, ctrl, MC_PERMIT_HOOKS);
26582658
db_end_transaction(0);
26592659
}
26602660
--- src/info.c
+++ src/info.c
@@ -2649,11 +2649,11 @@
2649 if( fDryRun ){
2650 assert( g.isHTTP==0 ); /* Only print control artifact in console mode. */
2651 fossil_print("%s", blob_str(ctrl));
2652 blob_reset(ctrl);
2653 }else{
2654 db_begin_transaction();
2655 g.markPrivate = content_is_private(rid);
2656 nrid = content_put(ctrl);
2657 manifest_crosslink(nrid, ctrl, MC_PERMIT_HOOKS);
2658 db_end_transaction(0);
2659 }
2660
--- src/info.c
+++ src/info.c
@@ -2649,11 +2649,11 @@
2649 if( fDryRun ){
2650 assert( g.isHTTP==0 ); /* Only print control artifact in console mode. */
2651 fossil_print("%s", blob_str(ctrl));
2652 blob_reset(ctrl);
2653 }else{
2654 db_begin_write();
2655 g.markPrivate = content_is_private(rid);
2656 nrid = content_put(ctrl);
2657 manifest_crosslink(nrid, ctrl, MC_PERMIT_HOOKS);
2658 db_end_transaction(0);
2659 }
2660
+1 -1
--- src/json.c
+++ src/json.c
@@ -2103,11 +2103,11 @@
21032103
longer than the client timeout, which will cause it to fail (but
21042104
it's sqlite3, so it'll fail gracefully).
21052105
*/
21062106
db_close(1);
21072107
db_open_repository(g.zRepositoryName);
2108
- db_begin_transaction();
2108
+ db_begin_write();
21092109
rebuild_db(0, 0, 0);
21102110
db_end_transaction(0);
21112111
return NULL;
21122112
}
21132113
}
21142114
--- src/json.c
+++ src/json.c
@@ -2103,11 +2103,11 @@
2103 longer than the client timeout, which will cause it to fail (but
2104 it's sqlite3, so it'll fail gracefully).
2105 */
2106 db_close(1);
2107 db_open_repository(g.zRepositoryName);
2108 db_begin_transaction();
2109 rebuild_db(0, 0, 0);
2110 db_end_transaction(0);
2111 return NULL;
2112 }
2113 }
2114
--- src/json.c
+++ src/json.c
@@ -2103,11 +2103,11 @@
2103 longer than the client timeout, which will cause it to fail (but
2104 it's sqlite3, so it'll fail gracefully).
2105 */
2106 db_close(1);
2107 db_open_repository(g.zRepositoryName);
2108 db_begin_write();
2109 rebuild_db(0, 0, 0);
2110 db_end_transaction(0);
2111 return NULL;
2112 }
2113 }
2114
--- src/json_branch.c
+++ src/json_branch.c
@@ -212,11 +212,11 @@
212212
zBranch)!=0 ){
213213
zOpt->rcErrMsg = "Branch already exists.";
214214
return FSL_JSON_E_RESOURCE_ALREADY_EXISTS;
215215
}
216216
217
- db_begin_transaction();
217
+ db_begin_write();
218218
rootid = name_to_typed_rid(zBasis, "ci");
219219
if( rootid==0 ){
220220
zOpt->rcErrMsg = "Basis branch not found.";
221221
return FSL_JSON_E_RESOURCE_NOT_FOUND;
222222
}
223223
--- src/json_branch.c
+++ src/json_branch.c
@@ -212,11 +212,11 @@
212 zBranch)!=0 ){
213 zOpt->rcErrMsg = "Branch already exists.";
214 return FSL_JSON_E_RESOURCE_ALREADY_EXISTS;
215 }
216
217 db_begin_transaction();
218 rootid = name_to_typed_rid(zBasis, "ci");
219 if( rootid==0 ){
220 zOpt->rcErrMsg = "Basis branch not found.";
221 return FSL_JSON_E_RESOURCE_NOT_FOUND;
222 }
223
--- src/json_branch.c
+++ src/json_branch.c
@@ -212,11 +212,11 @@
212 zBranch)!=0 ){
213 zOpt->rcErrMsg = "Branch already exists.";
214 return FSL_JSON_E_RESOURCE_ALREADY_EXISTS;
215 }
216
217 db_begin_write();
218 rootid = name_to_typed_rid(zBasis, "ci");
219 if( rootid==0 ){
220 zOpt->rcErrMsg = "Basis branch not found.";
221 return FSL_JSON_E_RESOURCE_NOT_FOUND;
222 }
223
+2 -2
--- src/json_tag.c
+++ src/json_tag.c
@@ -98,11 +98,11 @@
9898
zValue = json_find_option_cstr("value",NULL,NULL);
9999
if(!zValue && !fossil_has_json()){
100100
zValue = json_command_arg(5);
101101
}
102102
103
- db_begin_transaction();
103
+ db_begin_write();
104104
tag_add_artifact(zPrefix, zName, zCheckin, zValue,
105105
1+fPropagate,NULL/*DateOvrd*/,NULL/*UserOvrd*/);
106106
db_end_transaction(0);
107107
108108
payV = cson_value_new_object();
@@ -178,11 +178,11 @@
178178
}
179179
}
180180
/* FIXME?: verify that the tag is currently active. We have no real
181181
error case unless we do that.
182182
*/
183
- db_begin_transaction();
183
+ db_begin_write();
184184
tag_add_artifact(zPrefix, zName, zCheckin, NULL, 0, 0, 0);
185185
db_end_transaction(0);
186186
return NULL;
187187
}
188188
189189
--- src/json_tag.c
+++ src/json_tag.c
@@ -98,11 +98,11 @@
98 zValue = json_find_option_cstr("value",NULL,NULL);
99 if(!zValue && !fossil_has_json()){
100 zValue = json_command_arg(5);
101 }
102
103 db_begin_transaction();
104 tag_add_artifact(zPrefix, zName, zCheckin, zValue,
105 1+fPropagate,NULL/*DateOvrd*/,NULL/*UserOvrd*/);
106 db_end_transaction(0);
107
108 payV = cson_value_new_object();
@@ -178,11 +178,11 @@
178 }
179 }
180 /* FIXME?: verify that the tag is currently active. We have no real
181 error case unless we do that.
182 */
183 db_begin_transaction();
184 tag_add_artifact(zPrefix, zName, zCheckin, NULL, 0, 0, 0);
185 db_end_transaction(0);
186 return NULL;
187 }
188
189
--- src/json_tag.c
+++ src/json_tag.c
@@ -98,11 +98,11 @@
98 zValue = json_find_option_cstr("value",NULL,NULL);
99 if(!zValue && !fossil_has_json()){
100 zValue = json_command_arg(5);
101 }
102
103 db_begin_write();
104 tag_add_artifact(zPrefix, zName, zCheckin, zValue,
105 1+fPropagate,NULL/*DateOvrd*/,NULL/*UserOvrd*/);
106 db_end_transaction(0);
107
108 payV = cson_value_new_object();
@@ -178,11 +178,11 @@
178 }
179 }
180 /* FIXME?: verify that the tag is currently active. We have no real
181 error case unless we do that.
182 */
183 db_begin_write();
184 tag_add_artifact(zPrefix, zName, zCheckin, NULL, 0, 0, 0);
185 db_end_transaction(0);
186 return NULL;
187 }
188
189
+1 -1
--- src/login.c
+++ src/login.c
@@ -1903,11 +1903,11 @@
19031903
/* Create all the necessary CONFIG table entries on both the
19041904
** other repository and on our own repository.
19051905
*/
19061906
zSelfProjCode = abbreviated_project_code(zSelfProjCode);
19071907
zOtherProjCode = abbreviated_project_code(zOtherProjCode);
1908
- db_begin_transaction();
1908
+ db_begin_write();
19091909
db_multi_exec(
19101910
"DELETE FROM \"%w\".config WHERE name GLOB 'peer-*';"
19111911
"INSERT INTO \"%w\".config(name,value) VALUES('peer-repo-%q',%Q);"
19121912
"INSERT INTO \"%w\".config(name,value) "
19131913
" SELECT 'peer-name-%q', value FROM other.config"
19141914
--- src/login.c
+++ src/login.c
@@ -1903,11 +1903,11 @@
1903 /* Create all the necessary CONFIG table entries on both the
1904 ** other repository and on our own repository.
1905 */
1906 zSelfProjCode = abbreviated_project_code(zSelfProjCode);
1907 zOtherProjCode = abbreviated_project_code(zOtherProjCode);
1908 db_begin_transaction();
1909 db_multi_exec(
1910 "DELETE FROM \"%w\".config WHERE name GLOB 'peer-*';"
1911 "INSERT INTO \"%w\".config(name,value) VALUES('peer-repo-%q',%Q);"
1912 "INSERT INTO \"%w\".config(name,value) "
1913 " SELECT 'peer-name-%q', value FROM other.config"
1914
--- src/login.c
+++ src/login.c
@@ -1903,11 +1903,11 @@
1903 /* Create all the necessary CONFIG table entries on both the
1904 ** other repository and on our own repository.
1905 */
1906 zSelfProjCode = abbreviated_project_code(zSelfProjCode);
1907 zOtherProjCode = abbreviated_project_code(zOtherProjCode);
1908 db_begin_write();
1909 db_multi_exec(
1910 "DELETE FROM \"%w\".config WHERE name GLOB 'peer-*';"
1911 "INSERT INTO \"%w\".config(name,value) VALUES('peer-repo-%q',%Q);"
1912 "INSERT INTO \"%w\".config(name,value) "
1913 " SELECT 'peer-name-%q', value FROM other.config"
1914
+1 -1
--- src/main.c
+++ src/main.c
@@ -2138,11 +2138,11 @@
21382138
}else{
21392139
if( isDir==0 && fCreate ){
21402140
const char *zPassword;
21412141
db_create_repository(zRepo);
21422142
db_open_repository(zRepo);
2143
- db_begin_transaction();
2143
+ db_begin_write();
21442144
g.eHashPolicy = HPOLICY_AUTO;
21452145
db_set_int("hash-policy", HPOLICY_AUTO, 0);
21462146
db_initial_setup(0, "now", g.zLogin);
21472147
db_end_transaction(0);
21482148
fossil_print("project-id: %s\n", db_get("project-code", 0));
21492149
--- src/main.c
+++ src/main.c
@@ -2138,11 +2138,11 @@
2138 }else{
2139 if( isDir==0 && fCreate ){
2140 const char *zPassword;
2141 db_create_repository(zRepo);
2142 db_open_repository(zRepo);
2143 db_begin_transaction();
2144 g.eHashPolicy = HPOLICY_AUTO;
2145 db_set_int("hash-policy", HPOLICY_AUTO, 0);
2146 db_initial_setup(0, "now", g.zLogin);
2147 db_end_transaction(0);
2148 fossil_print("project-id: %s\n", db_get("project-code", 0));
2149
--- src/main.c
+++ src/main.c
@@ -2138,11 +2138,11 @@
2138 }else{
2139 if( isDir==0 && fCreate ){
2140 const char *zPassword;
2141 db_create_repository(zRepo);
2142 db_open_repository(zRepo);
2143 db_begin_write();
2144 g.eHashPolicy = HPOLICY_AUTO;
2145 db_set_int("hash-policy", HPOLICY_AUTO, 0);
2146 db_initial_setup(0, "now", g.zLogin);
2147 db_end_transaction(0);
2148 fossil_print("project-id: %s\n", db_get("project-code", 0));
2149
+2 -2
--- src/manifest.c
+++ src/manifest.c
@@ -1806,11 +1806,11 @@
18061806
** by the call to manifest_crosslink_end().
18071807
*/
18081808
void manifest_crosslink_begin(void){
18091809
assert( manifest_crosslink_busy==0 );
18101810
manifest_crosslink_busy = 1;
1811
- db_begin_transaction();
1811
+ db_begin_write();
18121812
db_multi_exec(
18131813
"CREATE TEMP TABLE pending_tkt(uuid TEXT UNIQUE);"
18141814
"CREATE TEMP TABLE time_fudge("
18151815
" mid INTEGER PRIMARY KEY," /* The rid of a manifest */
18161816
" m1 REAL," /* The timestamp on mid */
@@ -2099,11 +2099,11 @@
20992099
fossil_error(1, "cannot fetch baseline for manifest [%S]",
21002100
db_text(0, "SELECT uuid FROM blob WHERE rid=%d",rid));
21012101
}
21022102
return 0;
21032103
}
2104
- db_begin_transaction();
2104
+ db_begin_write();
21052105
if( p->type==CFTYPE_MANIFEST ){
21062106
if( permitHooks ){
21072107
zScript = xfer_commit_code();
21082108
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
21092109
}
21102110
--- src/manifest.c
+++ src/manifest.c
@@ -1806,11 +1806,11 @@
1806 ** by the call to manifest_crosslink_end().
1807 */
1808 void manifest_crosslink_begin(void){
1809 assert( manifest_crosslink_busy==0 );
1810 manifest_crosslink_busy = 1;
1811 db_begin_transaction();
1812 db_multi_exec(
1813 "CREATE TEMP TABLE pending_tkt(uuid TEXT UNIQUE);"
1814 "CREATE TEMP TABLE time_fudge("
1815 " mid INTEGER PRIMARY KEY," /* The rid of a manifest */
1816 " m1 REAL," /* The timestamp on mid */
@@ -2099,11 +2099,11 @@
2099 fossil_error(1, "cannot fetch baseline for manifest [%S]",
2100 db_text(0, "SELECT uuid FROM blob WHERE rid=%d",rid));
2101 }
2102 return 0;
2103 }
2104 db_begin_transaction();
2105 if( p->type==CFTYPE_MANIFEST ){
2106 if( permitHooks ){
2107 zScript = xfer_commit_code();
2108 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
2109 }
2110
--- src/manifest.c
+++ src/manifest.c
@@ -1806,11 +1806,11 @@
1806 ** by the call to manifest_crosslink_end().
1807 */
1808 void manifest_crosslink_begin(void){
1809 assert( manifest_crosslink_busy==0 );
1810 manifest_crosslink_busy = 1;
1811 db_begin_write();
1812 db_multi_exec(
1813 "CREATE TEMP TABLE pending_tkt(uuid TEXT UNIQUE);"
1814 "CREATE TEMP TABLE time_fudge("
1815 " mid INTEGER PRIMARY KEY," /* The rid of a manifest */
1816 " m1 REAL," /* The timestamp on mid */
@@ -2099,11 +2099,11 @@
2099 fossil_error(1, "cannot fetch baseline for manifest [%S]",
2100 db_text(0, "SELECT uuid FROM blob WHERE rid=%d",rid));
2101 }
2102 return 0;
2103 }
2104 db_begin_write();
2105 if( p->type==CFTYPE_MANIFEST ){
2106 if( permitHooks ){
2107 zScript = xfer_commit_code();
2108 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
2109 }
2110
+1 -1
--- src/merge.c
+++ src/merge.c
@@ -396,11 +396,11 @@
396396
print_checkin_description(mid, 12,
397397
integrateFlag ? "integrate:" : "merge-from:");
398398
print_checkin_description(pid, 12, "baseline:");
399399
}
400400
vfile_check_signature(vid, CKSIG_ENOTFILE);
401
- db_begin_transaction();
401
+ db_begin_write();
402402
if( !dryRunFlag ) undo_begin();
403403
if( load_vfile_from_rid(mid) && !forceMissingFlag ){
404404
fossil_fatal("missing content, unable to merge");
405405
}
406406
if( load_vfile_from_rid(pid) && !forceMissingFlag ){
407407
--- src/merge.c
+++ src/merge.c
@@ -396,11 +396,11 @@
396 print_checkin_description(mid, 12,
397 integrateFlag ? "integrate:" : "merge-from:");
398 print_checkin_description(pid, 12, "baseline:");
399 }
400 vfile_check_signature(vid, CKSIG_ENOTFILE);
401 db_begin_transaction();
402 if( !dryRunFlag ) undo_begin();
403 if( load_vfile_from_rid(mid) && !forceMissingFlag ){
404 fossil_fatal("missing content, unable to merge");
405 }
406 if( load_vfile_from_rid(pid) && !forceMissingFlag ){
407
--- src/merge.c
+++ src/merge.c
@@ -396,11 +396,11 @@
396 print_checkin_description(mid, 12,
397 integrateFlag ? "integrate:" : "merge-from:");
398 print_checkin_description(pid, 12, "baseline:");
399 }
400 vfile_check_signature(vid, CKSIG_ENOTFILE);
401 db_begin_write();
402 if( !dryRunFlag ) undo_begin();
403 if( load_vfile_from_rid(mid) && !forceMissingFlag ){
404 fossil_fatal("missing content, unable to merge");
405 }
406 if( load_vfile_from_rid(pid) && !forceMissingFlag ){
407
+2 -2
--- src/moderate.c
+++ src/moderate.c
@@ -107,11 +107,11 @@
107107
Stmt q;
108108
char *zTktid;
109109
int attachRid = 0;
110110
int rid;
111111
if( !moderation_pending(objid) ) return;
112
- db_begin_transaction();
112
+ db_begin_write();
113113
rid = objid;
114114
while( rid && content_is_private(rid) ){
115115
db_prepare(&q, "SELECT rid FROM delta WHERE srcid=%d", rid);
116116
while( db_step(&q)==SQLITE_ROW ){
117117
int ridUser = db_column_int(&q, 0);
@@ -149,11 +149,11 @@
149149
/*
150150
** Approve an object held for moderation.
151151
*/
152152
void moderation_approve(int rid){
153153
if( !moderation_pending(rid) ) return;
154
- db_begin_transaction();
154
+ db_begin_write();
155155
db_multi_exec(
156156
"DELETE FROM private WHERE rid=%d;"
157157
"INSERT OR IGNORE INTO unclustered VALUES(%d);"
158158
"INSERT OR IGNORE INTO unsent VALUES(%d);",
159159
rid, rid, rid
160160
--- src/moderate.c
+++ src/moderate.c
@@ -107,11 +107,11 @@
107 Stmt q;
108 char *zTktid;
109 int attachRid = 0;
110 int rid;
111 if( !moderation_pending(objid) ) return;
112 db_begin_transaction();
113 rid = objid;
114 while( rid && content_is_private(rid) ){
115 db_prepare(&q, "SELECT rid FROM delta WHERE srcid=%d", rid);
116 while( db_step(&q)==SQLITE_ROW ){
117 int ridUser = db_column_int(&q, 0);
@@ -149,11 +149,11 @@
149 /*
150 ** Approve an object held for moderation.
151 */
152 void moderation_approve(int rid){
153 if( !moderation_pending(rid) ) return;
154 db_begin_transaction();
155 db_multi_exec(
156 "DELETE FROM private WHERE rid=%d;"
157 "INSERT OR IGNORE INTO unclustered VALUES(%d);"
158 "INSERT OR IGNORE INTO unsent VALUES(%d);",
159 rid, rid, rid
160
--- src/moderate.c
+++ src/moderate.c
@@ -107,11 +107,11 @@
107 Stmt q;
108 char *zTktid;
109 int attachRid = 0;
110 int rid;
111 if( !moderation_pending(objid) ) return;
112 db_begin_write();
113 rid = objid;
114 while( rid && content_is_private(rid) ){
115 db_prepare(&q, "SELECT rid FROM delta WHERE srcid=%d", rid);
116 while( db_step(&q)==SQLITE_ROW ){
117 int ridUser = db_column_int(&q, 0);
@@ -149,11 +149,11 @@
149 /*
150 ** Approve an object held for moderation.
151 */
152 void moderation_approve(int rid){
153 if( !moderation_pending(rid) ) return;
154 db_begin_write();
155 db_multi_exec(
156 "DELETE FROM private WHERE rid=%d;"
157 "INSERT OR IGNORE INTO unclustered VALUES(%d);"
158 "INSERT OR IGNORE INTO unsent VALUES(%d);",
159 rid, rid, rid
160
+1 -1
--- src/publish.c
+++ src/publish.c
@@ -77,11 +77,11 @@
7777
int i;
7878
7979
db_find_and_open_repository(0,0);
8080
verify_all_options();
8181
if( g.argc<3 ) usage("?--only? TAGS...");
82
- db_begin_transaction();
82
+ db_begin_write();
8383
db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY);");
8484
for(i=2; i<g.argc; i++){
8585
int rid = name_to_rid(g.argv[i]);
8686
if( db_exists("SELECT 1 FROM tagxref"
8787
" WHERE rid=%d AND tagid=%d"
8888
--- src/publish.c
+++ src/publish.c
@@ -77,11 +77,11 @@
77 int i;
78
79 db_find_and_open_repository(0,0);
80 verify_all_options();
81 if( g.argc<3 ) usage("?--only? TAGS...");
82 db_begin_transaction();
83 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY);");
84 for(i=2; i<g.argc; i++){
85 int rid = name_to_rid(g.argv[i]);
86 if( db_exists("SELECT 1 FROM tagxref"
87 " WHERE rid=%d AND tagid=%d"
88
--- src/publish.c
+++ src/publish.c
@@ -77,11 +77,11 @@
77 int i;
78
79 db_find_and_open_repository(0,0);
80 verify_all_options();
81 if( g.argc<3 ) usage("?--only? TAGS...");
82 db_begin_write();
83 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY);");
84 for(i=2; i<g.argc; i++){
85 int rid = name_to_rid(g.argv[i]);
86 if( db_exists("SELECT 1 FROM tagxref"
87 " WHERE rid=%d AND tagid=%d"
88
+7 -7
--- src/purge.c
+++ src/purge.c
@@ -103,11 +103,11 @@
103103
int peid = 0; /* New purgeevent ID */
104104
Stmt q; /* General-use prepared statement */
105105
char *z;
106106
107107
assert( g.repositoryOpen ); /* Main database must already be open */
108
- db_begin_transaction();
108
+ db_begin_write();
109109
z = sqlite3_mprintf("IN \"%w\"", zTab);
110110
describe_artifacts(z);
111111
sqlite3_free(z);
112112
describe_artifacts_to_stdout(0, 0);
113113
@@ -260,11 +260,11 @@
260260
** The "fossil publish" command with the (undocumented) --test and
261261
** --exclusive options can be used for interactiving testing of this
262262
** function.
263263
*/
264264
void find_checkin_associates(const char *zTab, int bExclusive){
265
- db_begin_transaction();
265
+ db_begin_write();
266266
267267
/* Compute the set of files that need to be added to zTab */
268268
db_multi_exec("CREATE TEMP TABLE \"%w_files\"(fid INTEGER PRIMARY KEY)",zTab);
269269
db_multi_exec(
270270
"INSERT OR IGNORE INTO \"%w_files\"(fid)"
@@ -535,11 +535,11 @@
535535
if( find_option("explain",0,0)!=0 || find_option("dry-run",0,0)!=0 ){
536536
purgeFlags |= PURGE_EXPLAIN_ONLY;
537537
}
538538
if( strncmp(zSubcmd, "artifacts", n)==0 ){
539539
verify_all_options();
540
- db_begin_transaction();
540
+ db_begin_write();
541541
db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
542542
for(i=3; i<g.argc; i++){
543543
int r = name_to_typed_rid(g.argv[i], "");
544544
db_multi_exec("INSERT OR IGNORE INTO ok(rid) VALUES(%d);", r);
545545
}
@@ -562,11 +562,11 @@
562562
int vid;
563563
if( find_option("explain",0,0)!=0 || find_option("dry-run",0,0)!=0 ){
564564
purgeFlags |= PURGE_EXPLAIN_ONLY;
565565
}
566566
verify_all_options();
567
- db_begin_transaction();
567
+ db_begin_write();
568568
if( g.argc<=3 ) usage("checkins TAGS... [OPTIONS]");
569569
db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
570570
for(i=3; i<g.argc; i++){
571571
int r = name_to_typed_rid(g.argv[i], "br");
572572
compute_descendants(r, 1000000000);
@@ -578,11 +578,11 @@
578578
find_checkin_associates("ok", 1);
579579
purge_artifact_list("ok", "", purgeFlags);
580580
db_end_transaction(0);
581581
}else if( strncmp(zSubcmd, "files", n)==0 ){
582582
verify_all_options();
583
- db_begin_transaction();
583
+ db_begin_write();
584584
db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
585585
for(i=3; i<g.argc; i++){
586586
db_multi_exec(
587587
"INSERT OR IGNORE INTO ok(rid) "
588588
" SELECT fid FROM mlink, filename"
@@ -618,11 +618,11 @@
618618
cReply = blob_str(&ans)[0];
619619
if( cReply!='y' && cReply!='Y' ){
620620
fossil_exit(1);
621621
}
622622
}
623
- db_begin_transaction();
623
+ db_begin_write();
624624
for(i=3; i<g.argc; i++){
625625
int peid = atoi(g.argv[i]);
626626
if( !db_exists("SELECT 1 FROM purgeevent WHERE peid=%d",peid) ){
627627
fossil_fatal("no such purge event: %s", g.argv[i]);
628628
}
@@ -638,11 +638,11 @@
638638
}else if( strncmp(zSubcmd, "undo", n)==0 ){
639639
int peid;
640640
if( g.argc!=4 ) usage("undo ID");
641641
peid = atoi(g.argv[3]);
642642
if( (purgeFlags & PURGE_EXPLAIN_ONLY)==0 ){
643
- db_begin_transaction();
643
+ db_begin_write();
644644
db_multi_exec(
645645
"CREATE TEMP TABLE ix("
646646
" piid INTEGER PRIMARY KEY,"
647647
" srcid INTEGER"
648648
");"
649649
--- src/purge.c
+++ src/purge.c
@@ -103,11 +103,11 @@
103 int peid = 0; /* New purgeevent ID */
104 Stmt q; /* General-use prepared statement */
105 char *z;
106
107 assert( g.repositoryOpen ); /* Main database must already be open */
108 db_begin_transaction();
109 z = sqlite3_mprintf("IN \"%w\"", zTab);
110 describe_artifacts(z);
111 sqlite3_free(z);
112 describe_artifacts_to_stdout(0, 0);
113
@@ -260,11 +260,11 @@
260 ** The "fossil publish" command with the (undocumented) --test and
261 ** --exclusive options can be used for interactiving testing of this
262 ** function.
263 */
264 void find_checkin_associates(const char *zTab, int bExclusive){
265 db_begin_transaction();
266
267 /* Compute the set of files that need to be added to zTab */
268 db_multi_exec("CREATE TEMP TABLE \"%w_files\"(fid INTEGER PRIMARY KEY)",zTab);
269 db_multi_exec(
270 "INSERT OR IGNORE INTO \"%w_files\"(fid)"
@@ -535,11 +535,11 @@
535 if( find_option("explain",0,0)!=0 || find_option("dry-run",0,0)!=0 ){
536 purgeFlags |= PURGE_EXPLAIN_ONLY;
537 }
538 if( strncmp(zSubcmd, "artifacts", n)==0 ){
539 verify_all_options();
540 db_begin_transaction();
541 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
542 for(i=3; i<g.argc; i++){
543 int r = name_to_typed_rid(g.argv[i], "");
544 db_multi_exec("INSERT OR IGNORE INTO ok(rid) VALUES(%d);", r);
545 }
@@ -562,11 +562,11 @@
562 int vid;
563 if( find_option("explain",0,0)!=0 || find_option("dry-run",0,0)!=0 ){
564 purgeFlags |= PURGE_EXPLAIN_ONLY;
565 }
566 verify_all_options();
567 db_begin_transaction();
568 if( g.argc<=3 ) usage("checkins TAGS... [OPTIONS]");
569 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
570 for(i=3; i<g.argc; i++){
571 int r = name_to_typed_rid(g.argv[i], "br");
572 compute_descendants(r, 1000000000);
@@ -578,11 +578,11 @@
578 find_checkin_associates("ok", 1);
579 purge_artifact_list("ok", "", purgeFlags);
580 db_end_transaction(0);
581 }else if( strncmp(zSubcmd, "files", n)==0 ){
582 verify_all_options();
583 db_begin_transaction();
584 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
585 for(i=3; i<g.argc; i++){
586 db_multi_exec(
587 "INSERT OR IGNORE INTO ok(rid) "
588 " SELECT fid FROM mlink, filename"
@@ -618,11 +618,11 @@
618 cReply = blob_str(&ans)[0];
619 if( cReply!='y' && cReply!='Y' ){
620 fossil_exit(1);
621 }
622 }
623 db_begin_transaction();
624 for(i=3; i<g.argc; i++){
625 int peid = atoi(g.argv[i]);
626 if( !db_exists("SELECT 1 FROM purgeevent WHERE peid=%d",peid) ){
627 fossil_fatal("no such purge event: %s", g.argv[i]);
628 }
@@ -638,11 +638,11 @@
638 }else if( strncmp(zSubcmd, "undo", n)==0 ){
639 int peid;
640 if( g.argc!=4 ) usage("undo ID");
641 peid = atoi(g.argv[3]);
642 if( (purgeFlags & PURGE_EXPLAIN_ONLY)==0 ){
643 db_begin_transaction();
644 db_multi_exec(
645 "CREATE TEMP TABLE ix("
646 " piid INTEGER PRIMARY KEY,"
647 " srcid INTEGER"
648 ");"
649
--- src/purge.c
+++ src/purge.c
@@ -103,11 +103,11 @@
103 int peid = 0; /* New purgeevent ID */
104 Stmt q; /* General-use prepared statement */
105 char *z;
106
107 assert( g.repositoryOpen ); /* Main database must already be open */
108 db_begin_write();
109 z = sqlite3_mprintf("IN \"%w\"", zTab);
110 describe_artifacts(z);
111 sqlite3_free(z);
112 describe_artifacts_to_stdout(0, 0);
113
@@ -260,11 +260,11 @@
260 ** The "fossil publish" command with the (undocumented) --test and
261 ** --exclusive options can be used for interactiving testing of this
262 ** function.
263 */
264 void find_checkin_associates(const char *zTab, int bExclusive){
265 db_begin_write();
266
267 /* Compute the set of files that need to be added to zTab */
268 db_multi_exec("CREATE TEMP TABLE \"%w_files\"(fid INTEGER PRIMARY KEY)",zTab);
269 db_multi_exec(
270 "INSERT OR IGNORE INTO \"%w_files\"(fid)"
@@ -535,11 +535,11 @@
535 if( find_option("explain",0,0)!=0 || find_option("dry-run",0,0)!=0 ){
536 purgeFlags |= PURGE_EXPLAIN_ONLY;
537 }
538 if( strncmp(zSubcmd, "artifacts", n)==0 ){
539 verify_all_options();
540 db_begin_write();
541 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
542 for(i=3; i<g.argc; i++){
543 int r = name_to_typed_rid(g.argv[i], "");
544 db_multi_exec("INSERT OR IGNORE INTO ok(rid) VALUES(%d);", r);
545 }
@@ -562,11 +562,11 @@
562 int vid;
563 if( find_option("explain",0,0)!=0 || find_option("dry-run",0,0)!=0 ){
564 purgeFlags |= PURGE_EXPLAIN_ONLY;
565 }
566 verify_all_options();
567 db_begin_write();
568 if( g.argc<=3 ) usage("checkins TAGS... [OPTIONS]");
569 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
570 for(i=3; i<g.argc; i++){
571 int r = name_to_typed_rid(g.argv[i], "br");
572 compute_descendants(r, 1000000000);
@@ -578,11 +578,11 @@
578 find_checkin_associates("ok", 1);
579 purge_artifact_list("ok", "", purgeFlags);
580 db_end_transaction(0);
581 }else if( strncmp(zSubcmd, "files", n)==0 ){
582 verify_all_options();
583 db_begin_write();
584 db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
585 for(i=3; i<g.argc; i++){
586 db_multi_exec(
587 "INSERT OR IGNORE INTO ok(rid) "
588 " SELECT fid FROM mlink, filename"
@@ -618,11 +618,11 @@
618 cReply = blob_str(&ans)[0];
619 if( cReply!='y' && cReply!='Y' ){
620 fossil_exit(1);
621 }
622 }
623 db_begin_write();
624 for(i=3; i<g.argc; i++){
625 int peid = atoi(g.argv[i]);
626 if( !db_exists("SELECT 1 FROM purgeevent WHERE peid=%d",peid) ){
627 fossil_fatal("no such purge event: %s", g.argv[i]);
628 }
@@ -638,11 +638,11 @@
638 }else if( strncmp(zSubcmd, "undo", n)==0 ){
639 int peid;
640 if( g.argc!=4 ) usage("undo ID");
641 peid = atoi(g.argv[3]);
642 if( (purgeFlags & PURGE_EXPLAIN_ONLY)==0 ){
643 db_begin_write();
644 db_multi_exec(
645 "CREATE TEMP TABLE ix("
646 " piid INTEGER PRIMARY KEY,"
647 " srcid INTEGER"
648 ");"
649
+7 -7
--- src/rebuild.c
+++ src/rebuild.c
@@ -41,11 +41,11 @@
4141
** 2015-01-24 schema change. Create them if necessary. This code
4242
** can be removed in the future, once all users have upgraded to the
4343
** 2015-01-24 or later schema.
4444
*/
4545
if( !db_table_has_column("repository","mlink","isaux") ){
46
- db_begin_transaction();
46
+ db_begin_write();
4747
db_multi_exec(
4848
"ALTER TABLE repository.mlink ADD COLUMN pmid INTEGER DEFAULT 0;"
4949
"ALTER TABLE repository.mlink ADD COLUMN isaux BOOLEAN DEFAULT 0;"
5050
);
5151
db_end_transaction(0);
@@ -486,11 +486,11 @@
486486
Stmt q;
487487
int aPrev[N_NEIGHBOR];
488488
int nPrev;
489489
int rid;
490490
int prevfnid, fnid;
491
- db_begin_transaction();
491
+ db_begin_write();
492492
493493
/* Look for manifests that have not been deltaed and try to make them
494494
** children of one of the 5 chronologically subsequent check-ins
495495
*/
496496
db_prepare(&q,
@@ -661,11 +661,11 @@
661661
}
662662
663663
/* We should be done with options.. */
664664
verify_all_options();
665665
666
- db_begin_transaction();
666
+ db_begin_write();
667667
if( !compressOnlyFlag ){
668668
search_drop_index();
669669
ttyOutput = 1;
670670
errCnt = rebuild_db(randomizeFlag, 1, doClustering);
671671
reconstruct_private_table();
@@ -749,11 +749,11 @@
749749
** repositories. Used to create a "test" repository for development
750750
** testing by cloning a working project repository.
751751
*/
752752
void test_detach_cmd(void){
753753
db_find_and_open_repository(0, 2);
754
- db_begin_transaction();
754
+ db_begin_write();
755755
db_multi_exec(
756756
"DELETE FROM config WHERE name='last-sync-url';"
757757
"UPDATE config SET value=lower(hex(randomblob(20)))"
758758
" WHERE name='project-code';"
759759
"UPDATE config SET value='detached-' || value"
@@ -777,11 +777,11 @@
777777
usage("?REPOSITORY-FILENAME?");
778778
}
779779
db_close(1);
780780
db_open_repository(g.zRepositoryName);
781781
}
782
- db_begin_transaction();
782
+ db_begin_write();
783783
create_cluster();
784784
db_end_transaction(0);
785785
}
786786
787787
/*
@@ -898,11 +898,11 @@
898898
cReply = blob_str(&ans)[0];
899899
if( cReply!='y' && cReply!='Y' ){
900900
fossil_exit(1);
901901
}
902902
}
903
- db_begin_transaction();
903
+ db_begin_write();
904904
if( privateOnly || bVerily ){
905905
bNeedRebuild = db_exists("SELECT 1 FROM private");
906906
delete_private_content();
907907
}
908908
if( !privateOnly ){
@@ -1167,11 +1167,11 @@
11671167
11681168
/* We should be done with options.. */
11691169
verify_all_options();
11701170
11711171
db_open_config(0, 0);
1172
- db_begin_transaction();
1172
+ db_begin_write();
11731173
db_initial_setup(0, 0, 0);
11741174
11751175
fossil_print("Reading files from directory \"%s\"...\n", g.argv[3]);
11761176
recon_read_dir(g.argv[3]);
11771177
fossil_print("\nBuilding the Fossil repository...\n");
11781178
--- src/rebuild.c
+++ src/rebuild.c
@@ -41,11 +41,11 @@
41 ** 2015-01-24 schema change. Create them if necessary. This code
42 ** can be removed in the future, once all users have upgraded to the
43 ** 2015-01-24 or later schema.
44 */
45 if( !db_table_has_column("repository","mlink","isaux") ){
46 db_begin_transaction();
47 db_multi_exec(
48 "ALTER TABLE repository.mlink ADD COLUMN pmid INTEGER DEFAULT 0;"
49 "ALTER TABLE repository.mlink ADD COLUMN isaux BOOLEAN DEFAULT 0;"
50 );
51 db_end_transaction(0);
@@ -486,11 +486,11 @@
486 Stmt q;
487 int aPrev[N_NEIGHBOR];
488 int nPrev;
489 int rid;
490 int prevfnid, fnid;
491 db_begin_transaction();
492
493 /* Look for manifests that have not been deltaed and try to make them
494 ** children of one of the 5 chronologically subsequent check-ins
495 */
496 db_prepare(&q,
@@ -661,11 +661,11 @@
661 }
662
663 /* We should be done with options.. */
664 verify_all_options();
665
666 db_begin_transaction();
667 if( !compressOnlyFlag ){
668 search_drop_index();
669 ttyOutput = 1;
670 errCnt = rebuild_db(randomizeFlag, 1, doClustering);
671 reconstruct_private_table();
@@ -749,11 +749,11 @@
749 ** repositories. Used to create a "test" repository for development
750 ** testing by cloning a working project repository.
751 */
752 void test_detach_cmd(void){
753 db_find_and_open_repository(0, 2);
754 db_begin_transaction();
755 db_multi_exec(
756 "DELETE FROM config WHERE name='last-sync-url';"
757 "UPDATE config SET value=lower(hex(randomblob(20)))"
758 " WHERE name='project-code';"
759 "UPDATE config SET value='detached-' || value"
@@ -777,11 +777,11 @@
777 usage("?REPOSITORY-FILENAME?");
778 }
779 db_close(1);
780 db_open_repository(g.zRepositoryName);
781 }
782 db_begin_transaction();
783 create_cluster();
784 db_end_transaction(0);
785 }
786
787 /*
@@ -898,11 +898,11 @@
898 cReply = blob_str(&ans)[0];
899 if( cReply!='y' && cReply!='Y' ){
900 fossil_exit(1);
901 }
902 }
903 db_begin_transaction();
904 if( privateOnly || bVerily ){
905 bNeedRebuild = db_exists("SELECT 1 FROM private");
906 delete_private_content();
907 }
908 if( !privateOnly ){
@@ -1167,11 +1167,11 @@
1167
1168 /* We should be done with options.. */
1169 verify_all_options();
1170
1171 db_open_config(0, 0);
1172 db_begin_transaction();
1173 db_initial_setup(0, 0, 0);
1174
1175 fossil_print("Reading files from directory \"%s\"...\n", g.argv[3]);
1176 recon_read_dir(g.argv[3]);
1177 fossil_print("\nBuilding the Fossil repository...\n");
1178
--- src/rebuild.c
+++ src/rebuild.c
@@ -41,11 +41,11 @@
41 ** 2015-01-24 schema change. Create them if necessary. This code
42 ** can be removed in the future, once all users have upgraded to the
43 ** 2015-01-24 or later schema.
44 */
45 if( !db_table_has_column("repository","mlink","isaux") ){
46 db_begin_write();
47 db_multi_exec(
48 "ALTER TABLE repository.mlink ADD COLUMN pmid INTEGER DEFAULT 0;"
49 "ALTER TABLE repository.mlink ADD COLUMN isaux BOOLEAN DEFAULT 0;"
50 );
51 db_end_transaction(0);
@@ -486,11 +486,11 @@
486 Stmt q;
487 int aPrev[N_NEIGHBOR];
488 int nPrev;
489 int rid;
490 int prevfnid, fnid;
491 db_begin_write();
492
493 /* Look for manifests that have not been deltaed and try to make them
494 ** children of one of the 5 chronologically subsequent check-ins
495 */
496 db_prepare(&q,
@@ -661,11 +661,11 @@
661 }
662
663 /* We should be done with options.. */
664 verify_all_options();
665
666 db_begin_write();
667 if( !compressOnlyFlag ){
668 search_drop_index();
669 ttyOutput = 1;
670 errCnt = rebuild_db(randomizeFlag, 1, doClustering);
671 reconstruct_private_table();
@@ -749,11 +749,11 @@
749 ** repositories. Used to create a "test" repository for development
750 ** testing by cloning a working project repository.
751 */
752 void test_detach_cmd(void){
753 db_find_and_open_repository(0, 2);
754 db_begin_write();
755 db_multi_exec(
756 "DELETE FROM config WHERE name='last-sync-url';"
757 "UPDATE config SET value=lower(hex(randomblob(20)))"
758 " WHERE name='project-code';"
759 "UPDATE config SET value='detached-' || value"
@@ -777,11 +777,11 @@
777 usage("?REPOSITORY-FILENAME?");
778 }
779 db_close(1);
780 db_open_repository(g.zRepositoryName);
781 }
782 db_begin_write();
783 create_cluster();
784 db_end_transaction(0);
785 }
786
787 /*
@@ -898,11 +898,11 @@
898 cReply = blob_str(&ans)[0];
899 if( cReply!='y' && cReply!='Y' ){
900 fossil_exit(1);
901 }
902 }
903 db_begin_write();
904 if( privateOnly || bVerily ){
905 bNeedRebuild = db_exists("SELECT 1 FROM private");
906 delete_private_content();
907 }
908 if( !privateOnly ){
@@ -1167,11 +1167,11 @@
1167
1168 /* We should be done with options.. */
1169 verify_all_options();
1170
1171 db_open_config(0, 0);
1172 db_begin_write();
1173 db_initial_setup(0, 0, 0);
1174
1175 fossil_print("Reading files from directory \"%s\"...\n", g.argv[3]);
1176 recon_read_dir(g.argv[3]);
1177 fossil_print("\nBuilding the Fossil repository...\n");
1178
+1 -1
--- src/search.c
+++ src/search.c
@@ -1881,11 +1881,11 @@
18811881
}
18821882
if( iCmd==2 ){
18831883
if( g.argc<3 ) usage("index (on|off)");
18841884
iAction = 1 + is_truth(g.argv[3]);
18851885
}
1886
- db_begin_transaction();
1886
+ db_begin_write();
18871887
18881888
/* Adjust search settings */
18891889
if( iCmd==3 || iCmd==4 ){
18901890
const char *zCtrl;
18911891
if( g.argc<4 ) usage(mprintf("%s STRING",zSubCmd));
18921892
--- src/search.c
+++ src/search.c
@@ -1881,11 +1881,11 @@
1881 }
1882 if( iCmd==2 ){
1883 if( g.argc<3 ) usage("index (on|off)");
1884 iAction = 1 + is_truth(g.argv[3]);
1885 }
1886 db_begin_transaction();
1887
1888 /* Adjust search settings */
1889 if( iCmd==3 || iCmd==4 ){
1890 const char *zCtrl;
1891 if( g.argc<4 ) usage(mprintf("%s STRING",zSubCmd));
1892
--- src/search.c
+++ src/search.c
@@ -1881,11 +1881,11 @@
1881 }
1882 if( iCmd==2 ){
1883 if( g.argc<3 ) usage("index (on|off)");
1884 iAction = 1 + is_truth(g.argv[3]);
1885 }
1886 db_begin_write();
1887
1888 /* Adjust search settings */
1889 if( iCmd==3 || iCmd==4 ){
1890 const char *zCtrl;
1891 if( g.argc<4 ) usage(mprintf("%s STRING",zSubCmd));
1892
+8 -8
--- src/setup.c
+++ src/setup.c
@@ -324,11 +324,11 @@
324324
login_needed(0);
325325
return;
326326
}
327327
328328
style_header("Access Control Settings");
329
- db_begin_transaction();
329
+ db_begin_write();
330330
@ <form action="%s(g.zTop)/setup_access" method="post"><div>
331331
login_insert_csrf_secret();
332332
@ <input type="submit" name="submit" value="Apply Changes" /></p>
333333
@ <hr />
334334
multiple_choice_attribute("Redirect to HTTPS",
@@ -679,11 +679,11 @@
679679
login_needed(0);
680680
return;
681681
}
682682
683683
style_header("Timeline Display Preferences");
684
- db_begin_transaction();
684
+ db_begin_write();
685685
@ <form action="%s(g.zTop)/setup_timeline" method="post"><div>
686686
login_insert_csrf_secret();
687687
@ <p><input type="submit" name="submit" value="Apply Changes" /></p>
688688
689689
@ <hr />
@@ -780,11 +780,11 @@
780780
if(!g.repositoryOpen){
781781
/* Provide read-only access to versioned settings,
782782
but only if no repo file was explicitly provided. */
783783
db_open_local(0);
784784
}
785
- db_begin_transaction();
785
+ db_begin_write();
786786
@ <p>Settings marked with (v) are "versionable" and will be overridden
787787
@ by the contents of managed files named
788788
@ "<tt>.fossil-settings/</tt><i>SETTING-NAME</i>".
789789
@ If the file for a versionable setting exists, the value cannot be
790790
@ changed on this screen.</p><hr /><p>
@@ -857,11 +857,11 @@
857857
login_needed(0);
858858
return;
859859
}
860860
861861
style_header("WWW Configuration");
862
- db_begin_transaction();
862
+ db_begin_write();
863863
@ <form action="%s(g.zTop)/setup_config" method="post"><div>
864864
login_insert_csrf_secret();
865865
@ <input type="submit" name="submit" value="Apply Changes" /></p>
866866
@ <hr />
867867
entry_attribute("Project Name", 60, "project-name", "pn", "", 0);
@@ -953,11 +953,11 @@
953953
login_needed(0);
954954
return;
955955
}
956956
957957
style_header("Wiki Configuration");
958
- db_begin_transaction();
958
+ db_begin_write();
959959
@ <form action="%s(g.zTop)/setup_wiki" method="post"><div>
960960
login_insert_csrf_secret();
961961
@ <input type="submit" name="submit" value="Apply Changes" /></p>
962962
@ <hr />
963963
onoff_attribute("Associate Wiki Pages With Branches, Tags, or Checkins",
@@ -1013,11 +1013,11 @@
10131013
login_needed(0);
10141014
return;
10151015
}
10161016
10171017
style_header("Moderator For Wiki And Tickets");
1018
- db_begin_transaction();
1018
+ db_begin_write();
10191019
@ <form action="%R/setup_modreq" method="post"><div>
10201020
login_insert_csrf_secret();
10211021
@ <hr />
10221022
onoff_attribute("Moderate ticket changes",
10231023
"modreq-tkt", "modreq-tkt", 0, 0);
@@ -1059,11 +1059,11 @@
10591059
login_check_credentials();
10601060
if( !g.perm.Admin ){
10611061
login_needed(0);
10621062
return;
10631063
}
1064
- db_begin_transaction();
1064
+ db_begin_write();
10651065
if( P("clear")!=0 && cgi_csrf_safe(1) ){
10661066
db_multi_exec("DELETE FROM config WHERE name GLOB 'adunit*'");
10671067
cgi_replace_parameter("adunit","");
10681068
}
10691069
@@ -1149,11 +1149,11 @@
11491149
login_check_credentials();
11501150
if( !g.perm.Admin ){
11511151
login_needed(0);
11521152
return;
11531153
}
1154
- db_begin_transaction();
1154
+ db_begin_write();
11551155
if( !cgi_csrf_safe(1) ){
11561156
/* Allow no state changes if not safe from CSRF */
11571157
}else if( P("setlogo")!=0 && zLogoMime && zLogoMime[0] && szLogoImg>0 ){
11581158
Blob img;
11591159
Stmt ins;
11601160
--- src/setup.c
+++ src/setup.c
@@ -324,11 +324,11 @@
324 login_needed(0);
325 return;
326 }
327
328 style_header("Access Control Settings");
329 db_begin_transaction();
330 @ <form action="%s(g.zTop)/setup_access" method="post"><div>
331 login_insert_csrf_secret();
332 @ <input type="submit" name="submit" value="Apply Changes" /></p>
333 @ <hr />
334 multiple_choice_attribute("Redirect to HTTPS",
@@ -679,11 +679,11 @@
679 login_needed(0);
680 return;
681 }
682
683 style_header("Timeline Display Preferences");
684 db_begin_transaction();
685 @ <form action="%s(g.zTop)/setup_timeline" method="post"><div>
686 login_insert_csrf_secret();
687 @ <p><input type="submit" name="submit" value="Apply Changes" /></p>
688
689 @ <hr />
@@ -780,11 +780,11 @@
780 if(!g.repositoryOpen){
781 /* Provide read-only access to versioned settings,
782 but only if no repo file was explicitly provided. */
783 db_open_local(0);
784 }
785 db_begin_transaction();
786 @ <p>Settings marked with (v) are "versionable" and will be overridden
787 @ by the contents of managed files named
788 @ "<tt>.fossil-settings/</tt><i>SETTING-NAME</i>".
789 @ If the file for a versionable setting exists, the value cannot be
790 @ changed on this screen.</p><hr /><p>
@@ -857,11 +857,11 @@
857 login_needed(0);
858 return;
859 }
860
861 style_header("WWW Configuration");
862 db_begin_transaction();
863 @ <form action="%s(g.zTop)/setup_config" method="post"><div>
864 login_insert_csrf_secret();
865 @ <input type="submit" name="submit" value="Apply Changes" /></p>
866 @ <hr />
867 entry_attribute("Project Name", 60, "project-name", "pn", "", 0);
@@ -953,11 +953,11 @@
953 login_needed(0);
954 return;
955 }
956
957 style_header("Wiki Configuration");
958 db_begin_transaction();
959 @ <form action="%s(g.zTop)/setup_wiki" method="post"><div>
960 login_insert_csrf_secret();
961 @ <input type="submit" name="submit" value="Apply Changes" /></p>
962 @ <hr />
963 onoff_attribute("Associate Wiki Pages With Branches, Tags, or Checkins",
@@ -1013,11 +1013,11 @@
1013 login_needed(0);
1014 return;
1015 }
1016
1017 style_header("Moderator For Wiki And Tickets");
1018 db_begin_transaction();
1019 @ <form action="%R/setup_modreq" method="post"><div>
1020 login_insert_csrf_secret();
1021 @ <hr />
1022 onoff_attribute("Moderate ticket changes",
1023 "modreq-tkt", "modreq-tkt", 0, 0);
@@ -1059,11 +1059,11 @@
1059 login_check_credentials();
1060 if( !g.perm.Admin ){
1061 login_needed(0);
1062 return;
1063 }
1064 db_begin_transaction();
1065 if( P("clear")!=0 && cgi_csrf_safe(1) ){
1066 db_multi_exec("DELETE FROM config WHERE name GLOB 'adunit*'");
1067 cgi_replace_parameter("adunit","");
1068 }
1069
@@ -1149,11 +1149,11 @@
1149 login_check_credentials();
1150 if( !g.perm.Admin ){
1151 login_needed(0);
1152 return;
1153 }
1154 db_begin_transaction();
1155 if( !cgi_csrf_safe(1) ){
1156 /* Allow no state changes if not safe from CSRF */
1157 }else if( P("setlogo")!=0 && zLogoMime && zLogoMime[0] && szLogoImg>0 ){
1158 Blob img;
1159 Stmt ins;
1160
--- src/setup.c
+++ src/setup.c
@@ -324,11 +324,11 @@
324 login_needed(0);
325 return;
326 }
327
328 style_header("Access Control Settings");
329 db_begin_write();
330 @ <form action="%s(g.zTop)/setup_access" method="post"><div>
331 login_insert_csrf_secret();
332 @ <input type="submit" name="submit" value="Apply Changes" /></p>
333 @ <hr />
334 multiple_choice_attribute("Redirect to HTTPS",
@@ -679,11 +679,11 @@
679 login_needed(0);
680 return;
681 }
682
683 style_header("Timeline Display Preferences");
684 db_begin_write();
685 @ <form action="%s(g.zTop)/setup_timeline" method="post"><div>
686 login_insert_csrf_secret();
687 @ <p><input type="submit" name="submit" value="Apply Changes" /></p>
688
689 @ <hr />
@@ -780,11 +780,11 @@
780 if(!g.repositoryOpen){
781 /* Provide read-only access to versioned settings,
782 but only if no repo file was explicitly provided. */
783 db_open_local(0);
784 }
785 db_begin_write();
786 @ <p>Settings marked with (v) are "versionable" and will be overridden
787 @ by the contents of managed files named
788 @ "<tt>.fossil-settings/</tt><i>SETTING-NAME</i>".
789 @ If the file for a versionable setting exists, the value cannot be
790 @ changed on this screen.</p><hr /><p>
@@ -857,11 +857,11 @@
857 login_needed(0);
858 return;
859 }
860
861 style_header("WWW Configuration");
862 db_begin_write();
863 @ <form action="%s(g.zTop)/setup_config" method="post"><div>
864 login_insert_csrf_secret();
865 @ <input type="submit" name="submit" value="Apply Changes" /></p>
866 @ <hr />
867 entry_attribute("Project Name", 60, "project-name", "pn", "", 0);
@@ -953,11 +953,11 @@
953 login_needed(0);
954 return;
955 }
956
957 style_header("Wiki Configuration");
958 db_begin_write();
959 @ <form action="%s(g.zTop)/setup_wiki" method="post"><div>
960 login_insert_csrf_secret();
961 @ <input type="submit" name="submit" value="Apply Changes" /></p>
962 @ <hr />
963 onoff_attribute("Associate Wiki Pages With Branches, Tags, or Checkins",
@@ -1013,11 +1013,11 @@
1013 login_needed(0);
1014 return;
1015 }
1016
1017 style_header("Moderator For Wiki And Tickets");
1018 db_begin_write();
1019 @ <form action="%R/setup_modreq" method="post"><div>
1020 login_insert_csrf_secret();
1021 @ <hr />
1022 onoff_attribute("Moderate ticket changes",
1023 "modreq-tkt", "modreq-tkt", 0, 0);
@@ -1059,11 +1059,11 @@
1059 login_check_credentials();
1060 if( !g.perm.Admin ){
1061 login_needed(0);
1062 return;
1063 }
1064 db_begin_write();
1065 if( P("clear")!=0 && cgi_csrf_safe(1) ){
1066 db_multi_exec("DELETE FROM config WHERE name GLOB 'adunit*'");
1067 cgi_replace_parameter("adunit","");
1068 }
1069
@@ -1149,11 +1149,11 @@
1149 login_check_credentials();
1150 if( !g.perm.Admin ){
1151 login_needed(0);
1152 return;
1153 }
1154 db_begin_write();
1155 if( !cgi_csrf_safe(1) ){
1156 /* Allow no state changes if not safe from CSRF */
1157 }else if( P("setlogo")!=0 && zLogoMime && zLogoMime[0] && szLogoImg>0 ){
1158 Blob img;
1159 Stmt ins;
1160
+1 -1
--- src/shun.c
+++ src/shun.c
@@ -59,11 +59,11 @@
5959
return;
6060
}
6161
if( P("rebuild") ){
6262
db_close(1);
6363
db_open_repository(g.zRepositoryName);
64
- db_begin_transaction();
64
+ db_begin_write();
6565
rebuild_db(0, 0, 0);
6666
admin_log("Rebuilt database.");
6767
db_end_transaction(0);
6868
}
6969
if( zUuid ){
7070
--- src/shun.c
+++ src/shun.c
@@ -59,11 +59,11 @@
59 return;
60 }
61 if( P("rebuild") ){
62 db_close(1);
63 db_open_repository(g.zRepositoryName);
64 db_begin_transaction();
65 rebuild_db(0, 0, 0);
66 admin_log("Rebuilt database.");
67 db_end_transaction(0);
68 }
69 if( zUuid ){
70
--- src/shun.c
+++ src/shun.c
@@ -59,11 +59,11 @@
59 return;
60 }
61 if( P("rebuild") ){
62 db_close(1);
63 db_open_repository(g.zRepositoryName);
64 db_begin_write();
65 rebuild_db(0, 0, 0);
66 admin_log("Rebuilt database.");
67 db_end_transaction(0);
68 }
69 if( zUuid ){
70
+2 -2
--- src/skins.c
+++ src/skins.c
@@ -463,11 +463,11 @@
463463
login_check_credentials();
464464
if( !g.perm.Admin ){
465465
login_needed(0);
466466
return;
467467
}
468
- db_begin_transaction();
468
+ db_begin_write();
469469
zCurrent = getSkin(0);
470470
for(i=0; i<count(aBuiltinSkin); i++){
471471
aBuiltinSkin[i].zSQL = getSkin(aBuiltinSkin[i].zLabel);
472472
}
473473
@@ -764,11 +764,11 @@
764764
if( P("revert")!=0 && cgi_csrf_safe(0) ){
765765
zContent = zDflt;
766766
isRevert = 1;
767767
}
768768
769
- db_begin_transaction();
769
+ db_begin_write();
770770
style_header("%s", zTitle);
771771
for(j=0; j<count(aSkinAttr); j++){
772772
style_submenu_element(aSkinAttr[j].zSubmenu,
773773
"%R/setup_skinedit?w=%d&basis=%h&sk=%d",j,zBasis,iSkin);
774774
}
775775
--- src/skins.c
+++ src/skins.c
@@ -463,11 +463,11 @@
463 login_check_credentials();
464 if( !g.perm.Admin ){
465 login_needed(0);
466 return;
467 }
468 db_begin_transaction();
469 zCurrent = getSkin(0);
470 for(i=0; i<count(aBuiltinSkin); i++){
471 aBuiltinSkin[i].zSQL = getSkin(aBuiltinSkin[i].zLabel);
472 }
473
@@ -764,11 +764,11 @@
764 if( P("revert")!=0 && cgi_csrf_safe(0) ){
765 zContent = zDflt;
766 isRevert = 1;
767 }
768
769 db_begin_transaction();
770 style_header("%s", zTitle);
771 for(j=0; j<count(aSkinAttr); j++){
772 style_submenu_element(aSkinAttr[j].zSubmenu,
773 "%R/setup_skinedit?w=%d&basis=%h&sk=%d",j,zBasis,iSkin);
774 }
775
--- src/skins.c
+++ src/skins.c
@@ -463,11 +463,11 @@
463 login_check_credentials();
464 if( !g.perm.Admin ){
465 login_needed(0);
466 return;
467 }
468 db_begin_write();
469 zCurrent = getSkin(0);
470 for(i=0; i<count(aBuiltinSkin); i++){
471 aBuiltinSkin[i].zSQL = getSkin(aBuiltinSkin[i].zLabel);
472 }
473
@@ -764,11 +764,11 @@
764 if( P("revert")!=0 && cgi_csrf_safe(0) ){
765 zContent = zDflt;
766 isRevert = 1;
767 }
768
769 db_begin_write();
770 style_header("%s", zTitle);
771 for(j=0; j<count(aSkinAttr); j++){
772 style_submenu_element(aSkinAttr[j].zSubmenu,
773 "%R/setup_skinedit?w=%d&basis=%h&sk=%d",j,zBasis,iSkin);
774 }
775
+1 -1
--- src/stash.c
+++ src/stash.c
@@ -580,11 +580,11 @@
580580
int nCmd;
581581
int stashid = 0;
582582
undo_capture_command_line();
583583
db_must_be_within_tree();
584584
db_open_config(0, 0);
585
- db_begin_transaction();
585
+ db_begin_write();
586586
stash_tables_exist_and_current();
587587
if( g.argc<=2 ){
588588
zCmd = "save";
589589
}else{
590590
zCmd = g.argv[2];
591591
--- src/stash.c
+++ src/stash.c
@@ -580,11 +580,11 @@
580 int nCmd;
581 int stashid = 0;
582 undo_capture_command_line();
583 db_must_be_within_tree();
584 db_open_config(0, 0);
585 db_begin_transaction();
586 stash_tables_exist_and_current();
587 if( g.argc<=2 ){
588 zCmd = "save";
589 }else{
590 zCmd = g.argv[2];
591
--- src/stash.c
+++ src/stash.c
@@ -580,11 +580,11 @@
580 int nCmd;
581 int stashid = 0;
582 undo_capture_command_line();
583 db_must_be_within_tree();
584 db_open_config(0, 0);
585 db_begin_write();
586 stash_tables_exist_and_current();
587 if( g.argc<=2 ){
588 zCmd = "save";
589 }else{
590 zCmd = g.argv[2];
591
+3 -3
--- src/tag.c
+++ src/tag.c
@@ -274,11 +274,11 @@
274274
if( rid==0 ){
275275
fossil_fatal("no such object: %s", g.argv[3]);
276276
}
277277
g.markPrivate = content_is_private(rid);
278278
zValue = g.argc==5 ? g.argv[4] : 0;
279
- db_begin_transaction();
279
+ db_begin_write();
280280
tag_insert(zTag, tagtype, zValue, -1, 0.0, rid);
281281
db_end_transaction(0);
282282
}
283283
284284
/*
@@ -464,11 +464,11 @@
464464
if( find_option("dryrun","n",0)!=0 ) dryRun = TAG_ADD_DRYRUN;
465465
if( g.argc!=5 && g.argc!=6 ){
466466
usage("add ?options? TAGNAME CHECK-IN ?VALUE?");
467467
}
468468
zValue = g.argc==6 ? g.argv[5] : 0;
469
- db_begin_transaction();
469
+ db_begin_write();
470470
tag_add_artifact(zPrefix, g.argv[3], g.argv[4], zValue,
471471
1+fPropagate+dryRun,zDateOvrd,zUserOvrd);
472472
db_end_transaction(0);
473473
}else
474474
@@ -485,11 +485,11 @@
485485
const char *zUserOvrd = find_option("user-override",0,1);
486486
if( find_option("dryrun","n",0)!=0 ) dryRun = TAG_ADD_DRYRUN;
487487
if( g.argc!=5 ){
488488
usage("cancel ?options? TAGNAME CHECK-IN");
489489
}
490
- db_begin_transaction();
490
+ db_begin_write();
491491
tag_add_artifact(zPrefix, g.argv[3], g.argv[4], 0, dryRun,
492492
zDateOvrd, zUserOvrd);
493493
db_end_transaction(0);
494494
}else
495495
496496
--- src/tag.c
+++ src/tag.c
@@ -274,11 +274,11 @@
274 if( rid==0 ){
275 fossil_fatal("no such object: %s", g.argv[3]);
276 }
277 g.markPrivate = content_is_private(rid);
278 zValue = g.argc==5 ? g.argv[4] : 0;
279 db_begin_transaction();
280 tag_insert(zTag, tagtype, zValue, -1, 0.0, rid);
281 db_end_transaction(0);
282 }
283
284 /*
@@ -464,11 +464,11 @@
464 if( find_option("dryrun","n",0)!=0 ) dryRun = TAG_ADD_DRYRUN;
465 if( g.argc!=5 && g.argc!=6 ){
466 usage("add ?options? TAGNAME CHECK-IN ?VALUE?");
467 }
468 zValue = g.argc==6 ? g.argv[5] : 0;
469 db_begin_transaction();
470 tag_add_artifact(zPrefix, g.argv[3], g.argv[4], zValue,
471 1+fPropagate+dryRun,zDateOvrd,zUserOvrd);
472 db_end_transaction(0);
473 }else
474
@@ -485,11 +485,11 @@
485 const char *zUserOvrd = find_option("user-override",0,1);
486 if( find_option("dryrun","n",0)!=0 ) dryRun = TAG_ADD_DRYRUN;
487 if( g.argc!=5 ){
488 usage("cancel ?options? TAGNAME CHECK-IN");
489 }
490 db_begin_transaction();
491 tag_add_artifact(zPrefix, g.argv[3], g.argv[4], 0, dryRun,
492 zDateOvrd, zUserOvrd);
493 db_end_transaction(0);
494 }else
495
496
--- src/tag.c
+++ src/tag.c
@@ -274,11 +274,11 @@
274 if( rid==0 ){
275 fossil_fatal("no such object: %s", g.argv[3]);
276 }
277 g.markPrivate = content_is_private(rid);
278 zValue = g.argc==5 ? g.argv[4] : 0;
279 db_begin_write();
280 tag_insert(zTag, tagtype, zValue, -1, 0.0, rid);
281 db_end_transaction(0);
282 }
283
284 /*
@@ -464,11 +464,11 @@
464 if( find_option("dryrun","n",0)!=0 ) dryRun = TAG_ADD_DRYRUN;
465 if( g.argc!=5 && g.argc!=6 ){
466 usage("add ?options? TAGNAME CHECK-IN ?VALUE?");
467 }
468 zValue = g.argc==6 ? g.argv[5] : 0;
469 db_begin_write();
470 tag_add_artifact(zPrefix, g.argv[3], g.argv[4], zValue,
471 1+fPropagate+dryRun,zDateOvrd,zUserOvrd);
472 db_end_transaction(0);
473 }else
474
@@ -485,11 +485,11 @@
485 const char *zUserOvrd = find_option("user-override",0,1);
486 if( find_option("dryrun","n",0)!=0 ) dryRun = TAG_ADD_DRYRUN;
487 if( g.argc!=5 ){
488 usage("cancel ?options? TAGNAME CHECK-IN");
489 }
490 db_begin_write();
491 tag_add_artifact(zPrefix, g.argv[3], g.argv[4], 0, dryRun,
492 zDateOvrd, zUserOvrd);
493 db_end_transaction(0);
494 }else
495
496
+1 -1
--- src/tkt.c
+++ src/tkt.c
@@ -386,11 +386,11 @@
386386
** available ticket artifacts.
387387
*/
388388
void ticket_rebuild(void){
389389
Stmt q;
390390
ticket_create_table(1);
391
- db_begin_transaction();
391
+ db_begin_write();
392392
db_prepare(&q,"SELECT tagname FROM tag WHERE tagname GLOB 'tkt-*'");
393393
while( db_step(&q)==SQLITE_ROW ){
394394
const char *zName = db_column_text(&q, 0);
395395
int len;
396396
zName += 4;
397397
--- src/tkt.c
+++ src/tkt.c
@@ -386,11 +386,11 @@
386 ** available ticket artifacts.
387 */
388 void ticket_rebuild(void){
389 Stmt q;
390 ticket_create_table(1);
391 db_begin_transaction();
392 db_prepare(&q,"SELECT tagname FROM tag WHERE tagname GLOB 'tkt-*'");
393 while( db_step(&q)==SQLITE_ROW ){
394 const char *zName = db_column_text(&q, 0);
395 int len;
396 zName += 4;
397
--- src/tkt.c
+++ src/tkt.c
@@ -386,11 +386,11 @@
386 ** available ticket artifacts.
387 */
388 void ticket_rebuild(void){
389 Stmt q;
390 ticket_create_table(1);
391 db_begin_write();
392 db_prepare(&q,"SELECT tagname FROM tag WHERE tagname GLOB 'tkt-*'");
393 while( db_step(&q)==SQLITE_ROW ){
394 const char *zName = db_column_text(&q, 0);
395 int len;
396 zName += 4;
397
+1 -1
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -891,11 +891,11 @@
891891
892892
if( P("setup") ){
893893
cgi_redirect("tktsetup");
894894
}
895895
style_header("Ticket Display On Timelines");
896
- db_begin_transaction();
896
+ db_begin_write();
897897
@ <form action="%s(g.zTop)/tktsetup_timeline" method="post"><div>
898898
login_insert_csrf_secret();
899899
900900
@ <hr />
901901
entry_attribute("Ticket Title", 40, "ticket-title-expr", "t",
902902
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -891,11 +891,11 @@
891
892 if( P("setup") ){
893 cgi_redirect("tktsetup");
894 }
895 style_header("Ticket Display On Timelines");
896 db_begin_transaction();
897 @ <form action="%s(g.zTop)/tktsetup_timeline" method="post"><div>
898 login_insert_csrf_secret();
899
900 @ <hr />
901 entry_attribute("Ticket Title", 40, "ticket-title-expr", "t",
902
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -891,11 +891,11 @@
891
892 if( P("setup") ){
893 cgi_redirect("tktsetup");
894 }
895 style_header("Ticket Display On Timelines");
896 db_begin_write();
897 @ <form action="%s(g.zTop)/tktsetup_timeline" method="post"><div>
898 login_insert_csrf_secret();
899
900 @ <hr />
901 entry_attribute("Ticket Title", 40, "ticket-title-expr", "t",
902
+1 -1
--- src/undo.c
+++ src/undo.c
@@ -461,11 +461,11 @@
461461
if( !dryRunFlag ){
462462
dryRunFlag = find_option("explain", 0, 0)!=0;
463463
}
464464
db_must_be_within_tree();
465465
verify_all_options();
466
- db_begin_transaction();
466
+ db_begin_write();
467467
undo_available = db_lget_int("undo_available", 0);
468468
if( dryRunFlag ){
469469
if( undo_available==0 ){
470470
fossil_print("No undo or redo is available\n");
471471
}else{
472472
--- src/undo.c
+++ src/undo.c
@@ -461,11 +461,11 @@
461 if( !dryRunFlag ){
462 dryRunFlag = find_option("explain", 0, 0)!=0;
463 }
464 db_must_be_within_tree();
465 verify_all_options();
466 db_begin_transaction();
467 undo_available = db_lget_int("undo_available", 0);
468 if( dryRunFlag ){
469 if( undo_available==0 ){
470 fossil_print("No undo or redo is available\n");
471 }else{
472
--- src/undo.c
+++ src/undo.c
@@ -461,11 +461,11 @@
461 if( !dryRunFlag ){
462 dryRunFlag = find_option("explain", 0, 0)!=0;
463 }
464 db_must_be_within_tree();
465 verify_all_options();
466 db_begin_write();
467 undo_available = db_lget_int("undo_available", 0);
468 if( dryRunFlag ){
469 if( undo_available==0 ){
470 fossil_print("No undo or redo is available\n");
471 }else{
472
--- src/unversioned.c
+++ src/unversioned.c
@@ -293,11 +293,11 @@
293293
int i;
294294
295295
zAs = find_option("as",0,1);
296296
if( zAs && g.argc!=4 ) usage("add DISKFILE --as UVFILE");
297297
verify_all_options();
298
- db_begin_transaction();
298
+ db_begin_write();
299299
content_rcvid_init("#!fossil unversioned add");
300300
for(i=3; i<g.argc; i++){
301301
zIn = zAs ? zAs : g.argv[i];
302302
if( zIn[0]==0 ){
303303
zError = "be empty string";
@@ -318,11 +318,11 @@
318318
}
319319
db_end_transaction(0);
320320
}else if( memcmp(zCmd, "cat", nCmd)==0 ){
321321
int i;
322322
verify_all_options();
323
- db_begin_transaction();
323
+ db_begin_write();
324324
for(i=3; i<g.argc; i++){
325325
Blob content;
326326
if( unversioned_content(g.argv[i], &content)==0 ){
327327
blob_write_to_file(&content, "-");
328328
}
@@ -341,11 +341,11 @@
341341
zUVFile = g.argv[3];
342342
zEditor = fossil_text_editor();
343343
if( zEditor==0 ) fossil_fatal("no text editor - set the VISUAL env variable");
344344
zTFile = fossil_temp_filename();
345345
if( zTFile==0 ) fossil_fatal("cannot find a temporary filename");
346
- db_begin_transaction();
346
+ db_begin_write();
347347
content_rcvid_init("#!fossil unversioned edit");
348348
if( unversioned_content(zUVFile, &content) ){
349349
fossil_fatal("no such uv-file: %Q", zUVFile);
350350
}
351351
if( looks_like_binary(&content) ){
@@ -431,11 +431,11 @@
431431
sync_unversioned(syncFlags);
432432
}else if( memcmp(zCmd, "remove", nCmd)==0 || memcmp(zCmd, "rm", nCmd)==0
433433
|| memcmp(zCmd, "delete", nCmd)==0 ){
434434
int i;
435435
verify_all_options();
436
- db_begin_transaction();
436
+ db_begin_write();
437437
for(i=3; i<g.argc; i++){
438438
db_multi_exec(
439439
"UPDATE unversioned"
440440
" SET hash=NULL, content=NULL, mtime=%lld, sz=0 WHERE name=%Q",
441441
mtime, g.argv[i]
@@ -449,11 +449,11 @@
449449
g.argv[2] = "--uv-noop";
450450
sync_unversioned(syncFlags);
451451
}else if( memcmp(zCmd, "touch", nCmd)==0 ){
452452
int i;
453453
verify_all_options();
454
- db_begin_transaction();
454
+ db_begin_write();
455455
for(i=3; i<g.argc; i++){
456456
db_multi_exec(
457457
"UPDATE unversioned SET mtime=%lld WHERE name=%Q",
458458
mtime, g.argv[i]
459459
);
460460
--- src/unversioned.c
+++ src/unversioned.c
@@ -293,11 +293,11 @@
293 int i;
294
295 zAs = find_option("as",0,1);
296 if( zAs && g.argc!=4 ) usage("add DISKFILE --as UVFILE");
297 verify_all_options();
298 db_begin_transaction();
299 content_rcvid_init("#!fossil unversioned add");
300 for(i=3; i<g.argc; i++){
301 zIn = zAs ? zAs : g.argv[i];
302 if( zIn[0]==0 ){
303 zError = "be empty string";
@@ -318,11 +318,11 @@
318 }
319 db_end_transaction(0);
320 }else if( memcmp(zCmd, "cat", nCmd)==0 ){
321 int i;
322 verify_all_options();
323 db_begin_transaction();
324 for(i=3; i<g.argc; i++){
325 Blob content;
326 if( unversioned_content(g.argv[i], &content)==0 ){
327 blob_write_to_file(&content, "-");
328 }
@@ -341,11 +341,11 @@
341 zUVFile = g.argv[3];
342 zEditor = fossil_text_editor();
343 if( zEditor==0 ) fossil_fatal("no text editor - set the VISUAL env variable");
344 zTFile = fossil_temp_filename();
345 if( zTFile==0 ) fossil_fatal("cannot find a temporary filename");
346 db_begin_transaction();
347 content_rcvid_init("#!fossil unversioned edit");
348 if( unversioned_content(zUVFile, &content) ){
349 fossil_fatal("no such uv-file: %Q", zUVFile);
350 }
351 if( looks_like_binary(&content) ){
@@ -431,11 +431,11 @@
431 sync_unversioned(syncFlags);
432 }else if( memcmp(zCmd, "remove", nCmd)==0 || memcmp(zCmd, "rm", nCmd)==0
433 || memcmp(zCmd, "delete", nCmd)==0 ){
434 int i;
435 verify_all_options();
436 db_begin_transaction();
437 for(i=3; i<g.argc; i++){
438 db_multi_exec(
439 "UPDATE unversioned"
440 " SET hash=NULL, content=NULL, mtime=%lld, sz=0 WHERE name=%Q",
441 mtime, g.argv[i]
@@ -449,11 +449,11 @@
449 g.argv[2] = "--uv-noop";
450 sync_unversioned(syncFlags);
451 }else if( memcmp(zCmd, "touch", nCmd)==0 ){
452 int i;
453 verify_all_options();
454 db_begin_transaction();
455 for(i=3; i<g.argc; i++){
456 db_multi_exec(
457 "UPDATE unversioned SET mtime=%lld WHERE name=%Q",
458 mtime, g.argv[i]
459 );
460
--- src/unversioned.c
+++ src/unversioned.c
@@ -293,11 +293,11 @@
293 int i;
294
295 zAs = find_option("as",0,1);
296 if( zAs && g.argc!=4 ) usage("add DISKFILE --as UVFILE");
297 verify_all_options();
298 db_begin_write();
299 content_rcvid_init("#!fossil unversioned add");
300 for(i=3; i<g.argc; i++){
301 zIn = zAs ? zAs : g.argv[i];
302 if( zIn[0]==0 ){
303 zError = "be empty string";
@@ -318,11 +318,11 @@
318 }
319 db_end_transaction(0);
320 }else if( memcmp(zCmd, "cat", nCmd)==0 ){
321 int i;
322 verify_all_options();
323 db_begin_write();
324 for(i=3; i<g.argc; i++){
325 Blob content;
326 if( unversioned_content(g.argv[i], &content)==0 ){
327 blob_write_to_file(&content, "-");
328 }
@@ -341,11 +341,11 @@
341 zUVFile = g.argv[3];
342 zEditor = fossil_text_editor();
343 if( zEditor==0 ) fossil_fatal("no text editor - set the VISUAL env variable");
344 zTFile = fossil_temp_filename();
345 if( zTFile==0 ) fossil_fatal("cannot find a temporary filename");
346 db_begin_write();
347 content_rcvid_init("#!fossil unversioned edit");
348 if( unversioned_content(zUVFile, &content) ){
349 fossil_fatal("no such uv-file: %Q", zUVFile);
350 }
351 if( looks_like_binary(&content) ){
@@ -431,11 +431,11 @@
431 sync_unversioned(syncFlags);
432 }else if( memcmp(zCmd, "remove", nCmd)==0 || memcmp(zCmd, "rm", nCmd)==0
433 || memcmp(zCmd, "delete", nCmd)==0 ){
434 int i;
435 verify_all_options();
436 db_begin_write();
437 for(i=3; i<g.argc; i++){
438 db_multi_exec(
439 "UPDATE unversioned"
440 " SET hash=NULL, content=NULL, mtime=%lld, sz=0 WHERE name=%Q",
441 mtime, g.argv[i]
@@ -449,11 +449,11 @@
449 g.argv[2] = "--uv-noop";
450 sync_unversioned(syncFlags);
451 }else if( memcmp(zCmd, "touch", nCmd)==0 ){
452 int i;
453 verify_all_options();
454 db_begin_write();
455 for(i=3; i<g.argc; i++){
456 db_multi_exec(
457 "UPDATE unversioned SET mtime=%lld WHERE name=%Q",
458 mtime, g.argv[i]
459 );
460
+2 -2
--- src/update.c
+++ src/update.c
@@ -226,11 +226,11 @@
226226
227227
if( tid==0 ){
228228
return;
229229
}
230230
231
- db_begin_transaction();
231
+ db_begin_write();
232232
db_multi_exec(
233233
"CREATE TEMP TABLE dir_to_delete(name TEXT %s PRIMARY KEY)WITHOUT ROWID",
234234
filename_collation()
235235
);
236236
vfile_check_signature(vid, CKSIG_ENOTFILE);
@@ -800,11 +800,11 @@
800800
801801
/* Get manifests of revert version and (if different) current checkout. */
802802
pRvManifest = historical_manifest(zRevision);
803803
pCoManifest = zRevision ? historical_manifest(0) : 0;
804804
805
- db_begin_transaction();
805
+ db_begin_write();
806806
undo_begin();
807807
db_multi_exec("CREATE TEMP TABLE torevert(name UNIQUE);");
808808
809809
if( g.argc>2 ){
810810
for(i=2; i<g.argc; i++){
811811
--- src/update.c
+++ src/update.c
@@ -226,11 +226,11 @@
226
227 if( tid==0 ){
228 return;
229 }
230
231 db_begin_transaction();
232 db_multi_exec(
233 "CREATE TEMP TABLE dir_to_delete(name TEXT %s PRIMARY KEY)WITHOUT ROWID",
234 filename_collation()
235 );
236 vfile_check_signature(vid, CKSIG_ENOTFILE);
@@ -800,11 +800,11 @@
800
801 /* Get manifests of revert version and (if different) current checkout. */
802 pRvManifest = historical_manifest(zRevision);
803 pCoManifest = zRevision ? historical_manifest(0) : 0;
804
805 db_begin_transaction();
806 undo_begin();
807 db_multi_exec("CREATE TEMP TABLE torevert(name UNIQUE);");
808
809 if( g.argc>2 ){
810 for(i=2; i<g.argc; i++){
811
--- src/update.c
+++ src/update.c
@@ -226,11 +226,11 @@
226
227 if( tid==0 ){
228 return;
229 }
230
231 db_begin_write();
232 db_multi_exec(
233 "CREATE TEMP TABLE dir_to_delete(name TEXT %s PRIMARY KEY)WITHOUT ROWID",
234 filename_collation()
235 );
236 vfile_check_signature(vid, CKSIG_ENOTFILE);
@@ -800,11 +800,11 @@
800
801 /* Get manifests of revert version and (if different) current checkout. */
802 pRvManifest = historical_manifest(zRevision);
803 pCoManifest = zRevision ? historical_manifest(0) : 0;
804
805 db_begin_write();
806 undo_begin();
807 db_multi_exec("CREATE TEMP TABLE torevert(name UNIQUE);");
808
809 if( g.argc>2 ){
810 for(i=2; i<g.argc; i++){
811
+2 -2
--- src/vfile.c
+++ src/vfile.c
@@ -81,11 +81,11 @@
8181
8282
if( db_exists("SELECT 1 FROM vfile WHERE vid=%d", vid) ){
8383
return 0;
8484
}
8585
86
- db_begin_transaction();
86
+ db_begin_write();
8787
p = manifest_get(vid, CFTYPE_MANIFEST, 0);
8888
if( p==0 ) {
8989
db_end_transaction(1);
9090
return 0;
9191
}
@@ -174,11 +174,11 @@
174174
int nErr = 0;
175175
Stmt q;
176176
int useMtime = (cksigFlags & CKSIG_HASH)==0
177177
&& db_get_boolean("mtime-changes", 1);
178178
179
- db_begin_transaction();
179
+ db_begin_write();
180180
db_prepare(&q, "SELECT id, %Q || pathname,"
181181
" vfile.mrid, deleted, chnged, uuid, size, mtime,"
182182
" CASE WHEN isexe THEN %d WHEN islink THEN %d ELSE %d END"
183183
" FROM vfile LEFT JOIN blob ON vfile.mrid=blob.rid"
184184
" WHERE vid=%d ", g.zLocalRoot, PERM_EXE, PERM_LNK, PERM_REG,
185185
--- src/vfile.c
+++ src/vfile.c
@@ -81,11 +81,11 @@
81
82 if( db_exists("SELECT 1 FROM vfile WHERE vid=%d", vid) ){
83 return 0;
84 }
85
86 db_begin_transaction();
87 p = manifest_get(vid, CFTYPE_MANIFEST, 0);
88 if( p==0 ) {
89 db_end_transaction(1);
90 return 0;
91 }
@@ -174,11 +174,11 @@
174 int nErr = 0;
175 Stmt q;
176 int useMtime = (cksigFlags & CKSIG_HASH)==0
177 && db_get_boolean("mtime-changes", 1);
178
179 db_begin_transaction();
180 db_prepare(&q, "SELECT id, %Q || pathname,"
181 " vfile.mrid, deleted, chnged, uuid, size, mtime,"
182 " CASE WHEN isexe THEN %d WHEN islink THEN %d ELSE %d END"
183 " FROM vfile LEFT JOIN blob ON vfile.mrid=blob.rid"
184 " WHERE vid=%d ", g.zLocalRoot, PERM_EXE, PERM_LNK, PERM_REG,
185
--- src/vfile.c
+++ src/vfile.c
@@ -81,11 +81,11 @@
81
82 if( db_exists("SELECT 1 FROM vfile WHERE vid=%d", vid) ){
83 return 0;
84 }
85
86 db_begin_write();
87 p = manifest_get(vid, CFTYPE_MANIFEST, 0);
88 if( p==0 ) {
89 db_end_transaction(1);
90 return 0;
91 }
@@ -174,11 +174,11 @@
174 int nErr = 0;
175 Stmt q;
176 int useMtime = (cksigFlags & CKSIG_HASH)==0
177 && db_get_boolean("mtime-changes", 1);
178
179 db_begin_write();
180 db_prepare(&q, "SELECT id, %Q || pathname,"
181 " vfile.mrid, deleted, chnged, uuid, size, mtime,"
182 " CASE WHEN isexe THEN %d WHEN islink THEN %d ELSE %d END"
183 " FROM vfile LEFT JOIN blob ON vfile.mrid=blob.rid"
184 " WHERE vid=%d ", g.zLocalRoot, PERM_EXE, PERM_LNK, PERM_REG,
185
+3 -3
--- src/wiki.c
+++ src/wiki.c
@@ -640,11 +640,11 @@
640640
&& (goodCaptcha = captcha_is_correct(0))
641641
){
642642
char *zDate;
643643
Blob cksum;
644644
blob_zero(&wiki);
645
- db_begin_transaction();
645
+ db_begin_write();
646646
if( isSandbox ){
647647
db_set("sandbox",zBody,0);
648648
db_set("sandbox-mimetype",zMimetype,0);
649649
}else{
650650
login_verify_csrf_secret();
@@ -919,11 +919,11 @@
919919
if( pWiki ){
920920
blob_append(&body, pWiki->zWiki, -1);
921921
manifest_destroy(pWiki);
922922
}
923923
blob_zero(&wiki);
924
- db_begin_transaction();
924
+ db_begin_write();
925925
zDate = date_in_standard_format("now");
926926
blob_appendf(&wiki, "D %s\n", zDate);
927927
blob_appendf(&wiki, "L %F\n", zPageName);
928928
if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")!=0 ){
929929
blob_appendf(&wiki, "N %s\n", zMimetype);
@@ -1295,11 +1295,11 @@
12951295
blob_appendf( &wiki, "W %d\n%s\n", blob_size(pContent),
12961296
blob_str(pContent) );
12971297
md5sum_blob(&wiki, &cksum);
12981298
blob_appendf(&wiki, "Z %b\n", &cksum);
12991299
blob_reset(&cksum);
1300
- db_begin_transaction();
1300
+ db_begin_write();
13011301
wiki_put(&wiki, 0, wiki_need_moderation(localUser));
13021302
db_end_transaction(0);
13031303
return 1;
13041304
}
13051305
13061306
--- src/wiki.c
+++ src/wiki.c
@@ -640,11 +640,11 @@
640 && (goodCaptcha = captcha_is_correct(0))
641 ){
642 char *zDate;
643 Blob cksum;
644 blob_zero(&wiki);
645 db_begin_transaction();
646 if( isSandbox ){
647 db_set("sandbox",zBody,0);
648 db_set("sandbox-mimetype",zMimetype,0);
649 }else{
650 login_verify_csrf_secret();
@@ -919,11 +919,11 @@
919 if( pWiki ){
920 blob_append(&body, pWiki->zWiki, -1);
921 manifest_destroy(pWiki);
922 }
923 blob_zero(&wiki);
924 db_begin_transaction();
925 zDate = date_in_standard_format("now");
926 blob_appendf(&wiki, "D %s\n", zDate);
927 blob_appendf(&wiki, "L %F\n", zPageName);
928 if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")!=0 ){
929 blob_appendf(&wiki, "N %s\n", zMimetype);
@@ -1295,11 +1295,11 @@
1295 blob_appendf( &wiki, "W %d\n%s\n", blob_size(pContent),
1296 blob_str(pContent) );
1297 md5sum_blob(&wiki, &cksum);
1298 blob_appendf(&wiki, "Z %b\n", &cksum);
1299 blob_reset(&cksum);
1300 db_begin_transaction();
1301 wiki_put(&wiki, 0, wiki_need_moderation(localUser));
1302 db_end_transaction(0);
1303 return 1;
1304 }
1305
1306
--- src/wiki.c
+++ src/wiki.c
@@ -640,11 +640,11 @@
640 && (goodCaptcha = captcha_is_correct(0))
641 ){
642 char *zDate;
643 Blob cksum;
644 blob_zero(&wiki);
645 db_begin_write();
646 if( isSandbox ){
647 db_set("sandbox",zBody,0);
648 db_set("sandbox-mimetype",zMimetype,0);
649 }else{
650 login_verify_csrf_secret();
@@ -919,11 +919,11 @@
919 if( pWiki ){
920 blob_append(&body, pWiki->zWiki, -1);
921 manifest_destroy(pWiki);
922 }
923 blob_zero(&wiki);
924 db_begin_write();
925 zDate = date_in_standard_format("now");
926 blob_appendf(&wiki, "D %s\n", zDate);
927 blob_appendf(&wiki, "L %F\n", zPageName);
928 if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")!=0 ){
929 blob_appendf(&wiki, "N %s\n", zMimetype);
@@ -1295,11 +1295,11 @@
1295 blob_appendf( &wiki, "W %d\n%s\n", blob_size(pContent),
1296 blob_str(pContent) );
1297 md5sum_blob(&wiki, &cksum);
1298 blob_appendf(&wiki, "Z %b\n", &cksum);
1299 blob_reset(&cksum);
1300 db_begin_write();
1301 wiki_put(&wiki, 0, wiki_need_moderation(localUser));
1302 db_end_transaction(0);
1303 return 1;
1304 }
1305
1306
+2 -2
--- src/xfer.c
+++ src/xfer.c
@@ -1167,11 +1167,11 @@
11671167
xfer.maxTime = db_get_int("max-download-time", 30);
11681168
if( xfer.maxTime<1 ) xfer.maxTime = 1;
11691169
xfer.maxTime += time(NULL);
11701170
g.xferPanic = 1;
11711171
1172
- db_begin_transaction();
1172
+ db_begin_write();
11731173
db_multi_exec(
11741174
"CREATE TEMP TABLE onremote(rid INTEGER PRIMARY KEY);"
11751175
);
11761176
manifest_crosslink_begin();
11771177
rc = xfer_run_common_script();
@@ -1802,11 +1802,11 @@
18021802
}
18031803
18041804
while( go ){
18051805
int newPhantom = 0;
18061806
char *zRandomness;
1807
- db_begin_transaction();
1807
+ db_begin_write();
18081808
db_record_repository_filename(0);
18091809
db_multi_exec(
18101810
"CREATE TEMP TABLE onremote(rid INTEGER PRIMARY KEY);"
18111811
);
18121812
manifest_crosslink_begin();
18131813
--- src/xfer.c
+++ src/xfer.c
@@ -1167,11 +1167,11 @@
1167 xfer.maxTime = db_get_int("max-download-time", 30);
1168 if( xfer.maxTime<1 ) xfer.maxTime = 1;
1169 xfer.maxTime += time(NULL);
1170 g.xferPanic = 1;
1171
1172 db_begin_transaction();
1173 db_multi_exec(
1174 "CREATE TEMP TABLE onremote(rid INTEGER PRIMARY KEY);"
1175 );
1176 manifest_crosslink_begin();
1177 rc = xfer_run_common_script();
@@ -1802,11 +1802,11 @@
1802 }
1803
1804 while( go ){
1805 int newPhantom = 0;
1806 char *zRandomness;
1807 db_begin_transaction();
1808 db_record_repository_filename(0);
1809 db_multi_exec(
1810 "CREATE TEMP TABLE onremote(rid INTEGER PRIMARY KEY);"
1811 );
1812 manifest_crosslink_begin();
1813
--- src/xfer.c
+++ src/xfer.c
@@ -1167,11 +1167,11 @@
1167 xfer.maxTime = db_get_int("max-download-time", 30);
1168 if( xfer.maxTime<1 ) xfer.maxTime = 1;
1169 xfer.maxTime += time(NULL);
1170 g.xferPanic = 1;
1171
1172 db_begin_write();
1173 db_multi_exec(
1174 "CREATE TEMP TABLE onremote(rid INTEGER PRIMARY KEY);"
1175 );
1176 manifest_crosslink_begin();
1177 rc = xfer_run_common_script();
@@ -1802,11 +1802,11 @@
1802 }
1803
1804 while( go ){
1805 int newPhantom = 0;
1806 char *zRandomness;
1807 db_begin_write();
1808 db_record_repository_filename(0);
1809 db_multi_exec(
1810 "CREATE TEMP TABLE onremote(rid INTEGER PRIMARY KEY);"
1811 );
1812 manifest_crosslink_begin();
1813

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button