@@ -129,10 +129,11 @@
129 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** check-out
130 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --nocompress Omit extra delta compression
131 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --no-open Clone only. Do not open a check-out.
132 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --once Don't remember the URI.
133 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --private Also clone private branches
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --resume Resume a failed clone
134 135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --save-http-password Remember the HTTP password without asking
135 136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -c|--ssh-command SSH Use SSH as the "ssh" command
136 137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --ssl-identity FILENAME Use the SSL identity if requested by the server
137 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --transport-command CMD Use CMD to move messages to the server and back
138 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -u|--unversioned Also sync unversioned content
@@ -149,10 +150,11 @@
149 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int urlFlags = URL_PROMPT_PW | URL_REMEMBER;
150 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int syncFlags = SYNC_CLONE;
151 152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int noCompress = find_option("nocompress",0,0)!=0;
152 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int noOpen = find_option("no-open",0,0)!=0;
153 154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int allowNested = find_option("nested",0,0)!=0; /* Used by open */
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bResume = find_option("resume",0,0)!=0; /* Resume a failed clone */
154 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zRepo = 0; /* Name of the new local repository file */
155 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zWorkDir = 0; /* Open in this directory, if not zero */
156 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
157 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
158 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Also clone private branches */
@@ -197,11 +199,11 @@
197 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zWorkDir==0 ){
198 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zWorkDir = mprintf("./%s", zBase);
199 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
200 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zBase);
201 203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( -1 != file_size(zRepo, ExtFILE) ){
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( -1 != file_size(zRepo, ExtFILE) && bResume==0 ){
203 205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("file already exists: %s", zRepo);
204 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
205 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Fail before clone if open will fail because inside an open check-out */
206 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zWorkDir!=0 && zWorkDir[0]!=0 && !noOpen ){
207 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_open_local_v2(0, allowNested) ){
@@ -226,19 +228,27 @@
226 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
227 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
228 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("Repository cloned into %s\n", zRepo);
229 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
230 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_close_config();
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_create_repository(zRepo);
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_open_repository(zRepo);
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_open_config(0,0);
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_begin_transaction();
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_record_repository_filename(zRepo);
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_initial_setup(0, 0, zDefaultUser);
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- user_select();
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_set("content-schema", CONTENT_SCHEMA, 0);
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_set("aux-schema", AUX_SCHEMA_MAX, 0);
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bResume ){
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_open_repository(zRepo);
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_open_config(0,0);
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_begin_transaction();
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ user_select();
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_create_repository(zRepo);
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_open_repository(zRepo);
241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_open_config(0,0);
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_begin_transaction();
243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_record_repository_filename(zRepo);
244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_initial_setup(0, 0, zDefaultUser);
245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ user_select();
246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set("content-schema", CONTENT_SCHEMA, 0);
247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set("aux-schema", AUX_SCHEMA_MAX, 0);
248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set_int("aux-clone-seqno", 1, 0);
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
240 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_set("rebuilt", get_version(), 0);
241 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_unset("hash-policy", 0);
242 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
remember_or_get_http_auth(zHttpAuth, urlFlags & URL_REMEMBER, g.argv[2]);
243 253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_remember();
244 254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.zSSLIdentity!=0 ){
@@ -263,22 +273,26 @@
263 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_get_password_if_needed();
264 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.xlinkClusterOnly = 1;
265 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nErr = client_sync(syncFlags,CONFIGSET_ALL,0,0);
266 276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.xlinkClusterOnly = 0;
267 277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verify_cancel();
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nErr ){
279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_warning("server returned an error - clone incomplete");
280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_unprotect(PROTECT_CONFIG);
282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("DELETE FROM config WHERE name = 'aux-clone-seqno';");
283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_protect_pop();
284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
268 285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
269 286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_close(1);
270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( nErr ){
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_delete(zRepo);
272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("server returned an error - clone aborted");
273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
274 287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_open_repository(zRepo);
275 288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
276 289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
277 290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_exists("SELECT 1 FROM delta WHERE srcId IN phantom") ){
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("there are unresolved deltas -"
279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " the clone is probably incomplete and unusable.");
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_warning("there are unresolved deltas -"
292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " the clone is probably incomplete and unusable.\n"
293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "It may be possible to continue clone with --resume.");
280 294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
281 295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("Rebuilding repository meta-data...\n");
282 296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rebuild_db(1, 0);
283 297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !noCompress ){
284 298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nDelta = 0;
285 299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!