Diff
Not logged in

Differences From:

File src/checkin.c part of check-in [5cc845cfeb] - Rename the 'clearsign' setting to 'pgp-command'. Remove the 'safemerge' setting - safemerge is on by default and cannot be disabled. by drh on 2008-02-08 21:42:46. [view]

To:

File src/checkin.c part of check-in [49b59bc559] - Issue a warning after a commit if the commit causes a fork. by drh on 2008-02-09 00:11:04. [view]

@@ -344,9 +344,9 @@
 
   /*
   ** Autosync if requested.
   */
-  autosync(1);
+  autosync(AUTOSYNC_PULL);
 
   /* There are two ways this command may be executed. If there are
   ** no arguments following the word "commit", then all modified files
   ** in the checked out directory are committed. If one or more arguments
@@ -547,18 +547,11 @@
 
   /* Commit */
   db_end_transaction(0);
 
-  if( wouldFork==0 ){
-    /* Do an autosync push if requested. If wouldFork == 1, then they either
-    ** forced this commit or safe merge is on, and this commit did indeed
-    ** create a fork. In this case, we want the user to merge before sending
-    ** their new commit back to the rest of the world, so do not auto-push.
-    */
-    autosync(0);
-  }else{
-    printf("Warning: commit caused a fork to occur. Please merge and push\n");
-    printf("         your changes as soon as possible.\n");
+  autosync(AUTOSYNC_PUSH);
+  if( db_exists("SELECT 1 FROM plink WHERE pid=%d AND cid!=%d", vid, nvid) ){
+    printf("**** warning: a fork has occurred *****\n");
   }
 }
 
 /*