Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fix the "fossil rebuild" command so that it no longer trashes the unversioned content. Add the -u option to "fossil clone" to retrieve unversioned content during the clone. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
a5d8548f61512c4cba76af5aa31c25d9 |
| User & Date: | drh 2016-08-18 12:33:51.798 |
Context
|
2016-08-18
| ||
| 13:20 | Add documentation on unversioned content. ... (check-in: f187ada697 user: drh tags: trunk) | |
| 12:33 | Fix the "fossil rebuild" command so that it no longer trashes the unversioned content. Add the -u option to "fossil clone" to retrieve unversioned content during the clone. ... (check-in: a5d8548f61 user: drh tags: trunk) | |
| 11:16 | Fix typos in the sync documentation. ... (check-in: d3dabbb08c user: drh tags: trunk) | |
Changes
Changes to src/clone.c.
| ︙ | ︙ | |||
112 113 114 115 116 117 118 | ** Options: ** --admin-user|-A USERNAME Make USERNAME the administrator ** --once Don't remember the URI. ** --private Also clone private branches ** --ssl-identity FILENAME Use the SSL identity if requested by the server ** --ssh-command|-c SSH Use SSH as the "ssh" command ** --httpauth|-B USER:PASS Add HTTP Basic Authorization to requests | > | | > | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
** Options:
** --admin-user|-A USERNAME Make USERNAME the administrator
** --once Don't remember the URI.
** --private Also clone private branches
** --ssl-identity FILENAME Use the SSL identity if requested by the server
** --ssh-command|-c SSH Use SSH as the "ssh" command
** --httpauth|-B USER:PASS Add HTTP Basic Authorization to requests
** -u|--unversioned Also sync unversioned content
** -v|--verbose Show more statistics in output
**
** See also: init
*/
void clone_cmd(void){
char *zPassword;
const char *zDefaultUser; /* Optional name of the default user */
const char *zHttpAuth; /* HTTP Authorization user:pass information */
int nErr = 0;
int urlFlags = URL_PROMPT_PW | URL_REMEMBER;
int syncFlags = SYNC_CLONE;
/* Also clone private branches */
if( find_option("private",0,0)!=0 ) syncFlags |= SYNC_PRIVATE;
if( find_option("once",0,0)!=0) urlFlags &= ~URL_REMEMBER;
if( find_option("verbose","v",0)!=0) syncFlags |= SYNC_VERBOSE;
if( find_option("unversioned","u",0)!=0 ) syncFlags |= SYNC_UNVERSIONED;
zHttpAuth = find_option("httpauth","B",1);
zDefaultUser = find_option("admin-user","A",1);
clone_ssh_find_options();
url_proxy_options();
/* We should be done with options.. */
verify_all_options();
|
| ︙ | ︙ |
Changes to src/rebuild.c.
| ︙ | ︙ | |||
347 348 349 350 351 352 353 |
for(;;){
zTable = db_text(0,
"SELECT name FROM sqlite_master /*scan*/"
" WHERE type='table'"
" AND name NOT IN ('admin_log', 'blob','delta','rcvfrom','user',"
"'config','shun','private','reportfmt',"
"'concealed','accesslog','modreq',"
| | | 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 |
for(;;){
zTable = db_text(0,
"SELECT name FROM sqlite_master /*scan*/"
" WHERE type='table'"
" AND name NOT IN ('admin_log', 'blob','delta','rcvfrom','user',"
"'config','shun','private','reportfmt',"
"'concealed','accesslog','modreq',"
"'purgeevent','purgeitem','unversioned')"
" AND name NOT GLOB 'sqlite_*'"
" AND name NOT GLOB 'fx_*'"
);
if( zTable==0 ) break;
db_multi_exec("DROP TABLE %Q", zTable);
free(zTable);
}
|
| ︙ | ︙ |
Changes to src/xfer.c.
| ︙ | ︙ | |||
1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 |
blob_append(&send, "pragma send-private\n", -1);
}
/* When syncing unversioned files, create a TEMP table in which to store
** the names of files that do not need to be sent from client to server.
*/
if( (syncFlags & SYNC_UNVERSIONED)!=0 ){
db_multi_exec(
"CREATE TEMP TABLE uv_tosend("
" name TEXT PRIMARY KEY,"
" mtimeOnly BOOLEAN"
") WITHOUT ROWID;"
"INSERT INTO uv_toSend(name,mtimeOnly)"
" SELECT name, 0 FROM unversioned WHERE hash IS NOT NULL;"
| > | 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 |
blob_append(&send, "pragma send-private\n", -1);
}
/* When syncing unversioned files, create a TEMP table in which to store
** the names of files that do not need to be sent from client to server.
*/
if( (syncFlags & SYNC_UNVERSIONED)!=0 ){
unversioned_schema();
db_multi_exec(
"CREATE TEMP TABLE uv_tosend("
" name TEXT PRIMARY KEY,"
" mtimeOnly BOOLEAN"
") WITHOUT ROWID;"
"INSERT INTO uv_toSend(name,mtimeOnly)"
" SELECT name, 0 FROM unversioned WHERE hash IS NOT NULL;"
|
| ︙ | ︙ | |||
2355 2356 2357 2358 2359 2360 2361 |
/* If we have one or more files queued to send, then go
** another round
*/
if( xfer.nFileSent+xfer.nDeltaSent>0 || uvDoPush ){
go = 1;
}
| < < < < > > > > > | 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 |
/* If we have one or more files queued to send, then go
** another round
*/
if( xfer.nFileSent+xfer.nDeltaSent>0 || uvDoPush ){
go = 1;
}
/* If this is a clone, the go at least two rounds */
if( (syncFlags & SYNC_CLONE)!=0 && nCycle==1 ) go = 1;
/* Stop the cycle if the server sends a "clone_seqno 0" card and
** we have gone at least two rounds. Always go at least two rounds
** on a clone in order to be sure to retrieve the configuration
** information which is only sent on the second round.
*/
if( cloneSeqno<=0 && nCycle>1 ) go = 0;
/* Continue looping as long as new uvfile cards are being received
** and uvgimme cards are being sent. */
if( nUvGimmeSent>0 && nUvFileRcvd>0 ) go = 1;
db_multi_exec("DROP TABLE onremote");
if( go ){
manifest_crosslink_end(MC_PERMIT_HOOKS);
}else{
manifest_crosslink_end(MC_PERMIT_HOOKS);
content_enable_dephantomize(1);
}
|
| ︙ | ︙ |