Differences From:
File
src/sync.c
part of check-in
[b773dda29b]
- Autosync config parameter added (autosync). Setting this to 1, y or Y (or yes, Yes, yes, YES, etc...) will cause autosync's to happen during certian operations. Right now, the only operation paying attention to this is update. If autosync and you do fossil update, a pull takes place first, then an update. Others will follow (commit for one).
by
jnc on
2007-09-25 06:56:54.
[view]
To:
File
src/sync.c
part of check-in
[fff234b77c]
- Updates to the autosync logic. Add the "setting" command.
by
drh on
2007-09-25 20:23:52.
[view]
@@ -27,21 +27,33 @@
#include "sync.h"
#include <assert.h>
/*
-** Determine if an autosync should be done or not. The config setting,
-** autosync must start with 1, y or Y. The last-sync-url must also be
-** defined.
+** If the respository is configured for autosyncing, then do an
+** autosync. This will be a pull if the argument is true or a push
+** if the argument is false. Return true if the autosync is done
+** and false if autosync is not requested for the current repository.
*/
-int do_autosync(void){
- const char *zAutoSync = db_global_get("autosync", 0);
- if( zAutoSync != 0
- && (zAutoSync[0]=='1' || zAutoSync[0]=='y' || zAutoSync=='Y')
- && db_get("last-sync-url", 0)!=0 ){
- return 1;
- }else{
+int autosync(int pullFlag){
+ const char *zUrl;
+ if( db_get_int("autosync", 0)==0 ){
return 0;
}
+ zUrl = db_get("last-sync-url", 0);
+ if( zUrl ){
+ return 0; /* No default server */
+ }
+ url_parse(zUrl);
+ if( g.urlIsFile ){
+ return 0; /* Network sync only */
+ }
+ if( g.urlPort!=80 ){
+ printf("Autosync: http://%s:%d%s\n", g.urlName, g.urlPort, g.urlPath);
+ }else{
+ printf("Autosync: http://%s%s\n", g.urlName, g.urlPath);
+ }
+ client_sync(!pullFlag, pullFlag, 0);
+ return 1;
}
/*
** This routine processes the command-line argument for push, pull,