The following patch makes it possible to "sync-then-update"  
or "pull-then-update" in one command (like Mercurial "hg pull -u"):


Index: src/sync.c
===================================================================
--- src/sync.c
+++ src/sync.c
@@ -68,14 +68,16 @@
 ** 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.
 */
+int alsoUpdate = 0;
 void process_sync_args(void){
   const char *zUrl = 0;
   int urlOptional = find_option("autourl",0,0)!=0;
   int dontKeepUrl = find_option("once",0,0)!=0;
+  alsoUpdate = find_option("update",0,0)!=0;
   url_proxy_options();
   db_find_and_open_repository(1);
   if( g.argc==2 ){
     zUrl = db_get("last-sync-url", 0);
   }else if( g.argc==3 ){
@@ -106,11 +108,12 @@
 **
 ** Usage: %fossil pull ?URL? ?options?
 **
 ** Pull changes from a remote repository into the local repository.
 ** Use the "-R REPO" or "--repository REPO" command-line options
-** to specify an alternative repository file.
+** to specify an alternative repository file.  Use the "--update"
+** command-line option to perform an update after the pull.
 **
 ** If the URL is not specified, then the URL from the most recent
 ** clone, push, pull, remote-url, or sync command is used.
 **
 ** The URL specified normally becomes the new "remote-url" used for
@@ -121,10 +124,13 @@
 ** See also: clone, push, sync, remote-url
 */
 void pull_cmd(void){
   process_sync_args();
   client_sync(0,1,0,0,0);
+  if (alsoUpdate) {
+       update_cmd();
+  }
 }
 
 /*
 ** COMMAND: push
 **
@@ -156,11 +162,12 @@
 ** Usage: %fossil sync ?URL? ?options?
 **
 ** Synchronize the local repository with a remote repository.  This is
 ** the equivalent of running both "push" and "pull" at the same time.
 ** Use the "-R REPO" or "--repository REPO" command-line options
-** to specify an alternative repository file.
+** to specify an alternative repository file.  Use the "--update"
+** command-line option to perform an update after the sync.
 **
 ** If a user-id and password are required, specify them as follows:
 **
 **     http://userid:passw...@www.domain.com:1234/path
 **
@@ -175,10 +182,13 @@
 ** See also:  clone, push, pull, remote-url
 */
 void sync_cmd(void){
   process_sync_args();
   client_sync(1,1,0,0,0);
+  if (alsoUpdate) {
+       update_cmd();
+  }
 }
 
 /*
 ** COMMAND: remote-url
 **

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to