Fossil SCM

Add the --tag option to the "commit" command. Add new test cases that make use of the --tag option. Improvements to the testing infrastructure.

drh 2010-12-11 16:36 trunk
Commit 9d723c57ea646bf6e2809ecfec29e87597cd1550
+12 -2
--- src/checkin.c
+++ src/checkin.c
@@ -561,10 +561,11 @@
561561
Blob *pCksum, /* Repository checksum. May be 0 */
562562
const char *zDateOvrd, /* Date override. If 0 then use 'now' */
563563
const char *zUserOvrd, /* User override. If 0 then use g.zLogin */
564564
const char *zBranch, /* Branch name. May be 0 */
565565
const char *zBgColor, /* Background color. May be 0 */
566
+ const char *zTag, /* Tag to apply to this check-in */
566567
int *pnFBcard /* Number of generated B- and F-cards */
567568
){
568569
char *zDate; /* Date of the check-in */
569570
char *zParentUuid; /* UUID of parent check-in */
570571
Blob filename; /* A single filename */
@@ -683,10 +684,14 @@
683684
}
684685
if( g.markPrivate ){
685686
/* If this manifest is private, mark it as such */
686687
blob_appendf(pOut, "T +private *\n");
687688
}
689
+ if( zTag && zTag[0] ){
690
+ /* Add a symbolic tag to this check-in */
691
+ blob_appendf(pOut, "T +sym-%F *\n", zTag);
692
+ }
688693
if( zBranch && zBranch[0] ){
689694
/* For a new branch, cancel all prior propagating tags */
690695
Stmt q;
691696
db_prepare(&q,
692697
"SELECT tagname FROM tagxref, tag"
@@ -734,10 +739,12 @@
734739
** option appears. A check-in is not allowed against a closed check-in.
735740
**
736741
** The --private option creates a private check-in that is never synced.
737742
** Children of private check-ins are automatically private.
738743
**
744
+** the --tag option applies the symbolic tag name to the check-in.
745
+**
739746
** Options:
740747
**
741748
** --comment|-m COMMENT-TEXT
742749
** --message-file|-M COMMENT-FILE
743750
** --branch NEW-BRANCH-NAME
@@ -745,10 +752,11 @@
745752
** --nosign
746753
** --force|-f
747754
** --private
748755
** --baseline
749756
** --delta
757
+** --tag TAG-NAME
750758
**
751759
*/
752760
void commit_cmd(void){
753761
int hasChanges; /* True if unsaved changes exist */
754762
int vid; /* blob-id of parent version */
@@ -770,10 +778,11 @@
770778
const char *zBranch; /* Create a new branch with this name */
771779
const char *zBgColor; /* Set background color when branching */
772780
const char *zDateOvrd; /* Override date string */
773781
const char *zUserOvrd; /* Override user name */
774782
const char *zComFile; /* Read commit message from this file */
783
+ const char *zTag; /* Symbolic tag to apply to this check-in */
775784
Blob manifest; /* Manifest in baseline form */
776785
Blob muuid; /* Manifest uuid */
777786
Blob cksum1, cksum2; /* Before and after commit checksums */
778787
Blob cksum1b; /* Checksum recorded in the manifest */
779788
int szD; /* Size of the delta manifest */
@@ -789,10 +798,11 @@
789798
testRun = find_option("test",0,0)!=0;
790799
zComment = find_option("comment","m",1);
791800
forceFlag = find_option("force", "f", 0)!=0;
792801
zBranch = find_option("branch","b",1);
793802
zBgColor = find_option("bgcolor",0,1);
803
+ zTag = find_option("tag",0,1);
794804
zComFile = find_option("message-file", "M", 1);
795805
if( find_option("private",0,0) ){
796806
g.markPrivate = 1;
797807
if( zBranch==0 ) zBranch = "private";
798808
if( zBgColor==0 ) zBgColor = "#fec084"; /* Orange */
@@ -974,11 +984,11 @@
974984
if( forceDelta ){
975985
blob_zero(&manifest);
976986
}else{
977987
create_manifest(&manifest, 0, 0, &comment, vid,
978988
!forceFlag, useCksum ? &cksum1 : 0,
979
- zDateOvrd, zUserOvrd, zBranch, zBgColor, &szB);
989
+ zDateOvrd, zUserOvrd, zBranch, zBgColor, zTag, &szB);
980990
}
981991
982992
/* See if a delta-manifest would be more appropriate */
983993
if( !forceBaseline ){
984994
const char *zBaselineUuid;
@@ -994,11 +1004,11 @@
9941004
}
9951005
if( pBaseline ){
9961006
Blob delta;
9971007
create_manifest(&delta, zBaselineUuid, pBaseline, &comment, vid,
9981008
!forceFlag, useCksum ? &cksum1 : 0,
999
- zDateOvrd, zUserOvrd, zBranch, zBgColor, &szD);
1009
+ zDateOvrd, zUserOvrd, zBranch, zBgColor, zTag, &szD);
10001010
/*
10011011
** At this point, two manifests have been constructed, either of
10021012
** which would work for this checkin. The first manifest (held
10031013
** in the "manifest" variable) is a baseline manifest and the second
10041014
** (held in variable named "delta") is a delta manifest. The
10051015
--- src/checkin.c
+++ src/checkin.c
@@ -561,10 +561,11 @@
561 Blob *pCksum, /* Repository checksum. May be 0 */
562 const char *zDateOvrd, /* Date override. If 0 then use 'now' */
563 const char *zUserOvrd, /* User override. If 0 then use g.zLogin */
564 const char *zBranch, /* Branch name. May be 0 */
565 const char *zBgColor, /* Background color. May be 0 */
 
566 int *pnFBcard /* Number of generated B- and F-cards */
567 ){
568 char *zDate; /* Date of the check-in */
569 char *zParentUuid; /* UUID of parent check-in */
570 Blob filename; /* A single filename */
@@ -683,10 +684,14 @@
683 }
684 if( g.markPrivate ){
685 /* If this manifest is private, mark it as such */
686 blob_appendf(pOut, "T +private *\n");
687 }
 
 
 
 
688 if( zBranch && zBranch[0] ){
689 /* For a new branch, cancel all prior propagating tags */
690 Stmt q;
691 db_prepare(&q,
692 "SELECT tagname FROM tagxref, tag"
@@ -734,10 +739,12 @@
734 ** option appears. A check-in is not allowed against a closed check-in.
735 **
736 ** The --private option creates a private check-in that is never synced.
737 ** Children of private check-ins are automatically private.
738 **
 
 
739 ** Options:
740 **
741 ** --comment|-m COMMENT-TEXT
742 ** --message-file|-M COMMENT-FILE
743 ** --branch NEW-BRANCH-NAME
@@ -745,10 +752,11 @@
745 ** --nosign
746 ** --force|-f
747 ** --private
748 ** --baseline
749 ** --delta
 
750 **
751 */
752 void commit_cmd(void){
753 int hasChanges; /* True if unsaved changes exist */
754 int vid; /* blob-id of parent version */
@@ -770,10 +778,11 @@
770 const char *zBranch; /* Create a new branch with this name */
771 const char *zBgColor; /* Set background color when branching */
772 const char *zDateOvrd; /* Override date string */
773 const char *zUserOvrd; /* Override user name */
774 const char *zComFile; /* Read commit message from this file */
 
775 Blob manifest; /* Manifest in baseline form */
776 Blob muuid; /* Manifest uuid */
777 Blob cksum1, cksum2; /* Before and after commit checksums */
778 Blob cksum1b; /* Checksum recorded in the manifest */
779 int szD; /* Size of the delta manifest */
@@ -789,10 +798,11 @@
789 testRun = find_option("test",0,0)!=0;
790 zComment = find_option("comment","m",1);
791 forceFlag = find_option("force", "f", 0)!=0;
792 zBranch = find_option("branch","b",1);
793 zBgColor = find_option("bgcolor",0,1);
 
794 zComFile = find_option("message-file", "M", 1);
795 if( find_option("private",0,0) ){
796 g.markPrivate = 1;
797 if( zBranch==0 ) zBranch = "private";
798 if( zBgColor==0 ) zBgColor = "#fec084"; /* Orange */
@@ -974,11 +984,11 @@
974 if( forceDelta ){
975 blob_zero(&manifest);
976 }else{
977 create_manifest(&manifest, 0, 0, &comment, vid,
978 !forceFlag, useCksum ? &cksum1 : 0,
979 zDateOvrd, zUserOvrd, zBranch, zBgColor, &szB);
980 }
981
982 /* See if a delta-manifest would be more appropriate */
983 if( !forceBaseline ){
984 const char *zBaselineUuid;
@@ -994,11 +1004,11 @@
994 }
995 if( pBaseline ){
996 Blob delta;
997 create_manifest(&delta, zBaselineUuid, pBaseline, &comment, vid,
998 !forceFlag, useCksum ? &cksum1 : 0,
999 zDateOvrd, zUserOvrd, zBranch, zBgColor, &szD);
1000 /*
1001 ** At this point, two manifests have been constructed, either of
1002 ** which would work for this checkin. The first manifest (held
1003 ** in the "manifest" variable) is a baseline manifest and the second
1004 ** (held in variable named "delta") is a delta manifest. The
1005
--- src/checkin.c
+++ src/checkin.c
@@ -561,10 +561,11 @@
561 Blob *pCksum, /* Repository checksum. May be 0 */
562 const char *zDateOvrd, /* Date override. If 0 then use 'now' */
563 const char *zUserOvrd, /* User override. If 0 then use g.zLogin */
564 const char *zBranch, /* Branch name. May be 0 */
565 const char *zBgColor, /* Background color. May be 0 */
566 const char *zTag, /* Tag to apply to this check-in */
567 int *pnFBcard /* Number of generated B- and F-cards */
568 ){
569 char *zDate; /* Date of the check-in */
570 char *zParentUuid; /* UUID of parent check-in */
571 Blob filename; /* A single filename */
@@ -683,10 +684,14 @@
684 }
685 if( g.markPrivate ){
686 /* If this manifest is private, mark it as such */
687 blob_appendf(pOut, "T +private *\n");
688 }
689 if( zTag && zTag[0] ){
690 /* Add a symbolic tag to this check-in */
691 blob_appendf(pOut, "T +sym-%F *\n", zTag);
692 }
693 if( zBranch && zBranch[0] ){
694 /* For a new branch, cancel all prior propagating tags */
695 Stmt q;
696 db_prepare(&q,
697 "SELECT tagname FROM tagxref, tag"
@@ -734,10 +739,12 @@
739 ** option appears. A check-in is not allowed against a closed check-in.
740 **
741 ** The --private option creates a private check-in that is never synced.
742 ** Children of private check-ins are automatically private.
743 **
744 ** the --tag option applies the symbolic tag name to the check-in.
745 **
746 ** Options:
747 **
748 ** --comment|-m COMMENT-TEXT
749 ** --message-file|-M COMMENT-FILE
750 ** --branch NEW-BRANCH-NAME
@@ -745,10 +752,11 @@
752 ** --nosign
753 ** --force|-f
754 ** --private
755 ** --baseline
756 ** --delta
757 ** --tag TAG-NAME
758 **
759 */
760 void commit_cmd(void){
761 int hasChanges; /* True if unsaved changes exist */
762 int vid; /* blob-id of parent version */
@@ -770,10 +778,11 @@
778 const char *zBranch; /* Create a new branch with this name */
779 const char *zBgColor; /* Set background color when branching */
780 const char *zDateOvrd; /* Override date string */
781 const char *zUserOvrd; /* Override user name */
782 const char *zComFile; /* Read commit message from this file */
783 const char *zTag; /* Symbolic tag to apply to this check-in */
784 Blob manifest; /* Manifest in baseline form */
785 Blob muuid; /* Manifest uuid */
786 Blob cksum1, cksum2; /* Before and after commit checksums */
787 Blob cksum1b; /* Checksum recorded in the manifest */
788 int szD; /* Size of the delta manifest */
@@ -789,10 +798,11 @@
798 testRun = find_option("test",0,0)!=0;
799 zComment = find_option("comment","m",1);
800 forceFlag = find_option("force", "f", 0)!=0;
801 zBranch = find_option("branch","b",1);
802 zBgColor = find_option("bgcolor",0,1);
803 zTag = find_option("tag",0,1);
804 zComFile = find_option("message-file", "M", 1);
805 if( find_option("private",0,0) ){
806 g.markPrivate = 1;
807 if( zBranch==0 ) zBranch = "private";
808 if( zBgColor==0 ) zBgColor = "#fec084"; /* Orange */
@@ -974,11 +984,11 @@
984 if( forceDelta ){
985 blob_zero(&manifest);
986 }else{
987 create_manifest(&manifest, 0, 0, &comment, vid,
988 !forceFlag, useCksum ? &cksum1 : 0,
989 zDateOvrd, zUserOvrd, zBranch, zBgColor, zTag, &szB);
990 }
991
992 /* See if a delta-manifest would be more appropriate */
993 if( !forceBaseline ){
994 const char *zBaselineUuid;
@@ -994,11 +1004,11 @@
1004 }
1005 if( pBaseline ){
1006 Blob delta;
1007 create_manifest(&delta, zBaselineUuid, pBaseline, &comment, vid,
1008 !forceFlag, useCksum ? &cksum1 : 0,
1009 zDateOvrd, zUserOvrd, zBranch, zBgColor, zTag, &szD);
1010 /*
1011 ** At this point, two manifests have been constructed, either of
1012 ** which would work for this checkin. The first manifest (held
1013 ** in the "manifest" variable) is a baseline manifest and the second
1014 ** (held in variable named "delta") is a delta manifest. The
1015
+4 -10
--- test/delta1.test
+++ test/delta1.test
@@ -1,21 +1,15 @@
11
#
22
# Copyright (c) 2006 D. Richard Hipp
33
#
44
# This program is free software; you can redistribute it and/or
5
-# modify it under the terms of the GNU General Public
6
-# License version 2 as published by the Free Software Foundation.
5
+# modify it under the terms of the Simplified BSD License (also
6
+# known as the "2-Clause License" or "FreeBSD License".)
77
#
88
# This program is distributed in the hope that it will be useful,
9
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
-# General Public License for more details.
12
-#
13
-# You should have received a copy of the GNU General Public
14
-# License along with this library; if not, write to the
15
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-# Boston, MA 02111-1307, USA.
9
+# but without any warranty; without even the implied warranty of
10
+# merchantability or fitness for a particular purpose.
1711
#
1812
# Author contact information:
1913
# [email protected]
2014
# http://www.hwaci.com/drh/
2115
#
2216
--- test/delta1.test
+++ test/delta1.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public
6 # License version 2 as published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public
14 # License along with this library; if not, write to the
15 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 # Boston, MA 02111-1307, USA.
17 #
18 # Author contact information:
19 # [email protected]
20 # http://www.hwaci.com/drh/
21 #
22
--- test/delta1.test
+++ test/delta1.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the Simplified BSD License (also
6 # known as the "2-Clause License" or "FreeBSD License".)
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but without any warranty; without even the implied warranty of
10 # merchantability or fitness for a particular purpose.
 
 
 
 
 
 
11 #
12 # Author contact information:
13 # [email protected]
14 # http://www.hwaci.com/drh/
15 #
16
+4 -10
--- test/merge1.test
+++ test/merge1.test
@@ -1,21 +1,15 @@
11
#
22
# Copyright (c) 2006 D. Richard Hipp
33
#
44
# This program is free software; you can redistribute it and/or
5
-# modify it under the terms of the GNU General Public
6
-# License version 2 as published by the Free Software Foundation.
5
+# modify it under the terms of the Simplified BSD License (also
6
+# known as the "2-Clause License" or "FreeBSD License".)
77
#
88
# This program is distributed in the hope that it will be useful,
9
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
-# General Public License for more details.
12
-#
13
-# You should have received a copy of the GNU General Public
14
-# License along with this library; if not, write to the
15
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-# Boston, MA 02111-1307, USA.
9
+# but without any warranty; without even the implied warranty of
10
+# merchantability or fitness for a particular purpose.
1711
#
1812
# Author contact information:
1913
# [email protected]
2014
# http://www.hwaci.com/drh/
2115
#
2216
--- test/merge1.test
+++ test/merge1.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public
6 # License version 2 as published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public
14 # License along with this library; if not, write to the
15 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 # Boston, MA 02111-1307, USA.
17 #
18 # Author contact information:
19 # [email protected]
20 # http://www.hwaci.com/drh/
21 #
22
--- test/merge1.test
+++ test/merge1.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the Simplified BSD License (also
6 # known as the "2-Clause License" or "FreeBSD License".)
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but without any warranty; without even the implied warranty of
10 # merchantability or fitness for a particular purpose.
 
 
 
 
 
 
11 #
12 # Author contact information:
13 # [email protected]
14 # http://www.hwaci.com/drh/
15 #
16
+4 -10
--- test/merge2.test
+++ test/merge2.test
@@ -1,21 +1,15 @@
11
#
22
# Copyright (c) 2006 D. Richard Hipp
33
#
44
# This program is free software; you can redistribute it and/or
5
-# modify it under the terms of the GNU General Public
6
-# License version 2 as published by the Free Software Foundation.
5
+# modify it under the terms of the Simplified BSD License (also
6
+# known as the "2-Clause License" or "FreeBSD License".)
77
#
88
# This program is distributed in the hope that it will be useful,
9
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
-# General Public License for more details.
12
-#
13
-# You should have received a copy of the GNU General Public
14
-# License along with this library; if not, write to the
15
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-# Boston, MA 02111-1307, USA.
9
+# but without any warranty; without even the implied warranty of
10
+# merchantability or fitness for a particular purpose.
1711
#
1812
# Author contact information:
1913
# [email protected]
2014
# http://www.hwaci.com/drh/
2115
#
2216
--- test/merge2.test
+++ test/merge2.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public
6 # License version 2 as published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public
14 # License along with this library; if not, write to the
15 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 # Boston, MA 02111-1307, USA.
17 #
18 # Author contact information:
19 # [email protected]
20 # http://www.hwaci.com/drh/
21 #
22
--- test/merge2.test
+++ test/merge2.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the Simplified BSD License (also
6 # known as the "2-Clause License" or "FreeBSD License".)
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but without any warranty; without even the implied warranty of
10 # merchantability or fitness for a particular purpose.
 
 
 
 
 
 
11 #
12 # Author contact information:
13 # [email protected]
14 # http://www.hwaci.com/drh/
15 #
16
+4 -10
--- test/merge3.test
+++ test/merge3.test
@@ -1,21 +1,15 @@
11
#
22
# Copyright (c) 2009 D. Richard Hipp
33
#
44
# This program is free software; you can redistribute it and/or
5
-# modify it under the terms of the GNU General Public
6
-# License version 2 as published by the Free Software Foundation.
5
+# modify it under the terms of the Simplified BSD License (also
6
+# known as the "2-Clause License" or "FreeBSD License".)
77
#
88
# This program is distributed in the hope that it will be useful,
9
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
-# General Public License for more details.
12
-#
13
-# You should have received a copy of the GNU General Public
14
-# License along with this library; if not, write to the
15
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-# Boston, MA 02111-1307, USA.
9
+# but without any warranty; without even the implied warranty of
10
+# merchantability or fitness for a particular purpose.
1711
#
1812
# Author contact information:
1913
# [email protected]
2014
# http://www.hwaci.com/drh/
2115
#
2216
--- test/merge3.test
+++ test/merge3.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2009 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public
6 # License version 2 as published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public
14 # License along with this library; if not, write to the
15 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 # Boston, MA 02111-1307, USA.
17 #
18 # Author contact information:
19 # [email protected]
20 # http://www.hwaci.com/drh/
21 #
22
--- test/merge3.test
+++ test/merge3.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2009 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the Simplified BSD License (also
6 # known as the "2-Clause License" or "FreeBSD License".)
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but without any warranty; without even the implied warranty of
10 # merchantability or fitness for a particular purpose.
 
 
 
 
 
 
11 #
12 # Author contact information:
13 # [email protected]
14 # http://www.hwaci.com/drh/
15 #
16
+4 -10
--- test/merge4.test
+++ test/merge4.test
@@ -1,21 +1,15 @@
11
#
22
# Copyright (c) 2009 D. Richard Hipp
33
#
44
# This program is free software; you can redistribute it and/or
5
-# modify it under the terms of the GNU General Public
6
-# License version 2 as published by the Free Software Foundation.
5
+# modify it under the terms of the Simplified BSD License (also
6
+# known as the "2-Clause License" or "FreeBSD License".)
77
#
88
# This program is distributed in the hope that it will be useful,
9
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
-# General Public License for more details.
12
-#
13
-# You should have received a copy of the GNU General Public
14
-# License along with this library; if not, write to the
15
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-# Boston, MA 02111-1307, USA.
9
+# but without any warranty; without even the implied warranty of
10
+# merchantability or fitness for a particular purpose.
1711
#
1812
# Author contact information:
1913
# [email protected]
2014
# http://www.hwaci.com/drh/
2115
#
2216
2317
ADDED test/merge5.test
2418
ADDED test/merge5_repo.sql
--- test/merge4.test
+++ test/merge4.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2009 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public
6 # License version 2 as published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public
14 # License along with this library; if not, write to the
15 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 # Boston, MA 02111-1307, USA.
17 #
18 # Author contact information:
19 # [email protected]
20 # http://www.hwaci.com/drh/
21 #
22
23 DDED test/merge5.test
24 DDED test/merge5_repo.sql
--- test/merge4.test
+++ test/merge4.test
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2009 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the Simplified BSD License (also
6 # known as the "2-Clause License" or "FreeBSD License".)
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but without any warranty; without even the implied warranty of
10 # merchantability or fitness for a particular purpose.
 
 
 
 
 
 
11 #
12 # Author contact information:
13 # [email protected]
14 # http://www.hwaci.com/drh/
15 #
16
17 DDED test/merge5.test
18 DDED test/merge5_repo.sql
--- a/test/merge5.test
+++ b/test/merge5.test
@@ -0,0 +1 @@
1
+#0[glob -nocomplain *.txt]
--- a/test/merge5.test
+++ b/test/merge5.test
@@ -0,0 +1 @@
 
--- a/test/merge5.test
+++ b/test/merge5.test
@@ -0,0 +1 @@
1 #0[glob -nocomplain *.txt]
--- a/test/merge5_repo.sql
+++ b/test/merge5_repo.sql
@@ -0,0 +1,196 @@
1
+PRAGMA foreign_keys=OFF;
2
+BEGIN TRANSACTION;
3
+CREATE TABLE blob(
4
+ rid INTEGER PRIMARY KEY,
5
+ rcvid INTEGER,
6
+ size INTEGER,
7
+ uuid TEXT UNIQUE NOT NULL,
8
+ content BLOB,
9
+ CHECK( length(uuid)==40 AND rid>0 )
10
+);
11
+INSERT INTO "blob" VALUES(1,1,160,'85d5623f065ba80b20a035dcb4f9aea045215406',X'000000A0789C1DC8BD0E82301000E0BD4F71334993FE1CB465D507300617C352AED7D0208D011C787BA3E3F75DA0D47294F81A775EDFC739EE34332DB2547105A3B492DA48AD078D7D1B7A6BC54DDC21A14E9E52F059A9C928E4E0950AC133658FC6B118A099B6586986068EED5397DFECE72AFF80463C206DB37802C69CACCB31B8EC983B424D2D2361B04645EE92F802B1932DED');
12
+INSERT INTO "blob" VALUES(2,2,10,'da5c8346496f3421cb58f84b6e59e9531d9d424d',X'0000000A789C73E472E272E672E172E5020008CA0182');
13
+INSERT INTO "blob" VALUES(3,2,10,'ed24d19d726d173f18dbf4a9a0f8514daa3e3ca4',X'0000000A789CF3E6F2E1F2E5F2E3F2E7020009F601B4');
14
+INSERT INTO "blob" VALUES(4,2,10,'278a402316510f6ae4a77186796a6bde78c7dbc1',X'0000000A789C73E372E7F2E0F2E4F2E202000960019B');
15
+INSERT INTO "blob" VALUES(5,2,325,'69cc5363f67013c09bf506e3fe9533c32d0bc1ef',X'000000AF789C05C1C10AC2300C00D07BBF621FB0439A365B3B2F0351F426CA2EB24BBAA4AC3005D7FD3FBE47645EC3B96191B91EEBAE3AD7F22D47E16DAEB96C5AEFE3B5F5030E00388DF6D1DADF1048A84397A1A3C401120283235992CF9195C1135AF2D09967B308E788392FA187B8B0042F2E893AC60E803499A9917D35EF26AA789C458FBD4E43310C85F7FB14992B15D971E224AC20668460412C4E6CAB0828D26DF97B7B521062F3393A9F7D7C1144F5E1E08FEF7676FC3C2E972102C216E316F116F339E4F348CB55F80B84EAD0FAC85918ACD721C08E20D47329222E955B27E49627F3BAFF4554F2A8943835764A1147CFD56BEA6CB959CB84DA34C5A41339EE56FB854CA7834D4B64C5428E55BB2769025E33261521A321E9047DBCFE20B1544910E7F98CE02C96A414AC5C1A0B77B55247D13E70B90EDCC6C8C4E45C0069CC973C031BF9A90F0D8A0A3368BEDC048D71F05C904094AA36214F96129644E6B9C3721B367D95FDD8854DE86B3CE9C3D7CB768E6133C5F647C8C19E1FF7F6EF1CD7B7FDD3947741D7DD721FDCA03783593423C3B056B5C6D920B6C6540B2CDF2E8476894,'341db367709dc7bc5046ab4fda4f5815cf5804e8933eab64ae34e00bbb381be72c5',X'0000000A789C0BE00AE40AE20AE60AE102000A8C01CD');
16
+INSERT INTO "blob" VALUES(8,4,364,'341db367709dc7bc5046ab4fda4f7d9423118cba',X'0000016C789C35CE3B4E44310C85E1FEAE221B1864C78F24B4206A84A0413476EC888A918641B07CEE0CA23D3A9FF4DF158B78FB5CC7AFD3CDF9E7BCDD970A0807AC07C467945BE05B94EDA1FC1F0A4947994B3A70F64194E6CA96C409E0EED4D1B3D57931C78FBC9230999D5879E822AE385DFAEAEC9A327208618CE0CAB193F3FB29FF50C6BEE0885635B0D1C21EBED886C1EA821C6694348D2FE8FB7825B57563A8842A084B2DD95AC3AE6DA8A947B63E5BF8C4EDB1E8985348696903A409C3978026AD4B0F4DAA01FB31D7F65422C1AC73A4A3D5BD7CEF07016B16BBB5C9DB4B89D3FBF65A6C7873C33052034A6D94E82CAED85BA4ACED1765FC64F9');
17
+INSERT INTO "blob" VALUES(9,5,294,'9223b4cad40c0bc997b747fe4eee586559a43815',X'00000126789C8D8E310E83300C45774E91B955243B714860EE11E85275B16322A4AA0C0186DEBEA00E5DD9FEF2FE7B37E300C1A2B38803861EA8F7D40CE62295E73C194FA8E2DB18A1D31C2507A096858A3295A81D398F98B2B0918A07B67CDE769FA7B99DB92AAFE379D1BFF7B9FC8231EC2FF630AF759B5FE7DD77A3756A1EC68D0C3E69424DA20E3460804C259172F15E52F305DF884EE5');
18
+INSERT INTO "blob" VALUES(10,6,10,'8f09bc55a60eb8ca06f10a3b577aafa869b31695',X'0000000A789C0BE50AE30AE78AE08AE402000B2201E6');
19
+INSERT INTO "blob" VALUES(11,6,426,'3d5bce2e44a6b39205eb514c581aa41d86f48540',X'00000116789C458ECB4A04311444F7F98AAC075BEE23B949DA8DA01F203A832082E471C30C6A2FBA47D1BF37BA7157A7288A23DDBCCC3736B7F6BCF5D3A75E9EBFCEE6D612204C4813E21EFD0C7E266AD78F177C9829C4EC8018C52374C9EA7208182524C9529A8658432B15CD9D9554AB67E12E01902BA4D23D8872D7E4992B538331D46EEE6D23AA320E1CE4C6B1A5CCDDA973181C6BF705CCDEEECA9A977AB43B5B56FAE5EDFB7D1AD1EE064C7F90377D3B2DFADF9CD78FE575E0C1B6F5689E6C57284961887A14A89A628B340C2825E118C020A6F0E0AE7E00A7744B2A');
20
+INSERT INTO "blob" VALUES(12,7,10,'c6536e40b3d4755ead483c2e0fb2f16ecb751b6a',X'0000000A789C33E032E432E232E632E1020006CC012D');
21
+INSERT INTO "blob" VALUES(13,7,424,'b95701e0b73e5ebf452a9a7ae00360bf7fd187fd',X'000001A8789C4590414F83310886EFDFAFE879C90C9496B65E359E8DD18BF10285668B3A936F33EABFB753136FBCC003BC5C05317B3A1EF79F17A7CFD3721D22206C316E11EF315F025FC6B8DC84B7839FEBC124F74A8953E3412962D75C474DCA9E9BB74C68CD524C3691BF91A17326F6044A964ACE2E962AF5E830340E64EF5A322ACB444EBBD57FF7B8CD21D8AC44362C34B09A8E244D60D48CC944C8A94B3A431F6F3F482C55124442CE0883C5939482954B6361352FB517D38ECB6DE0D6FB3C8A061740EAD0746460A771B6409DA2C16CF4B1DC85311D4D9AA4E4DEB21924D10AAA0834AD132CF761A3AB1CFA2E6C82AE74D6C7AFD7ED0CC3668AED8F90A3BFEC0FFE9F39ADEF87E7291F82ADBBE5312895341D420637C74AB5CD6F5185E23AC41B2FDF3224768A');
22
+INSERT INTO "blob" VALUES(14,8,11,'6f525ab779ad66e24474d845c5fb7938be42d50d',X'0000000B789C73E4728AE072E672E172E502000C1801DA');
23
+INSERT INTO "blob" VALUES(15,8,319,'c19f6ae71a35cddef0d5de3e1e6109c4378c8215',X'000000E0789C0DCA314E04310C05D03EA7C80158E41F27F6646890587A844048681B274E986A4762B6A0E2ECF0EA977FC3B63EC5BED9F56B1C97E3B65F8EFD3AEE6F3FB7708E894027A413F086B292AE00F6C7ED2E7DAC4917CB94185240536C6453C5225AC5A4F9D0A5ABB78EF012A5F65E58788A12B8536DB3900C9EA316E6CEC9E93F8E195EA361641573481EA5D6E900235B422FD49435BC47FFDEC2672469A9CEC98AAEE685672ECD45B28FEA8B590BA99D9FBD3DFC010C0C3CFF');
24
+INSERT INTO "blob" VALUES(16,9,11,'b262fee89ed8a27a23a5e09d3917e0bebe22cd24',X'0000000B789C73E372E7F288E0F2E4F2E202000C5A01F3');
25
+INSERT INTO "blob" VALUES(17,9,319,'41a02f2b2277d771d85e7f1202c82d4d6675662f',X'000000D8789C0DCE3B4E03410C00D07E4EB107D820DB63CF8F668B488882068890E8BCB6478806258A142ACE4E0EF0A4C77FE96983F56DDC7E1EAEBFD7745C08100E4807C47794017590206CDFAB8F7062C7EE958A63CD139BEF93B52BCC26C8AE9A239BF265A39715CFC3B0CFA25151B3987B4C70F1C8815110BA71AECD1AA1A4D785F5AE4929B07397CADE729F6462358A36F3745AFCF2953E17C9AD30766AA5CE3DD8E27EA1BD548FD80D9C533E3F9FE6C7E33F8FCE3AED');
26
+INSERT INTO "blob" VALUES(18,10,187,'6c22c86ee8a603f5e18171efb6ff571b59e35cf3',X'000000BB789C8DCCAD0EC230140650DFA7A8274BFAB5B4B7ADE611862198EEFE30038261787B9843A24F724E3E068409710266E41E6A4776B33FC878A967342B4309236516510B924593420B42E363A2CA3522FF24D76D5FA803FBB2BDEF13AF8F1BFEAEDCD9CB7375176F45D8961C858C9651BED86C080189381621F701B249318A');
27
+INSERT INTO "blob" VALUES(19,11,187,'8b9f82378ea7a5f9ef8e80d31929f6dfab988acc',X'000000BB789C8DCC3D0EC2300C06D03DA7C88E22D95F623BEACC11CA8258F24B1718280BB747DD18790778670F620A8CC0BCB22C9497486EF5A75EDEC3272E84890A987533EE59864D06A165F4D4554D54317F92DB7E2CB6408E65FF3C42DB9E77FC5DB98BEFAFCD5DBD0C9E604819AC31D5A489F2906AA5C5AAA4C57D01A0C52E74');
28
+INSERT INTO "blob" VALUES(20,12,11,'64a8a5c7320fccfa4b2e5dfc5fd20a5381a86c5b',X'0000000B789CF3E6F2E1F2E5F28BE0F2E702000CA7020C');
29
+INSERT INTO "blob" VALUES(21,12,321,'5a71ecd64585155b076a4f1e4d489eb5fe3d05f4',X'00000141789C3D8F314E04310C45FB9C221758643B719C6C0BA246081A44E3C40E53ED48BB23C1F1095B50B8F8FA7A4FDF8F716C7AF9F2DBE7EDD8D76D57F787E3E7084F9100E18474427D8A846C8FAD5004A4CD8AE5F86CF99AEFD173B8CDA7D8FD6BBDDCD7EBD2FBF1725FFA77B9F5BDB79F708E09100E980E886F4833F28C80BF4FFE90C69C444B86342113C2E0D273114165312E55,4f9aea045215406',XPRAGMA foreign_keys=OFF;
30
+BEGIN TRANSACTION;
31
+CREATE TABLE blob(
32
+ rid INTEGER PRIMARY KEY,
33
+ rcvid INTEGER,
34
+ size INTEGER,
35
+ uuid TEXT UNIQUE NOT NULL,
36
+ content BLOB,
37
+ CHECK( length(uuid)==40 AND rid>0 )
38
+);
39
+INSERT INTO "blob" VALUES(1,1,160,'85d5623f065ba80b20a035dcb4f9aea045215406',X'000000A0789C1DC8BD0E82301000E0BD4F71334993FE1CB465D507300617C352AED7D0208D011C787BA3E3F75DA0D47294F81A775EDFC739EE34332DB2547105A3B492DA48AD078D7D1B7A6BC54DDC21A14E9E52F059A9C928E4E0950AC133658FC6B118A099B6586986068EED5397DFECE72AFF80463C206DB37802C69CACCB31B8EC983B424D2D2361B04645EE92F802B1932DED');
40
+INSERT INTO "blob" VALUES(2,2,10,'da5c8346496f3421cb58f84b6e59e9531d9d424d',X'0000000A789C73E472E272E672E172E5020008CA0182');
41
+INSERT INTO "blob" VALUES(3,2,10,'ed24d19d726d173f18dbf4a9a0f8514daa3e3ca4',X'0000000A789CF3E6F2E1F2E5F2E3F2E7020009F601B4');
42
+INSERT INTO "blob" VALUES(4,2,10,'278a402316510f6ae4a77186796a6bde78c7dbc1',X'0000000A789C73E372E7F2E0F2E4F2E202000960019B');
43
+INSERT INTO "blob" VALUES(5,2,325,'69cc5363f67013c09bf506e3fe9533c32d0bc1ef',X'000000AF789C05C1C10AC2300C00D07BBF621FB0439A365B3B2F0351F426CA2EB24BBAA4AC3005D7FD3FBE47645EC3B96191B91EEBAE3AD7F22D47E16DAEB96C5AEFE3B5F5030E00388DF6D1DADF1048A84397A1A3C401120283235992CF9195C1135AF2D09967B308E788392FA187B8B0042F2E893AC60E803CREATE TABLE user(
44
+ uid INTEGER PRIMARY KEY,
45
+ login TEXT,
46
+ pw TEXT,
47
+ cap TEXT,
48
+ cookie TEXT,
49
+ ipaddr TEXT,
50
+ cexpire DATETIME,
51
+ info TEXT,
52
+ photo BLOB
53
+);
54
+INSERT INTO "user" VALUES(1,'drh','efbbd0','s',NULL,NULL,NULL,'',NULL);
55
+INSERT INTO "user" VALUES(2,'anonymous','42568D1800352E28','ghmncz',NULL,NULL,NULL,'Anon',NULL);
56
+INSERT INTO "user" VALUES(3,'nobody','','jor',NULL,NULL,NULL,'Nobody',NULL);
57
+INSERT INTO "user" VALUES(4,'developer','','dei',NULL,NULL,NULL,'Dev',NULL);
58
+INSERT INTO "user" VALUES(5,'reader','','kptw',NULL,NULL,NULL,'Reader',NULL);
59
+CREATE TABLE config(
60
+ name TEXT PRIMARY KEY NOT NULL,
61
+ value CLOB,
62
+ CHECK( typeof(name)='text' AND length(name)>=1 )
63
+);
64
+INSERT INTO "config" VALUES('SERT INTO "config" VALUES('content-schema','1');
65
+INSERT INTO "config" VALUES('6b8eb623626de6f9f747058');
66
+INserver-code','48d0adf1afd58dae13c5b70ff7aff208fb8b9f53');
67
+INSERT INTO "config" VALUES('project-code','8201587e22864f2fe6b8eb623626de6f9f747058');
68
+INSERT INTO "config" VALUES('autosync','1');
69
+INSERT INTO "config" VALUES('localauth','0');
70
+INSERT INTO "config" VALUES('project-name','Test Case 1');
71
+INSERT INTO "config" VALUES('project-description','Fossil repository for testing');
72
+INSERT INTO "config" VALUES(aux-schema','2010-11-24');
73
+CREATE TABLE shun(uuid UNIQUE);
74
+CREATE TABLE private(rid INTEGER PRIMARY KEY);
75
+CREATE TABLE reportfmt(
76
+ rn integer primary key,
77
+ owner text,
78
+ title text,
79
+ cols text,
80
+ sqlcode text
81
+);
82
+INSERT INTO "reportfmt" VALUES(1,NULL,'All Tickets','#ffffff Key:
83
+#f2dcdc Active
84
+#e8e8e8 Review
85
+#cfe8bd Fixed
86
+#bde5d6 Tested
87
+#cacae5 Deferred
88
+#c8c8c8 Closed','SELECT
89
+ CASE WHEN status IN (''Open'',''Verified'') THEN ''#f2dcdc''
90
+ WHEN status=''Review'' THEN ''#e8e8e8''
91
+ WHEN status=''Fixed'' THEN ''#cfe8bd''
92
+ WHEN status=''Tested'' THEN ''#bde5d6''
93
+ WHEN status=''Deferred'' THEN ''#cacae5''
94
+ ELSE ''#c8c8c8'' END AS ''bgcolor'',
95
+ substr(tkt_uuid,1,10) AS ''#'',
96
+ datetime(tkt_mtime) AS ''mtime'',
97
+ type,
98
+ status,
99
+ subsystem,
100
+ title
101
+FROM ticket');
102
+CREATE TABLE concealed(
103
+ hash TEXT PRIMARY KEY,
104
+ content TEXT
105
+);
106
+CREATE TABLE filename(
107
+ fnid INTEGER PRIMARY KEY,
108
+ oneGMA foreignSGMA foreign_keys=OFF;
109
+BEGIN TRANSACTION;
110
+CREATE TABLE blob(
111
+ rid INTEGER PRIMARY KEY,
112
+ rcvid INTEGER,
113
+ size INTEGER,
114
+ uuid TEXT UNIQUE NOT NULiGMA foreign_keys=OFF;
115
+BEGIN TRANSACTION;
116
+CREATE TABLE blob(
117
+ rid INTEGER PRIMARY KEY,
118
+ rcvid INTEGER,
119
+ size INTEGER,
120
+ uuid TEXT UNIQUE NOT NULL,
121
+ content BLOB,
122
+ CHECK( length(uuid)==40 AND rid>0 )
123
+);
124
+IN TRANSAGMA foreign_keys=OFF;
125
+BEGIN TRANSACTION;
126
+CREATE TABLE blob(
127
+ rid INTEGER PRIMARY KEY,
128
+ rcvid INTEGER,
129
+ size INTEGER,
130
+ uuid TEXT UNIQUE NOT NULL,
131
+ content BLOB,
132
+ CHECK( length(uuid)==40 AND rid>0 )
133
+);
134
+INSERT INTO "blob" VALUES(1,1,160,'85d5623f065ba80b20a035dcb4f9aea045215406',X'000000A0789C1DC8BD0E82301000E0BD4F71334993FE1CB465D507300617C352AED7D0208D011C787BA3E3F75DA0D47294F81A775EDFC739EE34332DB2547105A3B492DA48AD078D7D1B7A6BC54DDC21A14E9E52F059A9C928E4E0950AC133658FC6B118A099B6586986068EED5397DFECE72AFF80463C206DB37802C69CACCB31B8EC983B424D2D2361B04645EE92F802B1932DED');
135
+INSERT INTO "blob" VALUES(2,2,10,'da5c8346496f3421cb58f84b6e59e9531d9d424d',X'0000000A789C73E472E272E672E172E5020008CA0182');
136
+INSERT INTO "blob" VALUES(3,2,10,'ed24d19d726d173f18dbf4a9a0f8514daa3e3ca4',X'0000000A789CF3E6F2E1F2E5F2E3F2E7020009F601B4');
137
+INSERT INTO "blob" VALUES(4,2,10,'278a402316510f6ae4a77186796a6bde78c7dbc1',X'0000000A789C73E372E7F2E0F2E4F2E202000960019B');
138
+INSERT INTO "blob" VALUES(5,2,325,'69cc5363f67013c09bf506e3fe9533c32d0bc1ef',X'000000AF789C05C1C10AC2300C00D07BBF621FB0439A365B3B2F0351F426CA2EB24BBAA4AC3005D7FD3FBE47645EC3B96191B91EEBAE3AD7F22D47E16DAEB96C5AEFE3B5F5030E00388DF6D1DADF1048A84397A1A3C401120283235992CF9195C1135AF2D09967B308E788392FA187B8B0042F2E893AC60E803499A9917D35EF2670C09853E0A8092893EF859CB33D6A8414351AFCF0ED72FA03D5E231F2');
139
+INSERT INTO "blob" VALUES(6,3,190,'3bfa21d09f8718adc3195848d57114e1fbf564fe',X'000000BE789C8DCC3B0EC2300C00D03DA7C88E2AF9A32475678E5016C49238B6400206D285DB036261E400EFED2301C2843421AE9816A02595B0C65DAF9BC52CAA89337B2E80AC20CD1364633749CCCAD4A1299AFF24A7F15D003ECB78DEA656875D2FF7FFB77088FD710EC758BA6095590C082BEAECEC4AC58CDEBEA2617801EE253190');
140
+INSERT INTO "blob" VALUES(7,4,10,'35815cf5804e8933eab64ae34e00bbb381be72c5',X'0000000A789C0BE00AE40AE20AE60AE102000A8C01CD');
141
+INSERT INTO "blob" VALUES(8,4,364,'341db367709dc7bc5046ab4fda4f7d9423118cba',X'0000016C789C35CE3B4E44310C85E1FEAE221B1864C78F24B4206A84A0413476EC888A918641B07CEE0CA23D3A9FF4DF158B78FB5CC7AFD3CDF9E7BCDD970A0807AC07C467945BE05B94EDA1FC1F0A4947994B3A70F64194E6CA96C409E0EED4D1B3D57931C78FBC9230999D5879E822AE385DFAEAEC9A327208618CE0CAB193F3FB29FF50C6BEE0885635B0D1C21EBED886C1EA821C6694348D2FE8FB7825B57563A8842A084B2DD95AC3AE6DA8A947B63E5BF8C4EDB1E8985348696903A409C3978026AD4B0F4DAA01FB31D7F65422C1AC73A4A3D5BD7CEF07016B16BBB5C9DB4B89D3FBF65A6C7873C33052034A6D94E82CAED85BA4ACED1765FC64F9');
142
+INSERT INTO "blob" VALUES(9,5,294,'9223b4cad40c0bc997b747fe4eee586559a43815',X'00000126789C8D8E310E83300C45774E91B955243B714860EE11E85275B16322A4AA0C0186DEBEA00E5DD9FEF2FE7B37E300C1A2B38803861EA8F7D40CE62295E73C194FA8E2DB18A1D31C2507A096858A3295A81D398F98B2B0918A07B67CDE769FA7B99DB92AAFE379D1BFF7B9FC8231EC2FF630AF759B5FE7DD77A3756A1EC68D0C3E69424DA20E3460804C259172F15E52F305DF884EE5');
143
+INSERT INTO "blob" VALUES(10,6,10,'8f09bc55a60eb8ca06f10a3b577aafa869b31695',X'0000000A789C0BE50AE30AE78AE08AE402000B2201E6');
144
+INSERT INTO "blob" VALUES(11,6,426,'3d5bce2e44a6b39205eb514c581aa41d86f48540',X'00000116789C458ECB4A04311444F7F98AAC075BEE23B949DA8DA01F203A832082E471C30C6A2FBA47D1BF37BA7157A7288A23DDBCCC3736B7F6BCF5D3A75E9EBFCEE6D612204C4813E21EFD0C7E266AD78F177C9829C4EC8018C52374C9EA7208182524C9529A8658432B15CD9D9554AB67E12E01902BA4D23D8872D7E4992B538331D46EEE6D23AA320E1CE4C6B1A5CCDDA973181C6BF705CCDEEECA9A977AB43B5B56FAE5EDFB7D1AD1EE064C7F90377D3B2DFADF9CD78FE575E0C1B6F5689E6C57284961887A14A89A628B340C2825E118C020A6F0E0AE7E00A7744B2A');
145
+INSERT INTO "blob" VALUES(12,7,10,'c6536e40b3d4755ead483c2e0fb2f16ecb751b6a',X'0000000A789C33E032E432E232E632E1020006CC012D');
146
+INSERT INTO "blob" VALUES(13,7,424,'b95701e0b73e5ebf452a9a7ae00360bf7fd187fd',X'000001A8789C4590414F83310886EFDFAFE879C90C9496B65E359E8DD18BF10285668B3A936F33EABFB753136FBCC003BC5C05317B3A1EF79F17A7CFD3721D22206C316E11EF315F025FC6B8DC84B7839FEBC124F74A8953E3412962D75C474DCA9E9BB74C68CD524C3691BF91A17326F6044A964ACE2E962AF5E830340E64EF5A322ACB444EBBD57FF7B8CD21D8AC44362C34B09A8E244D60D48CC944C8A94B3A431F6F3F482C55124442CE0883C5939482954B6361352FB517D38ECB6DE0D6FB3C8A061740EAD0746460A771B6409DA2C16CF4B1DC85311D4D9AA4E4DEB21924D10AAA0834AD132CF761A3AB1CFA2E6C82AE74D6C7AFD7ED0CC3668AED8F90A3BFEC0FFE9F39ADEF87E7291F82ADBBE5312895341D420637C74AB5CD6F5185E23AC41B2FDF3224768A');
147
+INSERT INTO "blob" VALUES(14,8,11,'6f525ab779ad66e24474d845c5fb7938be42d50d',X'0000000B789C73E4728AE072E672E172E502000C1801DA');
148
+INSERT INTO "blob" VALUES(15,8,319,'c19f6ae71a35cddef0d5de3e1e6109c4378c8215',X'000000E0789C0DCA314E04310C05D03EA7C80158E41F27F6646890587A844048681B274E986A4762B6A0E2ECF0EA977FC3B63EC5BED9F56B1C97E3B65F8EFD3AEE6F3FB7708E894027A413F086B292AE00F6C7ED2E7DAC4917CB94185240536C6453C5225AC5A4F9D0A5ABB78EF012A5F65E58788A12B8536DB3900C9EA316E6CEC9E93F8E195EA361641573481EA5D6E900235B422FD49435BC47FFDEC2672469A9CEC98AAEE685672ECD45B28FEA8B590BA99D9FBD3DFC010C0C3CFF');
149
+INSERT INTO "blob" VALUES(16,9,11,'b262fee89ed8a27a23a5e09d3917e0bebe22cd24',X'0000000B789C73E372E7F288E0F2E4F2E202000C5A01F3');
150
+INSERT INTO "blob" VALUES(17,9,319,'41a02f2b2277d771d85e7f1202c82d4d6675662f',X'000000D8789C0DCE3B4E03410C00D07E4EB107D820DB63CF8F668B488882068890E8BCB6478806258A142ACE4E0EF0A4C77FE96983F56DDC7E1EAEBFD7745C08100E4807C47794017590206CDFAB8F7062C7EE958A63CD139BEF93B52BCC26C8AE9A239BF265A39715CFC3B0CFA25151B3987B4C70F1C8815110BA71AECD1AA1A4D785F5AE4929B07397CADE729F6462358A36F3745AFCF2953E17C9AD30766AA5CE3DD8E27EA1BD548FD80D9C533E3F9FE6C7E33F8FCE3AED');
151
+INSERT INTO "blob" VALUES(18,10,187,'6c22c86ee8a603f5e18171efb6ff571b59e35cf3',X'000000BB789C8DCCAD0EC230140650DFA7A8274BFAB5B4B7ADE611862198EEFE30038261787B9843A24F724E3E068409710266E41E6A4776B33FC878A967342B4309236516510B924593420B42E363A2CA3522FF24D76D5FA803FBB2BDEF13AF8F1BFEAEDCD9CB7375176F45D8961C858C9651BED86C080189381621F701B249318A');
152
+INSERT INTO "blob" VALUES(19,11,187,'8b9f82378ea7a5f9ef8e80d31929f6dfab988acc',X'000000BB789C8DCC3D0EC2300C06D03DA7C88E22D95F623BEACC11CA8258F24B1718280BB747DD18790778670F620A8CC0BCB22C9497486EF5A75EDEC3272E84890A987533EE59864D06A165F4D4554D54317F92DB7E2CB6408E65FF3C42DB9E77FC5DB98BEFAFCD5DBD0C9E604819AC31D5A489F2906AA5C5AAA4C57D01A0C52E74');
153
+INSERT INTO "blob" VALUES(20,12,11,'64a8a5c7320fccfa4b2e5dfc5fd20a5381a86c5b',X'0000000B789CF3E6F2E1F2E5F28BE0F2E702000CA7020C');
154
+INSERT INTO "blob" VALUES(21,12,321,'5a71ecd64585155b076a4f1e4d489eb5fe3d05f4',X'00000141789C3D8F314E04310C45FB9C221758643B719C6C0BA246081A44E3C40E53ED48BB23C1F1095B50B8F8FA7A4FDF8F716C7AF9F2DBE7EDD8D76D57F787E3E7084F9100E18474427C433E239D81C273DC2FF73E96C9C4DA459A5A294E394BB69A79F0ECD252ED9EC9186C21FFD258B256E52189608E31357772B6B91823504E15B596C1FD0FFADEEF48A742D3BD36B7AA244A49D9A1596A280EDDBB130DA31C5E6246059AD489444C04ADB2CB44021A952CAF99C265D9C2EBB2226371186AA4C35704D7C252C0B06A1FE13DDA750B1F9111E6C4543CF1C4A1136606582F0FE406D424FC021EAB59DA');
155
+INSERT INTO "blob" VALUES(22,13,187,'a2c1640c98b3059a83df0b597d673ad073b782de',X'000000BB789C8DCC310EC2300C00C03DAFC88E22D9899DA49D794259108B93D874818176E1F7805818994FBAA38F80103006C40579C63863718B3F0CD9D5B314D43E327165646E50B290A1D2A03A6963D334808D7E92CBF65D207E96ED790B7DBD5FD3DF953BF9F158DDD96B1EB1D91B92285649B917AD5627A8066842EE05469C30D4');
156
+INSERT INTO "blob" VALUES(23,14,10,'6e167b139c294bed560e2e30b352361b101e1f39',X'0000000A789C33E532E332E7B2E0B2E4020007620146');
157
+INSERT INTO "blob" VALUES(24,14,388,'8015e80a2391d4497530b5d0f36689f359e374ba',X'00000184789C4590314FC4300C85F7FE8ACC2715D971E234C7086246E8585017277174086851DBD3C1BF27BD85CDCFF6A7F7EC075396F97B5CE749EFC7554A19D749AFE35AE7CBD23D1A0B083DDA1EF184FE8874F4DC3D997D78B7FD6C86153924A4986D74498B6750AB0489BC25C684808A956263B6F3A27A83B45857309660B960A08A4349D54914A88347574448298BDBA1EB7C436C18C48125648F5059D449083870882C9C8A862187923276CF8663CE9E982A0740CA1053F5C04A55A327CA640BB445ADDD8B69E611497373AF425407B0FB19A145C6C04CDDC91CD222533E9B83498BDBF5FAFBD5B7D21C9AE86F4256FD7C9FF4BFB32D97E9A3C9D7F6DA73F7666A96907CB351CB9A23D89CAB44675B50715CA8FB033C856E21');
158
+INSERT INTO "blob" VALUES(25,15,11,'e866bb885d5184cba497cfb6a4eb281688519521',X'0000000B789C73E472E272E672E1728DE002000AF201DA');
159
+INSERT INTO "blob" VALUES(26,15,372,'b882b17dc56af1e0297bf8a57c9d15050215c64a',X'00000174789C458E414B04310C85EFF32B7A5E1869D23669BD2A9E45D68B78499BD41175166657D47F6F7711841CF2F2DE47DE8D6B8BAC2FF67C3CAC36DD3AF4E067C019600FE97A0CD274E7867775FA3E39CB44B5E69C34418EAD4A2CDC7A25895631030D074A4218C869D9EC0F528C0A451949814387ACB54729E2FB88471509169AC433F475B820C859A2C70094C077128BC20C99B8905055E3DC586B83E9DE51692D050A9DD84368BED49E3C59E85652082DA0FA11B43E3D38EB297266D4D414C427E30E56C2E8D0A1F9D4A7BDDBD54DD6B6B89DAB5B3AEBE3CFC73C56B71B62BE0839DAFBEB6AFF97D3F6B9BE0DF9E8745BA6A7F1463B76C4AC68218D9A1AA216C2D822D4C63CFD0205E667AF');
160
+INSERT INTO "blob" VALUES(27,16,11,'e09593950837f76e70ca2f8ff2272ae3df0ba017',X'0000000B789CF38EE0F2E1F2E5F2E3F2E702000DB2020C');
161
+INSERT INTO "blob" VALUES(28,16,341,'9df70ff13b57e70ea2de63f655eb72df7b83121a',X'000000EF789C0DCD3D4E03311040E1DEA7F001089AF17AFE360D52525220040D8A846C8FAD5004A4CD8AE5F86CF99AEFD173B8CDA7D8FD6BBDDCD7EBD2FBF1725FFA77B9F5BDB79F708E09100E980E886F4833F28C80BF4FFE90C69C444B86342113C2E0D273114165312E5CBD8B36F1DA306E71B71ED7BF35BCC4AA9A2A8A37E232B04332A9430B493347028284D43897F01AD5D4B077A326640C5981477611A324FB7A84F7E8CB357C441BD51C9407541D0A669433FBA05C26622E14A6069F1B1FFF019008411F');
162
+INSERT INTO "blob" VALUES(29,17,11,'5ebb3c9ad50740a7382902657b84a6105c32fc7b',X'0000000B789C73E372E7F2E0F28CE4F2E202000C0101F4');
163
+INSERT INTO "blob" VALUES(30,17,322,'94bd3e6b45cc15e86cc76ecfd2207fddbb675b15',X'00000142789C3DCE314E44310C04D0FE9F221758643B711C6F0BA246081A441327B696825D69F9121C9F8010F5F8CDF836F97CDB5F3FF6CFCBE1EAE7FEEEDB5D224038201D109F908F588F85B6FB7439FBCDFEB5276FB59AB5C693B19561BDA88CB0DA8B1B35AC2B4165C245F6D3D5FF10286B56869625A4BAC0E8142D8248A87B9E01D601E507FDBFF22BD9CDF2D03E19A44097DC48812A8BB5D22B028F4C31C4B687A4330422301BCB5AF04ED36B8ECAAB436885D63212F6ED31E56985D1EB2A96A22DFA8800CC6C485A88FAF69CE6F5B4BD24556990111A87AECBEEEAB50C5F8EAB308FED1BE1CB587B');
164
+INSERT INTO "blob" VALUES(31,18,11,'85286cb3bc6d9e6f2f586eb5532f6065678f75b9',X'0000000B789C73E372E7F2E0F2E4F28AE402000BA301F4');
165
+INSERT INTO "blob" VALUES(32,18,360,'333c4d56d218735e20565944b50202f24827e3b8',X'00000168789C25CF3D4E43311004E0DEA7F00582BCDE1FAFD382A8118206D1ECDA5E250D91C213E1F83C9476349F34F398D73C6F9FDFDBED929E722D500E500F006F20472A47C4F49CE3FCB31EB6DF2D6B94EE83D9A42CD76145028AA1736B66612ADD11A4F36E2E5F77328D8722097509A40AC35943C965715F9D11669F5469EE643B5DD71DADB927D067AB32A161804E0FB26E259481A6192E1C46FFE876B94FE3AA321C7DC8EC4BA206AB2C67C61A5284A56934F69E5E324EF6B1EA223271ECB5F0DE031AAC604630558294A9A4D76C4B54753F568B8B16F4D5102946AD4EA1BAD27B9ED753FAC80338F6EBB37A31F568AD888A556519A32B78FA037C076278');
166
+CREATE TABLE delta(
167
+ rid INTEGER PRIMARY KEY,
168
+ srcid INTEGER NOT NULL REFERENCES blob
169
+);
170
+INSERT INTO "delta" VALUES(5,8);
171
+INSERT INTO "delta" VALUES(11,32);
172
+INSERT INTO "delta" VALUES(15,17);
173
+INSERT INTO "delta" VALUES(17,21);
174
+INSERT INTO "delta" VALUES(28,30);
175
+CREATE TABLE rcvfrom(
176
+ rcvid INTEGER PRIMARY KEY,
177
+ uid INTEGER REFERENCES user,
178
+ mtime DATETIME,
179
+ nonce TEXT UNIQUE,
180
+ ipaddr TEXT
181
+);
182
+INSERT INTO "rcvfrom" VALUES(1,1,2455542.12469579,NULL,NULL);
183
+INSERT INTO "rcvfrom" VALUES(2,1,2455542.12638891,NULL,NULL);
184
+INSERT INTO "rcvfrom" VALUES(3,1,2455542.12705387,NULL,'127.0.0.1');
185
+INSERT INTO "rcvfrom" VALUES(4,1,2455542.12796271,NULL,NULL);
186
+INSERT INTO "rcvfrom" VALUES(5,1,2455542.12818105,NULL,'127.0.0.1');
187
+INSERT INTO "rcvfrom" VALUES(6,1,2455542.12873891,NULL,NULL);
188
+INSERT INTO "rcvfrom" VALUES(7,1,2455542.1294266,NULL,NULL);
189
+INSERT INTO "rcvfrom" VALUES(8,1,2455542.12999842,NULL,NULL);
190
+INSERT INTO "rcvfrom" VALUES(9,1,2455542.13015219,NULL,NULL);
191
+INSERT INTO "rcvfrom" VALUES(10,1,2455542.13073123,NULL,'127.0.0.1');
192
+INSERT INTO "rcvfrom" VALUES(11,1,2455542.13090438,NULL,'127.0.0.1');
193
+INSERT INTO "rcvfrom" VALUES(12,1,2455542.1333612,NULL,NULL);
194
+INSERT INTO "rcvfrom" VALUES(13,1,2455542.13353873,NULL,'127.0.0.1');
195
+INSERT INTO "rcvfrom" VALUES(14,1,2455542.13467894,NULL,NULL);
196
+INSERT INTO "rcvfrom" V
--- a/test/merge5_repo.sql
+++ b/test/merge5_repo.sql
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/test/merge5_repo.sql
+++ b/test/merge5_repo.sql
@@ -0,0 +1,196 @@
1 PRAGMA foreign_keys=OFF;
2 BEGIN TRANSACTION;
3 CREATE TABLE blob(
4 rid INTEGER PRIMARY KEY,
5 rcvid INTEGER,
6 size INTEGER,
7 uuid TEXT UNIQUE NOT NULL,
8 content BLOB,
9 CHECK( length(uuid)==40 AND rid>0 )
10 );
11 INSERT INTO "blob" VALUES(1,1,160,'85d5623f065ba80b20a035dcb4f9aea045215406',X'000000A0789C1DC8BD0E82301000E0BD4F71334993FE1CB465D507300617C352AED7D0208D011C787BA3E3F75DA0D47294F81A775EDFC739EE34332DB2547105A3B492DA48AD078D7D1B7A6BC54DDC21A14E9E52F059A9C928E4E0950AC133658FC6B118A099B6586986068EED5397DFECE72AFF80463C206DB37802C69CACCB31B8EC983B424D2D2361B04645EE92F802B1932DED');
12 INSERT INTO "blob" VALUES(2,2,10,'da5c8346496f3421cb58f84b6e59e9531d9d424d',X'0000000A789C73E472E272E672E172E5020008CA0182');
13 INSERT INTO "blob" VALUES(3,2,10,'ed24d19d726d173f18dbf4a9a0f8514daa3e3ca4',X'0000000A789CF3E6F2E1F2E5F2E3F2E7020009F601B4');
14 INSERT INTO "blob" VALUES(4,2,10,'278a402316510f6ae4a77186796a6bde78c7dbc1',X'0000000A789C73E372E7F2E0F2E4F2E202000960019B');
15 INSERT INTO "blob" VALUES(5,2,325,'69cc5363f67013c09bf506e3fe9533c32d0bc1ef',X'000000AF789C05C1C10AC2300C00D07BBF621FB0439A365B3B2F0351F426CA2EB24BBAA4AC3005D7FD3FBE47645EC3B96191B91EEBAE3AD7F22D47E16DAEB96C5AEFE3B5F5030E00388DF6D1DADF1048A84397A1A3C401120283235992CF9195C1135AF2D09967B308E788392FA187B8B0042F2E893AC60E803499A9917D35EF26AA789C458FBD4E43310C85F7FB14992B15D971E224AC20668460412C4E6CAB0828D26DF97B7B521062F3393A9F7D7C1144F5E1E08FEF7676FC3C2E972102C216E316F116F339E4F348CB55F80B84EAD0FAC85918ACD721C08E20D47329222E955B27E49627F3BAFF4554F2A8943835764A1147CFD56BEA6CB959CB84DA34C5A41339EE56FB854CA7834D4B64C5428E55BB2769025E33261521A321E9047DBCFE20B1544910E7F98CE02C96A414AC5C1A0B77B55247D13E70B90EDCC6C8C4E45C0069CC973C031BF9A90F0D8A0A3368BEDC048D71F05C904094AA36214F96129644E6B9C3721B367D95FDD8854DE86B3CE9C3D7CB768E6133C5F647C8C19E1FF7F6EF1CD7B7FDD3947741D7DD721FDCA03783593423C3B056B5C6D920B6C6540B2CDF2E8476894,'341db367709dc7bc5046ab4fda4f5815cf5804e8933eab64ae34e00bbb381be72c5',X'0000000A789C0BE00AE40AE20AE60AE102000A8C01CD');
16 INSERT INTO "blob" VALUES(8,4,364,'341db367709dc7bc5046ab4fda4f7d9423118cba',X'0000016C789C35CE3B4E44310C85E1FEAE221B1864C78F24B4206A84A0413476EC888A918641B07CEE0CA23D3A9FF4DF158B78FB5CC7AFD3CDF9E7BCDD970A0807AC07C467945BE05B94EDA1FC1F0A4947994B3A70F64194E6CA96C409E0EED4D1B3D57931C78FBC9230999D5879E822AE385DFAEAEC9A327208618CE0CAB193F3FB29FF50C6BEE0885635B0D1C21EBED886C1EA821C6694348D2FE8FB7825B57563A8842A084B2DD95AC3AE6DA8A947B63E5BF8C4EDB1E8985348696903A409C3978026AD4B0F4DAA01FB31D7F65422C1AC73A4A3D5BD7CEF07016B16BBB5C9DB4B89D3FBF65A6C7873C33052034A6D94E82CAED85BA4ACED1765FC64F9');
17 INSERT INTO "blob" VALUES(9,5,294,'9223b4cad40c0bc997b747fe4eee586559a43815',X'00000126789C8D8E310E83300C45774E91B955243B714860EE11E85275B16322A4AA0C0186DEBEA00E5DD9FEF2FE7B37E300C1A2B38803861EA8F7D40CE62295E73C194FA8E2DB18A1D31C2507A096858A3295A81D398F98B2B0918A07B67CDE769FA7B99DB92AAFE379D1BFF7B9FC8231EC2FF630AF759B5FE7DD77A3756A1EC68D0C3E69424DA20E3460804C259172F15E52F305DF884EE5');
18 INSERT INTO "blob" VALUES(10,6,10,'8f09bc55a60eb8ca06f10a3b577aafa869b31695',X'0000000A789C0BE50AE30AE78AE08AE402000B2201E6');
19 INSERT INTO "blob" VALUES(11,6,426,'3d5bce2e44a6b39205eb514c581aa41d86f48540',X'00000116789C458ECB4A04311444F7F98AAC075BEE23B949DA8DA01F203A832082E471C30C6A2FBA47D1BF37BA7157A7288A23DDBCCC3736B7F6BCF5D3A75E9EBFCEE6D612204C4813E21EFD0C7E266AD78F177C9829C4EC8018C52374C9EA7208182524C9529A8658432B15CD9D9554AB67E12E01902BA4D23D8872D7E4992B538331D46EEE6D23AA320E1CE4C6B1A5CCDDA973181C6BF705CCDEEECA9A977AB43B5B56FAE5EDFB7D1AD1EE064C7F90377D3B2DFADF9CD78FE575E0C1B6F5689E6C57284961887A14A89A628B340C2825E118C020A6F0E0AE7E00A7744B2A');
20 INSERT INTO "blob" VALUES(12,7,10,'c6536e40b3d4755ead483c2e0fb2f16ecb751b6a',X'0000000A789C33E032E432E232E632E1020006CC012D');
21 INSERT INTO "blob" VALUES(13,7,424,'b95701e0b73e5ebf452a9a7ae00360bf7fd187fd',X'000001A8789C4590414F83310886EFDFAFE879C90C9496B65E359E8DD18BF10285668B3A936F33EABFB753136FBCC003BC5C05317B3A1EF79F17A7CFD3721D22206C316E11EF315F025FC6B8DC84B7839FEBC124F74A8953E3412962D75C474DCA9E9BB74C68CD524C3691BF91A17326F6044A964ACE2E962AF5E830340E64EF5A322ACB444EBBD57FF7B8CD21D8AC44362C34B09A8E244D60D48CC944C8A94B3A431F6F3F482C55124442CE0883C5939482954B6361352FB517D38ECB6DE0D6FB3C8A061740EAD0746460A771B6409DA2C16CF4B1DC85311D4D9AA4E4DEB21924D10AAA0834AD132CF761A3AB1CFA2E6C82AE74D6C7AFD7ED0CC3668AED8F90A3BFEC0FFE9F39ADEF87E7291F82ADBBE5312895341D420637C74AB5CD6F5185E23AC41B2FDF3224768A');
22 INSERT INTO "blob" VALUES(14,8,11,'6f525ab779ad66e24474d845c5fb7938be42d50d',X'0000000B789C73E4728AE072E672E172E502000C1801DA');
23 INSERT INTO "blob" VALUES(15,8,319,'c19f6ae71a35cddef0d5de3e1e6109c4378c8215',X'000000E0789C0DCA314E04310C05D03EA7C80158E41F27F6646890587A844048681B274E986A4762B6A0E2ECF0EA977FC3B63EC5BED9F56B1C97E3B65F8EFD3AEE6F3FB7708E894027A413F086B292AE00F6C7ED2E7DAC4917CB94185240536C6453C5225AC5A4F9D0A5ABB78EF012A5F65E58788A12B8536DB3900C9EA316E6CEC9E93F8E195EA361641573481EA5D6E900235B422FD49435BC47FFDEC2672469A9CEC98AAEE685672ECD45B28FEA8B590BA99D9FBD3DFC010C0C3CFF');
24 INSERT INTO "blob" VALUES(16,9,11,'b262fee89ed8a27a23a5e09d3917e0bebe22cd24',X'0000000B789C73E372E7F288E0F2E4F2E202000C5A01F3');
25 INSERT INTO "blob" VALUES(17,9,319,'41a02f2b2277d771d85e7f1202c82d4d6675662f',X'000000D8789C0DCE3B4E03410C00D07E4EB107D820DB63CF8F668B488882068890E8BCB6478806258A142ACE4E0EF0A4C77FE96983F56DDC7E1EAEBFD7745C08100E4807C47794017590206CDFAB8F7062C7EE958A63CD139BEF93B52BCC26C8AE9A239BF265A39715CFC3B0CFA25151B3987B4C70F1C8815110BA71AECD1AA1A4D785F5AE4929B07397CADE729F6462358A36F3745AFCF2953E17C9AD30766AA5CE3DD8E27EA1BD548FD80D9C533E3F9FE6C7E33F8FCE3AED');
26 INSERT INTO "blob" VALUES(18,10,187,'6c22c86ee8a603f5e18171efb6ff571b59e35cf3',X'000000BB789C8DCCAD0EC230140650DFA7A8274BFAB5B4B7ADE611862198EEFE30038261787B9843A24F724E3E068409710266E41E6A4776B33FC878A967342B4309236516510B924593420B42E363A2CA3522FF24D76D5FA803FBB2BDEF13AF8F1BFEAEDCD9CB7375176F45D8961C858C9651BED86C080189381621F701B249318A');
27 INSERT INTO "blob" VALUES(19,11,187,'8b9f82378ea7a5f9ef8e80d31929f6dfab988acc',X'000000BB789C8DCC3D0EC2300C06D03DA7C88E22D95F623BEACC11CA8258F24B1718280BB747DD18790778670F620A8CC0BCB22C9497486EF5A75EDEC3272E84890A987533EE59864D06A165F4D4554D54317F92DB7E2CB6408E65FF3C42DB9E77FC5DB98BEFAFCD5DBD0C9E604819AC31D5A489F2906AA5C5AAA4C57D01A0C52E74');
28 INSERT INTO "blob" VALUES(20,12,11,'64a8a5c7320fccfa4b2e5dfc5fd20a5381a86c5b',X'0000000B789CF3E6F2E1F2E5F28BE0F2E702000CA7020C');
29 INSERT INTO "blob" VALUES(21,12,321,'5a71ecd64585155b076a4f1e4d489eb5fe3d05f4',X'00000141789C3D8F314E04310C45FB9C221758643B719C6C0BA246081A44E3C40E53ED48BB23C1F1095B50B8F8FA7A4FDF8F716C7AF9F2DBE7EDD8D76D57F787E3E7084F9100E18474427D8A846C8FAD5004A4CD8AE5F86CF99AEFD173B8CDA7D8FD6BBDDCD7EBD2FBF1725FFA77B9F5BDB79F708E09100E980E886F4833F28C80BF4FFE90C69C444B86342113C2E0D273114165312E55,4f9aea045215406',XPRAGMA foreign_keys=OFF;
30 BEGIN TRANSACTION;
31 CREATE TABLE blob(
32 rid INTEGER PRIMARY KEY,
33 rcvid INTEGER,
34 size INTEGER,
35 uuid TEXT UNIQUE NOT NULL,
36 content BLOB,
37 CHECK( length(uuid)==40 AND rid>0 )
38 );
39 INSERT INTO "blob" VALUES(1,1,160,'85d5623f065ba80b20a035dcb4f9aea045215406',X'000000A0789C1DC8BD0E82301000E0BD4F71334993FE1CB465D507300617C352AED7D0208D011C787BA3E3F75DA0D47294F81A775EDFC739EE34332DB2547105A3B492DA48AD078D7D1B7A6BC54DDC21A14E9E52F059A9C928E4E0950AC133658FC6B118A099B6586986068EED5397DFECE72AFF80463C206DB37802C69CACCB31B8EC983B424D2D2361B04645EE92F802B1932DED');
40 INSERT INTO "blob" VALUES(2,2,10,'da5c8346496f3421cb58f84b6e59e9531d9d424d',X'0000000A789C73E472E272E672E172E5020008CA0182');
41 INSERT INTO "blob" VALUES(3,2,10,'ed24d19d726d173f18dbf4a9a0f8514daa3e3ca4',X'0000000A789CF3E6F2E1F2E5F2E3F2E7020009F601B4');
42 INSERT INTO "blob" VALUES(4,2,10,'278a402316510f6ae4a77186796a6bde78c7dbc1',X'0000000A789C73E372E7F2E0F2E4F2E202000960019B');
43 INSERT INTO "blob" VALUES(5,2,325,'69cc5363f67013c09bf506e3fe9533c32d0bc1ef',X'000000AF789C05C1C10AC2300C00D07BBF621FB0439A365B3B2F0351F426CA2EB24BBAA4AC3005D7FD3FBE47645EC3B96191B91EEBAE3AD7F22D47E16DAEB96C5AEFE3B5F5030E00388DF6D1DADF1048A84397A1A3C401120283235992CF9195C1135AF2D09967B308E788392FA187B8B0042F2E893AC60E803CREATE TABLE user(
44 uid INTEGER PRIMARY KEY,
45 login TEXT,
46 pw TEXT,
47 cap TEXT,
48 cookie TEXT,
49 ipaddr TEXT,
50 cexpire DATETIME,
51 info TEXT,
52 photo BLOB
53 );
54 INSERT INTO "user" VALUES(1,'drh','efbbd0','s',NULL,NULL,NULL,'',NULL);
55 INSERT INTO "user" VALUES(2,'anonymous','42568D1800352E28','ghmncz',NULL,NULL,NULL,'Anon',NULL);
56 INSERT INTO "user" VALUES(3,'nobody','','jor',NULL,NULL,NULL,'Nobody',NULL);
57 INSERT INTO "user" VALUES(4,'developer','','dei',NULL,NULL,NULL,'Dev',NULL);
58 INSERT INTO "user" VALUES(5,'reader','','kptw',NULL,NULL,NULL,'Reader',NULL);
59 CREATE TABLE config(
60 name TEXT PRIMARY KEY NOT NULL,
61 value CLOB,
62 CHECK( typeof(name)='text' AND length(name)>=1 )
63 );
64 INSERT INTO "config" VALUES('SERT INTO "config" VALUES('content-schema','1');
65 INSERT INTO "config" VALUES('6b8eb623626de6f9f747058');
66 INserver-code','48d0adf1afd58dae13c5b70ff7aff208fb8b9f53');
67 INSERT INTO "config" VALUES('project-code','8201587e22864f2fe6b8eb623626de6f9f747058');
68 INSERT INTO "config" VALUES('autosync','1');
69 INSERT INTO "config" VALUES('localauth','0');
70 INSERT INTO "config" VALUES('project-name','Test Case 1');
71 INSERT INTO "config" VALUES('project-description','Fossil repository for testing');
72 INSERT INTO "config" VALUES(aux-schema','2010-11-24');
73 CREATE TABLE shun(uuid UNIQUE);
74 CREATE TABLE private(rid INTEGER PRIMARY KEY);
75 CREATE TABLE reportfmt(
76 rn integer primary key,
77 owner text,
78 title text,
79 cols text,
80 sqlcode text
81 );
82 INSERT INTO "reportfmt" VALUES(1,NULL,'All Tickets','#ffffff Key:
83 #f2dcdc Active
84 #e8e8e8 Review
85 #cfe8bd Fixed
86 #bde5d6 Tested
87 #cacae5 Deferred
88 #c8c8c8 Closed','SELECT
89 CASE WHEN status IN (''Open'',''Verified'') THEN ''#f2dcdc''
90 WHEN status=''Review'' THEN ''#e8e8e8''
91 WHEN status=''Fixed'' THEN ''#cfe8bd''
92 WHEN status=''Tested'' THEN ''#bde5d6''
93 WHEN status=''Deferred'' THEN ''#cacae5''
94 ELSE ''#c8c8c8'' END AS ''bgcolor'',
95 substr(tkt_uuid,1,10) AS ''#'',
96 datetime(tkt_mtime) AS ''mtime'',
97 type,
98 status,
99 subsystem,
100 title
101 FROM ticket');
102 CREATE TABLE concealed(
103 hash TEXT PRIMARY KEY,
104 content TEXT
105 );
106 CREATE TABLE filename(
107 fnid INTEGER PRIMARY KEY,
108 oneGMA foreignSGMA foreign_keys=OFF;
109 BEGIN TRANSACTION;
110 CREATE TABLE blob(
111 rid INTEGER PRIMARY KEY,
112 rcvid INTEGER,
113 size INTEGER,
114 uuid TEXT UNIQUE NOT NULiGMA foreign_keys=OFF;
115 BEGIN TRANSACTION;
116 CREATE TABLE blob(
117 rid INTEGER PRIMARY KEY,
118 rcvid INTEGER,
119 size INTEGER,
120 uuid TEXT UNIQUE NOT NULL,
121 content BLOB,
122 CHECK( length(uuid)==40 AND rid>0 )
123 );
124 IN TRANSAGMA foreign_keys=OFF;
125 BEGIN TRANSACTION;
126 CREATE TABLE blob(
127 rid INTEGER PRIMARY KEY,
128 rcvid INTEGER,
129 size INTEGER,
130 uuid TEXT UNIQUE NOT NULL,
131 content BLOB,
132 CHECK( length(uuid)==40 AND rid>0 )
133 );
134 INSERT INTO "blob" VALUES(1,1,160,'85d5623f065ba80b20a035dcb4f9aea045215406',X'000000A0789C1DC8BD0E82301000E0BD4F71334993FE1CB465D507300617C352AED7D0208D011C787BA3E3F75DA0D47294F81A775EDFC739EE34332DB2547105A3B492DA48AD078D7D1B7A6BC54DDC21A14E9E52F059A9C928E4E0950AC133658FC6B118A099B6586986068EED5397DFECE72AFF80463C206DB37802C69CACCB31B8EC983B424D2D2361B04645EE92F802B1932DED');
135 INSERT INTO "blob" VALUES(2,2,10,'da5c8346496f3421cb58f84b6e59e9531d9d424d',X'0000000A789C73E472E272E672E172E5020008CA0182');
136 INSERT INTO "blob" VALUES(3,2,10,'ed24d19d726d173f18dbf4a9a0f8514daa3e3ca4',X'0000000A789CF3E6F2E1F2E5F2E3F2E7020009F601B4');
137 INSERT INTO "blob" VALUES(4,2,10,'278a402316510f6ae4a77186796a6bde78c7dbc1',X'0000000A789C73E372E7F2E0F2E4F2E202000960019B');
138 INSERT INTO "blob" VALUES(5,2,325,'69cc5363f67013c09bf506e3fe9533c32d0bc1ef',X'000000AF789C05C1C10AC2300C00D07BBF621FB0439A365B3B2F0351F426CA2EB24BBAA4AC3005D7FD3FBE47645EC3B96191B91EEBAE3AD7F22D47E16DAEB96C5AEFE3B5F5030E00388DF6D1DADF1048A84397A1A3C401120283235992CF9195C1135AF2D09967B308E788392FA187B8B0042F2E893AC60E803499A9917D35EF2670C09853E0A8092893EF859CB33D6A8414351AFCF0ED72FA03D5E231F2');
139 INSERT INTO "blob" VALUES(6,3,190,'3bfa21d09f8718adc3195848d57114e1fbf564fe',X'000000BE789C8DCC3B0EC2300C00D03DA7C88E2AF9A32475678E5016C49238B6400206D285DB036261E400EFED2301C2843421AE9816A02595B0C65DAF9BC52CAA89337B2E80AC20CD1364633749CCCAD4A1299AFF24A7F15D003ECB78DEA656875D2FF7FFB77088FD710EC758BA6095590C082BEAECEC4AC58CDEBEA2617801EE253190');
140 INSERT INTO "blob" VALUES(7,4,10,'35815cf5804e8933eab64ae34e00bbb381be72c5',X'0000000A789C0BE00AE40AE20AE60AE102000A8C01CD');
141 INSERT INTO "blob" VALUES(8,4,364,'341db367709dc7bc5046ab4fda4f7d9423118cba',X'0000016C789C35CE3B4E44310C85E1FEAE221B1864C78F24B4206A84A0413476EC888A918641B07CEE0CA23D3A9FF4DF158B78FB5CC7AFD3CDF9E7BCDD970A0807AC07C467945BE05B94EDA1FC1F0A4947994B3A70F64194E6CA96C409E0EED4D1B3D57931C78FBC9230999D5879E822AE385DFAEAEC9A327208618CE0CAB193F3FB29FF50C6BEE0885635B0D1C21EBED886C1EA821C6694348D2FE8FB7825B57563A8842A084B2DD95AC3AE6DA8A947B63E5BF8C4EDB1E8985348696903A409C3978026AD4B0F4DAA01FB31D7F65422C1AC73A4A3D5BD7CEF07016B16BBB5C9DB4B89D3FBF65A6C7873C33052034A6D94E82CAED85BA4ACED1765FC64F9');
142 INSERT INTO "blob" VALUES(9,5,294,'9223b4cad40c0bc997b747fe4eee586559a43815',X'00000126789C8D8E310E83300C45774E91B955243B714860EE11E85275B16322A4AA0C0186DEBEA00E5DD9FEF2FE7B37E300C1A2B38803861EA8F7D40CE62295E73C194FA8E2DB18A1D31C2507A096858A3295A81D398F98B2B0918A07B67CDE769FA7B99DB92AAFE379D1BFF7B9FC8231EC2FF630AF759B5FE7DD77A3756A1EC68D0C3E69424DA20E3460804C259172F15E52F305DF884EE5');
143 INSERT INTO "blob" VALUES(10,6,10,'8f09bc55a60eb8ca06f10a3b577aafa869b31695',X'0000000A789C0BE50AE30AE78AE08AE402000B2201E6');
144 INSERT INTO "blob" VALUES(11,6,426,'3d5bce2e44a6b39205eb514c581aa41d86f48540',X'00000116789C458ECB4A04311444F7F98AAC075BEE23B949DA8DA01F203A832082E471C30C6A2FBA47D1BF37BA7157A7288A23DDBCCC3736B7F6BCF5D3A75E9EBFCEE6D612204C4813E21EFD0C7E266AD78F177C9829C4EC8018C52374C9EA7208182524C9529A8658432B15CD9D9554AB67E12E01902BA4D23D8872D7E4992B538331D46EEE6D23AA320E1CE4C6B1A5CCDDA973181C6BF705CCDEEECA9A977AB43B5B56FAE5EDFB7D1AD1EE064C7F90377D3B2DFADF9CD78FE575E0C1B6F5689E6C57284961887A14A89A628B340C2825E118C020A6F0E0AE7E00A7744B2A');
145 INSERT INTO "blob" VALUES(12,7,10,'c6536e40b3d4755ead483c2e0fb2f16ecb751b6a',X'0000000A789C33E032E432E232E632E1020006CC012D');
146 INSERT INTO "blob" VALUES(13,7,424,'b95701e0b73e5ebf452a9a7ae00360bf7fd187fd',X'000001A8789C4590414F83310886EFDFAFE879C90C9496B65E359E8DD18BF10285668B3A936F33EABFB753136FBCC003BC5C05317B3A1EF79F17A7CFD3721D22206C316E11EF315F025FC6B8DC84B7839FEBC124F74A8953E3412962D75C474DCA9E9BB74C68CD524C3691BF91A17326F6044A964ACE2E962AF5E830340E64EF5A322ACB444EBBD57FF7B8CD21D8AC44362C34B09A8E244D60D48CC944C8A94B3A431F6F3F482C55124442CE0883C5939482954B6361352FB517D38ECB6DE0D6FB3C8A061740EAD0746460A771B6409DA2C16CF4B1DC85311D4D9AA4E4DEB21924D10AAA0834AD132CF761A3AB1CFA2E6C82AE74D6C7AFD7ED0CC3668AED8F90A3BFEC0FFE9F39ADEF87E7291F82ADBBE5312895341D420637C74AB5CD6F5185E23AC41B2FDF3224768A');
147 INSERT INTO "blob" VALUES(14,8,11,'6f525ab779ad66e24474d845c5fb7938be42d50d',X'0000000B789C73E4728AE072E672E172E502000C1801DA');
148 INSERT INTO "blob" VALUES(15,8,319,'c19f6ae71a35cddef0d5de3e1e6109c4378c8215',X'000000E0789C0DCA314E04310C05D03EA7C80158E41F27F6646890587A844048681B274E986A4762B6A0E2ECF0EA977FC3B63EC5BED9F56B1C97E3B65F8EFD3AEE6F3FB7708E894027A413F086B292AE00F6C7ED2E7DAC4917CB94185240536C6453C5225AC5A4F9D0A5ABB78EF012A5F65E58788A12B8536DB3900C9EA316E6CEC9E93F8E195EA361641573481EA5D6E900235B422FD49435BC47FFDEC2672469A9CEC98AAEE685672ECD45B28FEA8B590BA99D9FBD3DFC010C0C3CFF');
149 INSERT INTO "blob" VALUES(16,9,11,'b262fee89ed8a27a23a5e09d3917e0bebe22cd24',X'0000000B789C73E372E7F288E0F2E4F2E202000C5A01F3');
150 INSERT INTO "blob" VALUES(17,9,319,'41a02f2b2277d771d85e7f1202c82d4d6675662f',X'000000D8789C0DCE3B4E03410C00D07E4EB107D820DB63CF8F668B488882068890E8BCB6478806258A142ACE4E0EF0A4C77FE96983F56DDC7E1EAEBFD7745C08100E4807C47794017590206CDFAB8F7062C7EE958A63CD139BEF93B52BCC26C8AE9A239BF265A39715CFC3B0CFA25151B3987B4C70F1C8815110BA71AECD1AA1A4D785F5AE4929B07397CADE729F6462358A36F3745AFCF2953E17C9AD30766AA5CE3DD8E27EA1BD548FD80D9C533E3F9FE6C7E33F8FCE3AED');
151 INSERT INTO "blob" VALUES(18,10,187,'6c22c86ee8a603f5e18171efb6ff571b59e35cf3',X'000000BB789C8DCCAD0EC230140650DFA7A8274BFAB5B4B7ADE611862198EEFE30038261787B9843A24F724E3E068409710266E41E6A4776B33FC878A967342B4309236516510B924593420B42E363A2CA3522FF24D76D5FA803FBB2BDEF13AF8F1BFEAEDCD9CB7375176F45D8961C858C9651BED86C080189381621F701B249318A');
152 INSERT INTO "blob" VALUES(19,11,187,'8b9f82378ea7a5f9ef8e80d31929f6dfab988acc',X'000000BB789C8DCC3D0EC2300C06D03DA7C88E22D95F623BEACC11CA8258F24B1718280BB747DD18790778670F620A8CC0BCB22C9497486EF5A75EDEC3272E84890A987533EE59864D06A165F4D4554D54317F92DB7E2CB6408E65FF3C42DB9E77FC5DB98BEFAFCD5DBD0C9E604819AC31D5A489F2906AA5C5AAA4C57D01A0C52E74');
153 INSERT INTO "blob" VALUES(20,12,11,'64a8a5c7320fccfa4b2e5dfc5fd20a5381a86c5b',X'0000000B789CF3E6F2E1F2E5F28BE0F2E702000CA7020C');
154 INSERT INTO "blob" VALUES(21,12,321,'5a71ecd64585155b076a4f1e4d489eb5fe3d05f4',X'00000141789C3D8F314E04310C45FB9C221758643B719C6C0BA246081A44E3C40E53ED48BB23C1F1095B50B8F8FA7A4FDF8F716C7AF9F2DBE7EDD8D76D57F787E3E7084F9100E18474427C433E239D81C273DC2FF73E96C9C4DA459A5A294E394BB69A79F0ECD252ED9EC9186C21FFD258B256E52189608E31357772B6B91823504E15B596C1FD0FFADEEF48A742D3BD36B7AA244A49D9A1596A280EDDBB130DA31C5E6246059AD489444C04ADB2CB44021A952CAF99C265D9C2EBB2226371186AA4C35704D7C252C0B06A1FE13DDA750B1F9111E6C4543CF1C4A1136606582F0FE406D424FC021EAB59DA');
155 INSERT INTO "blob" VALUES(22,13,187,'a2c1640c98b3059a83df0b597d673ad073b782de',X'000000BB789C8DCC310EC2300C00C03DAFC88E22D9899DA49D794259108B93D874818176E1F7805818994FBAA38F80103006C40579C63863718B3F0CD9D5B314D43E327165646E50B290A1D2A03A6963D334808D7E92CBF65D207E96ED790B7DBD5FD3DF953BF9F158DDD96B1EB1D91B92285649B917AD5627A8066842EE05469C30D4');
156 INSERT INTO "blob" VALUES(23,14,10,'6e167b139c294bed560e2e30b352361b101e1f39',X'0000000A789C33E532E332E7B2E0B2E4020007620146');
157 INSERT INTO "blob" VALUES(24,14,388,'8015e80a2391d4497530b5d0f36689f359e374ba',X'00000184789C4590314FC4300C85F7FE8ACC2715D971E234C7086246E8585017277174086851DBD3C1BF27BD85CDCFF6A7F7EC075396F97B5CE749EFC7554A19D749AFE35AE7CBD23D1A0B083DDA1EF184FE8874F4DC3D997D78B7FD6C86153924A4986D74498B6750AB0489BC25C684808A956263B6F3A27A83B45857309660B960A08A4349D54914A88347574448298BDBA1EB7C436C18C48125648F5059D449083870882C9C8A862187923276CF8663CE9E982A0740CA1053F5C04A55A327CA640BB445ADDD8B69E611497373AF425407B0FB19A145C6C04CDDC91CD222533E9B83498BDBF5FAFBD5B7D21C9AE86F4256FD7C9FF4BFB32D97E9A3C9D7F6DA73F7666A96907CB351CB9A23D89CAB44675B50715CA8FB033C856E21');
158 INSERT INTO "blob" VALUES(25,15,11,'e866bb885d5184cba497cfb6a4eb281688519521',X'0000000B789C73E472E272E672E1728DE002000AF201DA');
159 INSERT INTO "blob" VALUES(26,15,372,'b882b17dc56af1e0297bf8a57c9d15050215c64a',X'00000174789C458E414B04310C85EFF32B7A5E1869D23669BD2A9E45D68B78499BD41175166657D47F6F7711841CF2F2DE47DE8D6B8BAC2FF67C3CAC36DD3AF4E067C019600FE97A0CD274E7867775FA3E39CB44B5E69C34418EAD4A2CDC7A25895631030D074A4218C869D9EC0F528C0A451949814387ACB54729E2FB88471509169AC433F475B820C859A2C70094C077128BC20C99B8905055E3DC586B83E9DE51692D050A9DD84368BED49E3C59E85652082DA0FA11B43E3D38EB297266D4D414C427E30E56C2E8D0A1F9D4A7BDDBD54DD6B6B89DAB5B3AEBE3CFC73C56B71B62BE0839DAFBEB6AFF97D3F6B9BE0DF9E8745BA6A7F1463B76C4AC68218D9A1AA216C2D822D4C63CFD0205E667AF');
160 INSERT INTO "blob" VALUES(27,16,11,'e09593950837f76e70ca2f8ff2272ae3df0ba017',X'0000000B789CF38EE0F2E1F2E5F2E3F2E702000DB2020C');
161 INSERT INTO "blob" VALUES(28,16,341,'9df70ff13b57e70ea2de63f655eb72df7b83121a',X'000000EF789C0DCD3D4E03311040E1DEA7F001089AF17AFE360D52525220040D8A846C8FAD5004A4CD8AE5F86CF99AEFD173B8CDA7D8FD6BBDDCD7EBD2FBF1725FFA77B9F5BDB79F708E09100E980E886F4833F28C80BF4FFE90C69C444B86342113C2E0D273114165312E5CBD8B36F1DA306E71B71ED7BF35BCC4AA9A2A8A37E232B04332A9430B493347028284D43897F01AD5D4B077A326640C5981477611A324FB7A84F7E8CB357C441BD51C9407541D0A669433FBA05C26622E14A6069F1B1FFF019008411F');
162 INSERT INTO "blob" VALUES(29,17,11,'5ebb3c9ad50740a7382902657b84a6105c32fc7b',X'0000000B789C73E372E7F2E0F28CE4F2E202000C0101F4');
163 INSERT INTO "blob" VALUES(30,17,322,'94bd3e6b45cc15e86cc76ecfd2207fddbb675b15',X'00000142789C3DCE314E44310C04D0FE9F221758643B711C6F0BA246081A441327B696825D69F9121C9F8010F5F8CDF836F97CDB5F3FF6CFCBE1EAE7FEEEDB5D224038201D109F908F588F85B6FB7439FBCDFEB5276FB59AB5C693B19561BDA88CB0DA8B1B35AC2B4165C245F6D3D5FF10286B56869625A4BAC0E8142D8248A87B9E01D601E507FDBFF22BD9CDF2D03E19A44097DC48812A8BB5D22B028F4C31C4B687A4330422301BCB5AF04ED36B8ECAAB436885D63212F6ED31E56985D1EB2A96A22DFA8800CC6C485A88FAF69CE6F5B4BD24556990111A87AECBEEEAB50C5F8EAB308FED1BE1CB587B');
164 INSERT INTO "blob" VALUES(31,18,11,'85286cb3bc6d9e6f2f586eb5532f6065678f75b9',X'0000000B789C73E372E7F2E0F2E4F28AE402000BA301F4');
165 INSERT INTO "blob" VALUES(32,18,360,'333c4d56d218735e20565944b50202f24827e3b8',X'00000168789C25CF3D4E43311004E0DEA7F00582BCDE1FAFD382A8118206D1ECDA5E250D91C213E1F83C9476349F34F398D73C6F9FDFDBED929E722D500E500F006F20472A47C4F49CE3FCB31EB6DF2D6B94EE83D9A42CD76145028AA1736B66612ADD11A4F36E2E5F77328D8722097509A40AC35943C965715F9D11669F5469EE643B5DD71DADB927D067AB32A161804E0FB26E259481A6192E1C46FFE876B94FE3AA321C7DC8EC4BA206AB2C67C61A5284A56934F69E5E324EF6B1EA223271ECB5F0DE031AAC604630558294A9A4D76C4B54753F568B8B16F4D5102946AD4EA1BAD27B9ED753FAC80338F6EBB37A31F568AD888A556519A32B78FA037C076278');
166 CREATE TABLE delta(
167 rid INTEGER PRIMARY KEY,
168 srcid INTEGER NOT NULL REFERENCES blob
169 );
170 INSERT INTO "delta" VALUES(5,8);
171 INSERT INTO "delta" VALUES(11,32);
172 INSERT INTO "delta" VALUES(15,17);
173 INSERT INTO "delta" VALUES(17,21);
174 INSERT INTO "delta" VALUES(28,30);
175 CREATE TABLE rcvfrom(
176 rcvid INTEGER PRIMARY KEY,
177 uid INTEGER REFERENCES user,
178 mtime DATETIME,
179 nonce TEXT UNIQUE,
180 ipaddr TEXT
181 );
182 INSERT INTO "rcvfrom" VALUES(1,1,2455542.12469579,NULL,NULL);
183 INSERT INTO "rcvfrom" VALUES(2,1,2455542.12638891,NULL,NULL);
184 INSERT INTO "rcvfrom" VALUES(3,1,2455542.12705387,NULL,'127.0.0.1');
185 INSERT INTO "rcvfrom" VALUES(4,1,2455542.12796271,NULL,NULL);
186 INSERT INTO "rcvfrom" VALUES(5,1,2455542.12818105,NULL,'127.0.0.1');
187 INSERT INTO "rcvfrom" VALUES(6,1,2455542.12873891,NULL,NULL);
188 INSERT INTO "rcvfrom" VALUES(7,1,2455542.1294266,NULL,NULL);
189 INSERT INTO "rcvfrom" VALUES(8,1,2455542.12999842,NULL,NULL);
190 INSERT INTO "rcvfrom" VALUES(9,1,2455542.13015219,NULL,NULL);
191 INSERT INTO "rcvfrom" VALUES(10,1,2455542.13073123,NULL,'127.0.0.1');
192 INSERT INTO "rcvfrom" VALUES(11,1,2455542.13090438,NULL,'127.0.0.1');
193 INSERT INTO "rcvfrom" VALUES(12,1,2455542.1333612,NULL,NULL);
194 INSERT INTO "rcvfrom" VALUES(13,1,2455542.13353873,NULL,'127.0.0.1');
195 INSERT INTO "rcvfrom" VALUES(14,1,2455542.13467894,NULL,NULL);
196 INSERT INTO "rcvfrom" V
+20 -12
--- test/tester.tcl
+++ test/tester.tcl
@@ -1,21 +1,15 @@
11
#
22
# Copyright (c) 2006 D. Richard Hipp
33
#
44
# This program is free software; you can redistribute it and/or
5
-# modify it under the terms of the GNU General Public
6
-# License version 2 as published by the Free Software Foundation.
5
+# modify it under the terms of the Simplified BSD License (also
6
+# known as the "2-Clause License" or "FreeBSD License".)
77
#
88
# This program is distributed in the hope that it will be useful,
9
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
-# General Public License for more details.
12
-#
13
-# You should have received a copy of the GNU General Public
14
-# License along with this library; if not, write to the
15
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-# Boston, MA 02111-1307, USA.
9
+# but without any warranty; without even the implied warranty of
10
+# merchantability or fitness for a particular purpose.
1711
#
1812
# Author contact information:
1913
# [email protected]
2014
# http://www.hwaci.com/drh/
2115
#
@@ -91,10 +85,11 @@
9185
9286
flush stdout
9387
set rc [catch {eval exec $cmd} result]
9488
global RESULT CODE
9589
set CODE $rc
90
+ if {$rc} {puts "ERROR: $result"}
9691
set RESULT $result
9792
}
9893
9994
# Read a file into memory.
10095
#
@@ -128,12 +123,14 @@
128123
return [expr {$x==$y}]
129124
}
130125
131126
# Perform a test
132127
#
128
+set test_count 0
133129
proc test {name expr} {
134
- global bad_test
130
+ global bad_test test_count
131
+ incr test_count
135132
set r [uplevel 1 [list expr $expr]]
136133
if {$r} {
137134
protOut "test $name OK"
138135
} else {
139136
protOut "test $name FAILED!"
@@ -201,9 +198,20 @@
201198
return [string range $out 1 end]
202199
}
203200
204201
protInit $fossilexe
205202
foreach testfile $argv {
203
+ set dir [file root [file tail $testfile]]
204
+ file delete -force $dir
205
+ file mkdir $dir
206
+ set origwd [pwd]
207
+ cd $dir
206208
protOut "***** $testfile ******"
207209
source $testdir/$testfile.test
210
+ protOut "***** End of $testfile: [llength $bad_test] errors so far ******"
211
+ cd $origwd
208212
}
209
-protOut "[llength $bad_test] errors: $bad_test"
213
+set nErr [llength $bad_test]
214
+protOut "***** Final result: $nErr errors out of $test_count tests"
215
+if {$nErr>0} {
216
+ protOut "***** Failures: $bad_test"
217
+}
210218
--- test/tester.tcl
+++ test/tester.tcl
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public
6 # License version 2 as published by the Free Software Foundation.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public
14 # License along with this library; if not, write to the
15 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 # Boston, MA 02111-1307, USA.
17 #
18 # Author contact information:
19 # [email protected]
20 # http://www.hwaci.com/drh/
21 #
@@ -91,10 +85,11 @@
91
92 flush stdout
93 set rc [catch {eval exec $cmd} result]
94 global RESULT CODE
95 set CODE $rc
 
96 set RESULT $result
97 }
98
99 # Read a file into memory.
100 #
@@ -128,12 +123,14 @@
128 return [expr {$x==$y}]
129 }
130
131 # Perform a test
132 #
 
133 proc test {name expr} {
134 global bad_test
 
135 set r [uplevel 1 [list expr $expr]]
136 if {$r} {
137 protOut "test $name OK"
138 } else {
139 protOut "test $name FAILED!"
@@ -201,9 +198,20 @@
201 return [string range $out 1 end]
202 }
203
204 protInit $fossilexe
205 foreach testfile $argv {
 
 
 
 
 
206 protOut "***** $testfile ******"
207 source $testdir/$testfile.test
 
 
208 }
209 protOut "[llength $bad_test] errors: $bad_test"
 
 
 
 
210
--- test/tester.tcl
+++ test/tester.tcl
@@ -1,21 +1,15 @@
1 #
2 # Copyright (c) 2006 D. Richard Hipp
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the Simplified BSD License (also
6 # known as the "2-Clause License" or "FreeBSD License".)
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but without any warranty; without even the implied warranty of
10 # merchantability or fitness for a particular purpose.
 
 
 
 
 
 
11 #
12 # Author contact information:
13 # [email protected]
14 # http://www.hwaci.com/drh/
15 #
@@ -91,10 +85,11 @@
85
86 flush stdout
87 set rc [catch {eval exec $cmd} result]
88 global RESULT CODE
89 set CODE $rc
90 if {$rc} {puts "ERROR: $result"}
91 set RESULT $result
92 }
93
94 # Read a file into memory.
95 #
@@ -128,12 +123,14 @@
123 return [expr {$x==$y}]
124 }
125
126 # Perform a test
127 #
128 set test_count 0
129 proc test {name expr} {
130 global bad_test test_count
131 incr test_count
132 set r [uplevel 1 [list expr $expr]]
133 if {$r} {
134 protOut "test $name OK"
135 } else {
136 protOut "test $name FAILED!"
@@ -201,9 +198,20 @@
198 return [string range $out 1 end]
199 }
200
201 protInit $fossilexe
202 foreach testfile $argv {
203 set dir [file root [file tail $testfile]]
204 file delete -force $dir
205 file mkdir $dir
206 set origwd [pwd]
207 cd $dir
208 protOut "***** $testfile ******"
209 source $testdir/$testfile.test
210 protOut "***** End of $testfile: [llength $bad_test] errors so far ******"
211 cd $origwd
212 }
213 set nErr [llength $bad_test]
214 protOut "***** Final result: $nErr errors out of $test_count tests"
215 if {$nErr>0} {
216 protOut "***** Failures: $bad_test"
217 }
218

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button