Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Automatically pull the shunning list when pulling from the "remote-url" server, which we assume is a trusted server. Add the new "auto-shun" setting to disable this feature, if desired. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
515814f8e72ff2cabe62b6c7d84be6c4 |
| User & Date: | drh 2010-07-03 15:26:11.000 |
Context
|
2010-07-03
| ||
| 15:33 | Update SQLite to the latest beta of 3.7.0. This provides much better server concurrency when the repository database file is set to WAL mode. check-in: fb5f0c2580 user: drh tags: trunk, release | |
| 15:26 | Automatically pull the shunning list when pulling from the "remote-url" server, which we assume is a trusted server. Add the new "auto-shun" setting to disable this feature, if desired. check-in: 515814f8e7 user: drh tags: trunk | |
|
2010-06-26
| ||
| 20:37 | Update the built-in SQLite to the latest from the SQLite development tree. check-in: ba14c7549c user: drh tags: trunk | |
Changes
Changes to src/db.c.
| ︙ | ︙ | |||
1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 | ** With a value argument it changes the property for the current repository. ** ** The "unset" command clears a property setting. ** ** ** auto-captcha If enabled, the Login page provides a button to ** fill in the captcha password. Default: on ** ** autosync If enabled, automatically pull prior to commit ** or update and automatically push after commit or ** tag or branch creation. If the the value is "pullonly" ** then only pull operations occur automatically. ** ** binary-glob The VALUE is a comma-separated list of GLOB patterns | > > > | 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 | ** With a value argument it changes the property for the current repository. ** ** The "unset" command clears a property setting. ** ** ** auto-captcha If enabled, the Login page provides a button to ** fill in the captcha password. Default: on ** ** auto-shun If enabled, automatically pull the shunning list ** from a server to which the client autosyncs. ** ** autosync If enabled, automatically pull prior to commit ** or update and automatically push after commit or ** tag or branch creation. If the the value is "pullonly" ** then only pull operations occur automatically. ** ** binary-glob The VALUE is a comma-separated list of GLOB patterns |
| ︙ | ︙ | |||
1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 |
** web browser when given a URL as an argument.
** Defaults to "start" on windows, "open" on Mac,
** and "firefox" on Unix.
*/
void setting_cmd(void){
static const char *azName[] = {
"auto-captcha",
"autosync",
"binary-glob",
"clearsign",
"diff-command",
"dont-push",
"editor",
"gdiff-command",
| > | 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 |
** web browser when given a URL as an argument.
** Defaults to "start" on windows, "open" on Mac,
** and "firefox" on Unix.
*/
void setting_cmd(void){
static const char *azName[] = {
"auto-captcha",
"auto-shun",
"autosync",
"binary-glob",
"clearsign",
"diff-command",
"dont-push",
"editor",
"gdiff-command",
|
| ︙ | ︙ |
Changes to src/sync.c.
| ︙ | ︙ | |||
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
** autosync. This will be a pull if the argument is true or a push
** if the argument is false.
*/
void autosync(int flags){
const char *zUrl;
const char *zAutosync;
const char *zPw;
if( g.fNoSync ){
return;
}
zAutosync = db_get("autosync", 0);
if( zAutosync ){
if( (flags & AUTOSYNC_PUSH)!=0 && memcmp(zAutosync,"pull",4)==0 ){
return; /* Do not auto-push when autosync=pullonly */
| > | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
** autosync. This will be a pull if the argument is true or a push
** if the argument is false.
*/
void autosync(int flags){
const char *zUrl;
const char *zAutosync;
const char *zPw;
int configSync = 0; /* configuration changes transferred */
if( g.fNoSync ){
return;
}
zAutosync = db_get("autosync", 0);
if( zAutosync ){
if( (flags & AUTOSYNC_PUSH)!=0 && memcmp(zAutosync,"pull",4)==0 ){
return; /* Do not auto-push when autosync=pullonly */
|
| ︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 |
if( zUrl==0 ){
return; /* No default server */
}
zPw = db_get("last-sync-pw", 0);
url_parse(zUrl);
if( g.urlUser!=0 && g.urlPasswd==0 ){
g.urlPasswd = mprintf("%s", zPw);
}
printf("Autosync: %s\n", g.urlCanonical);
url_enable_proxy("via proxy: ");
| > > > > > > > > > > | | > > | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
if( zUrl==0 ){
return; /* No default server */
}
zPw = db_get("last-sync-pw", 0);
url_parse(zUrl);
if( g.urlUser!=0 && g.urlPasswd==0 ){
g.urlPasswd = mprintf("%s", zPw);
}
if( (flags & AUTOSYNC_PULL)!=0 && db_get_boolean("auto-shun",1) ){
/* When doing an automatic pull, also automatically pull shuns from
** the server if pull_shuns is enabled.
**
** TODO: What happens if the shun list gets really big?
** Maybe the shunning list should only be pulled on every 10th
** autosync, or something?
*/
configSync = CONFIGSET_SHUN;
}
printf("Autosync: %s\n", g.urlCanonical);
url_enable_proxy("via proxy: ");
client_sync((flags & AUTOSYNC_PUSH)!=0, 1, 0, configSync, 0);
}
/*
** This routine processes the command-line argument for push, pull,
** and sync. If a command-line argument is given, that is the URL
** of a server to sync against. If no argument is given, use the
** most recently synced URL. Remember the current URL for next time.
*/
static int process_sync_args(void){
const char *zUrl = 0;
const char *zPw = 0;
int configSync = 0;
int urlOptional = find_option("autourl",0,0)!=0;
g.dontKeepUrl = find_option("once",0,0)!=0;
url_proxy_options();
db_find_and_open_repository(1);
db_open_config(0);
if( g.argc==2 ){
zUrl = db_get("last-sync-url", 0);
zPw = db_get("last-sync-pw", 0);
if( db_get_boolean("auto-sync",1) ) configSync = CONFIGSET_SHUN;
}else if( g.argc==3 ){
zUrl = g.argv[2];
}
if( zUrl==0 ){
if( urlOptional ) exit(0);
usage("URL");
}
|
| ︙ | ︙ | |||
104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
}
}
user_select();
if( g.argc==2 ){
printf("Server: %s\n", g.urlCanonical);
}
url_enable_proxy("via proxy: ");
}
/*
** COMMAND: pull
**
** Usage: %fossil pull ?URL? ?options?
**
| > | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
}
}
user_select();
if( g.argc==2 ){
printf("Server: %s\n", g.urlCanonical);
}
url_enable_proxy("via proxy: ");
return configSync;
}
/*
** COMMAND: pull
**
** Usage: %fossil pull ?URL? ?options?
**
|
| ︙ | ︙ | |||
126 127 128 129 130 131 132 |
** subsequent push, pull, and sync operations. However, the "--once"
** command-line option makes the URL a one-time-use URL that is not
** saved.
**
** See also: clone, push, sync, remote-url
*/
void pull_cmd(void){
| | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
** subsequent push, pull, and sync operations. However, the "--once"
** command-line option makes the URL a one-time-use URL that is not
** saved.
**
** See also: clone, push, sync, remote-url
*/
void pull_cmd(void){
int syncFlags = process_sync_args();
client_sync(0,1,0,syncFlags,0);
}
/*
** COMMAND: push
**
** Usage: %fossil push ?URL? ?options?
**
|
| ︙ | ︙ | |||
180 181 182 183 184 185 186 |
** subsequent push, pull, and sync operations. However, the "--once"
** command-line option makes the URL a one-time-use URL that is not
** saved.
**
** See also: clone, push, pull, remote-url
*/
void sync_cmd(void){
| | | | 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
** subsequent push, pull, and sync operations. However, the "--once"
** command-line option makes the URL a one-time-use URL that is not
** saved.
**
** See also: clone, push, pull, remote-url
*/
void sync_cmd(void){
int syncFlags = process_sync_args();
client_sync(1,1,0,syncFlags,0);
}
/*
** COMMAND: remote-url
**
** Usage: %fossil remote-url ?URL|off?
**
|
| ︙ | ︙ |