Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fix the server-side clone so that it is able to operate on a read-only repository database. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
147bf47d6e145686550304ec8061281e |
| User & Date: | drh 2020-08-27 01:37:19.054 |
Context
|
2020-08-27
| ||
| 12:34 | Do not assume that missing SCRIPT_NAME and PATH_INFO environment variables for CGI have a value which is an empty string. check-in: 9601b6cfc7 user: drh tags: trunk | |
| 01:37 | Fix the server-side clone so that it is able to operate on a read-only repository database. check-in: 147bf47d6e user: drh tags: trunk | |
|
2020-08-26
| ||
| 21:43 | Improvements to help-text HTML formatting. check-in: 517223eca9 user: drh tags: trunk | |
Changes
Changes to src/db.c.
| ︙ | ︙ | |||
213 214 215 216 217 218 219 |
db.nBegin++;
}
/*
** Begin a new transaction for writing.
*/
void db_begin_write_real(const char *zStartFile, int iStartLine){
if( db.nBegin==0 ){
| > > > | | | | | | | > | 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 |
db.nBegin++;
}
/*
** Begin a new transaction for writing.
*/
void db_begin_write_real(const char *zStartFile, int iStartLine){
if( db.nBegin==0 ){
if( !db_is_writeable("repository") ){
db_multi_exec("BEGIN");
}else{
db_multi_exec("BEGIN IMMEDIATE");
sqlite3_commit_hook(g.db, db_verify_at_commit, 0);
db.nPriorChanges = sqlite3_total_changes(g.db);
db.doRollback = 0;
db.zStartFile = zStartFile;
db.iStartLine = iStartLine;
db.wrTxn = 1;
}
}else if( !db.wrTxn ){
fossil_warning("read txn at %s:%d might cause SQLITE_BUSY "
"for the write txn at %s:%d",
db.zStartFile, db.iStartLine, zStartFile, iStartLine);
}
db.nBegin++;
}
|
| ︙ | ︙ |
Changes to src/hook.c.
| ︙ | ︙ | |||
120 121 122 123 124 125 126 |
** (N is normally a small number) and so post-receive hooks should
** probably be deferred until after the new artifacts arrive.
**
** If N==0, then there is no expectation of new artifacts arriving
** soon and so post-receive hooks can be run without delay.
*/
void hook_expecting_more_artifacts(int N){
| > > | | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
** (N is normally a small number) and so post-receive hooks should
** probably be deferred until after the new artifacts arrive.
**
** If N==0, then there is no expectation of new artifacts arriving
** soon and so post-receive hooks can be run without delay.
*/
void hook_expecting_more_artifacts(int N){
if( !db_is_writeable("repository") ){
/* No-op */
}else if( N>0 ){
db_unprotect(PROTECT_CONFIG);
db_multi_exec(
"REPLACE INTO config(name,value,mtime)"
"VALUES('hook-embargo',now()+%d,now())",
N
);
db_protect_pop();
|
| ︙ | ︙ |