Fossil

Check-in [560483f5]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add warning to "fossil sync", when a new fork is created during this sync.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 560483f50436c9f7edfe5399209e68968b807e83
User & Date: jan.nijtmans 2015-04-25 20:38:25
Context
2015-04-26
17:35
On all timelines, provide a hyperlink on the timestamp to another timeline that shows all activity around that point in time. check-in: d3f9e588 user: drh tags: trunk
17:12
Combine "fossil forks" with "fossil info" command check-in: 4359bd8d user: jan.nijtmans tags: sync-forkwarn
2015-04-25
20:38
Add warning to "fossil sync", when a new fork is created during this sync. check-in: 560483f5 user: jan.nijtmans tags: trunk
2015-04-23
00:35
Only check leaves for forks on multi-child nodes. This prevents warnings from being extra verbose when a commit is made on any of the forks. Closed-Leaf check-in: 64b221aa user: andybradford tags: sync-forkwarn
2015-04-21
07:12
Fix auto-adjust of CLI timeline to terminal width on Linux. Thanks to Warren Young for analysis and patch! check-in: d32ca592 user: jan.nijtmans tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/merge.c.

96
97
98
99
100
101
102





























103
104
105
106
107
108
109
  blob_reset(&sql);
  if( db_step(&q)==SQLITE_ROW ){
    rid = db_column_int(&q, 0);
  }
  db_finalize(&q);
  return rid;
}






























/*
** COMMAND: merge
**
** Usage: %fossil merge ?OPTIONS? ?VERSION?
**
** The argument VERSION is a version that should be merged into the







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  blob_reset(&sql);
  if( db_step(&q)==SQLITE_ROW ){
    rid = db_column_int(&q, 0);
  }
  db_finalize(&q);
  return rid;
}

/*
** Check content that was received with rcvid and return true if any
** fork was created.
*/
int fossil_any_has_fork(int rcvid){
  static Stmt q;
  int fForkSeen = 0;

  db_static_prepare(&q,
    "  SELECT pid FROM plink WHERE pid>0 AND isprim"
    "     AND cid IN (SELECT blob.rid FROM blob"
    "   WHERE rcvid=:rcvid)");
  db_bind_int(&q, ":rcvid", rcvid);
  while( !fForkSeen && db_step(&q)==SQLITE_ROW ){
    int pid = db_column_int(&q, 0);
    if( count_nonbranch_children(pid)>1 ){
      compute_leaves(pid,1);
      if( db_int(0, "SELECT count(*) FROM leaves")>1 ){
        int rid = db_int(0, "SELECT rid FROM leaves, event"
                            " WHERE event.objid=leaves.rid"
                            " ORDER BY event.mtime DESC LIMIT 1");
        fForkSeen = fossil_find_nearest_fork(rid, db_open_local(0))!=0;
      }
    }
  }
  db_finalize(&q);
  return fForkSeen;
}

/*
** COMMAND: merge
**
** Usage: %fossil merge ?OPTIONS? ?VERSION?
**
** The argument VERSION is a version that should be merged into the

Changes to src/xfer.c.

1969
1970
1971
1972
1973
1974
1975




1976
1977
1978
  transport_close(&g.url);
  transport_global_shutdown(&g.url);
  if( nErr && go==2 ){
    db_multi_exec("DROP TABLE onremote");
    manifest_crosslink_end(MC_PERMIT_HOOKS);
    content_enable_dephantomize(1);
    db_end_transaction(0);




  }
  return nErr;
}







>
>
>
>



1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
  transport_close(&g.url);
  transport_global_shutdown(&g.url);
  if( nErr && go==2 ){
    db_multi_exec("DROP TABLE onremote");
    manifest_crosslink_end(MC_PERMIT_HOOKS);
    content_enable_dephantomize(1);
    db_end_transaction(0);
  }
  if( (syncFlags & SYNC_CLONE)==0 && fossil_any_has_fork(g.rcvid) ){
    fossil_warning("***** WARNING: a fork has occurred ***** use "
                   "\"fossil forks\" for more details.");
  }
  return nErr;
}