Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fixes to the "fossil unversioned revert" command. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
122ab3fbfdb12ee8b87b11e6c4df8e24 |
| User & Date: | drh 2016-09-20 15:10:25.507 |
Context
|
2016-09-20
| ||
| 15:48 | Add the --verbose and --dryrun options to the "fossil unversioned revert" and "fossil unversioned sync" commands. check-in: b5641c5cff user: drh tags: trunk | |
| 15:10 | Fixes to the "fossil unversioned revert" command. check-in: 122ab3fbfd user: drh tags: trunk | |
|
2016-09-19
| ||
| 18:48 | Remove the unused uvStatus variable from the client-side sync implementation. check-in: 515229c5cd user: drh tags: trunk | |
Changes
Changes to src/xfer.c.
| ︙ | ︙ | |||
1748 1749 1750 1751 1752 1753 1754 |
/* Send the send-private pragma if we are trying to sync private data */
if( syncFlags & SYNC_PRIVATE ){
blob_append(&send, "pragma send-private\n", -1);
}
/* When syncing unversioned files, create a TEMP table in which to store
| | > > > > > | | | 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 |
/* Send the send-private pragma if we are trying to sync private data */
if( syncFlags & SYNC_PRIVATE ){
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 need to be sent from client to server.
**
** The initial assumption is that all unversioned files need to be sent
** to the other side. But "uvigot" cards received back from the remote
** side will normally cause many of these entries to be removed since they
** do not really need to be sent.
*/
if( (syncFlags & SYNC_UNVERSIONED)!=0 ){
unversioned_schema();
db_multi_exec(
"CREATE TEMP TABLE uv_tosend("
" name TEXT PRIMARY KEY," /* Name of file to send client->server */
" mtimeOnly BOOLEAN" /* True to only send mtime, not content */
") WITHOUT ROWID;"
"INSERT INTO uv_toSend(name,mtimeOnly)"
" SELECT name, 0 FROM unversioned WHERE hash IS NOT NULL;"
);
}
/*
|
| ︙ | ︙ | |||
1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 |
}
/* Send unversioned files present here on the client but missing or
** obsolete on the server.
**
** Or, if the SYNC_UV_REVERT flag is set, delete the local unversioned
** files that do not exist on the server.
*/
if( uvDoPush ){
assert( (syncFlags & SYNC_UNVERSIONED)!=0 );
if( syncFlags & SYNC_UV_REVERT ){
db_multi_exec(
"DELETE FROM unversioned"
" WHERE name IN (SELECT name FROM uv_tosend);"
| > > > > | 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 |
}
/* Send unversioned files present here on the client but missing or
** obsolete on the server.
**
** Or, if the SYNC_UV_REVERT flag is set, delete the local unversioned
** files that do not exist on the server.
**
** This happens on the second exchange, since we do not know what files
** need to be sent until after the uvigot cards from the first exchange
** have been processed.
*/
if( uvDoPush ){
assert( (syncFlags & SYNC_UNVERSIONED)!=0 );
if( syncFlags & SYNC_UV_REVERT ){
db_multi_exec(
"DELETE FROM unversioned"
" WHERE name IN (SELECT name FROM uv_tosend);"
|
| ︙ | ︙ | |||
2108 2109 2110 2111 2112 2113 2114 |
&& blob_is_int(&xfer.aToken[4], &size)
&& (blob_eq(&xfer.aToken[3],"-") || blob_is_uuid(&xfer.aToken[3]))
){
const char *zName = blob_str(&xfer.aToken[1]);
const char *zHash = blob_str(&xfer.aToken[3]);
int iStatus;
iStatus = unversioned_status(zName, mtime, zHash);
| | > > > > | 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 |
&& blob_is_int(&xfer.aToken[4], &size)
&& (blob_eq(&xfer.aToken[3],"-") || blob_is_uuid(&xfer.aToken[3]))
){
const char *zName = blob_str(&xfer.aToken[1]);
const char *zHash = blob_str(&xfer.aToken[3]);
int iStatus;
iStatus = unversioned_status(zName, mtime, zHash);
if( (syncFlags & SYNC_UV_REVERT)!=0 ){
if( iStatus==4 ) iStatus = 2;
if( iStatus==5 ) iStatus = 1;
}
if( iStatus<=1 ){
if( zHash[0]!='-' ){
blob_appendf(xfer.pOut, "uvgimme %s\n", zName);
nCardSent++;
nUvGimmeSent++;
db_multi_exec("DELETE FROM unversioned WHERE name=%Q", zName);
}else if( iStatus==1 ){
db_multi_exec(
"UPDATE unversioned"
" SET mtime=%lld, hash=NULL, sz=0, encoding=0, content=NULL"
" WHERE name=%Q", mtime, zName
);
db_unset("uv-hash", 0);
|
| ︙ | ︙ |