Fossil SCM
Protect Q-card from having the same UUID as the parent. Example: "fossil merge --cherrypick trunk" followed by "fossil commit --allow-empty"
Commit
d5649979ed10dd73ba3eaec02c20be72532f61fa
Parent
ad32c20f8e28ebc…
1 file changed
+5
-2
+5
-2
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -1030,18 +1030,21 @@ | ||
| 1030 | 1030 | db_finalize(&q); |
| 1031 | 1031 | free(zDate); |
| 1032 | 1032 | blob_appendf(pOut, "\n"); |
| 1033 | 1033 | |
| 1034 | 1034 | db_prepare(&q, |
| 1035 | - "SELECT CASE vmerge.id WHEN -1 THEN '+' ELSE '-' END || blob.uuid" | |
| 1035 | + "SELECT CASE vmerge.id WHEN -1 THEN '+' ELSE '-' END || blob.uuid, merge" | |
| 1036 | 1036 | " FROM vmerge, blob" |
| 1037 | 1037 | " WHERE (vmerge.id=-1 OR vmerge.id=-2)" |
| 1038 | 1038 | " AND blob.rid=vmerge.merge" |
| 1039 | 1039 | " ORDER BY 1"); |
| 1040 | 1040 | while( db_step(&q)==SQLITE_ROW ){ |
| 1041 | 1041 | const char *zCherrypickUuid = db_column_text(&q, 0); |
| 1042 | - blob_appendf(pOut, "Q %s\n", zCherrypickUuid); | |
| 1042 | + int mid = db_column_int(&q, 1); | |
| 1043 | + if( mid != vid ){ | |
| 1044 | + blob_appendf(pOut, "Q %s\n", zCherrypickUuid); | |
| 1045 | + } | |
| 1043 | 1046 | } |
| 1044 | 1047 | db_finalize(&q); |
| 1045 | 1048 | |
| 1046 | 1049 | if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum); |
| 1047 | 1050 | zColor = p->zColor; |
| 1048 | 1051 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -1030,18 +1030,21 @@ | |
| 1030 | db_finalize(&q); |
| 1031 | free(zDate); |
| 1032 | blob_appendf(pOut, "\n"); |
| 1033 | |
| 1034 | db_prepare(&q, |
| 1035 | "SELECT CASE vmerge.id WHEN -1 THEN '+' ELSE '-' END || blob.uuid" |
| 1036 | " FROM vmerge, blob" |
| 1037 | " WHERE (vmerge.id=-1 OR vmerge.id=-2)" |
| 1038 | " AND blob.rid=vmerge.merge" |
| 1039 | " ORDER BY 1"); |
| 1040 | while( db_step(&q)==SQLITE_ROW ){ |
| 1041 | const char *zCherrypickUuid = db_column_text(&q, 0); |
| 1042 | blob_appendf(pOut, "Q %s\n", zCherrypickUuid); |
| 1043 | } |
| 1044 | db_finalize(&q); |
| 1045 | |
| 1046 | if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum); |
| 1047 | zColor = p->zColor; |
| 1048 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -1030,18 +1030,21 @@ | |
| 1030 | db_finalize(&q); |
| 1031 | free(zDate); |
| 1032 | blob_appendf(pOut, "\n"); |
| 1033 | |
| 1034 | db_prepare(&q, |
| 1035 | "SELECT CASE vmerge.id WHEN -1 THEN '+' ELSE '-' END || blob.uuid, merge" |
| 1036 | " FROM vmerge, blob" |
| 1037 | " WHERE (vmerge.id=-1 OR vmerge.id=-2)" |
| 1038 | " AND blob.rid=vmerge.merge" |
| 1039 | " ORDER BY 1"); |
| 1040 | while( db_step(&q)==SQLITE_ROW ){ |
| 1041 | const char *zCherrypickUuid = db_column_text(&q, 0); |
| 1042 | int mid = db_column_int(&q, 1); |
| 1043 | if( mid != vid ){ |
| 1044 | blob_appendf(pOut, "Q %s\n", zCherrypickUuid); |
| 1045 | } |
| 1046 | } |
| 1047 | db_finalize(&q); |
| 1048 | |
| 1049 | if( p->pCksum ) blob_appendf(pOut, "R %b\n", p->pCksum); |
| 1050 | zColor = p->zColor; |
| 1051 |