80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
-
+
-
+
+
+
+
-
-
+
+
+
-
+
+
+
|
db_reset(&q);
}
/*
** COMMAND: export
**
** Usage: %fossil export
** Usage: %fossil export --git ?REPOSITORY?
**
** Write an export of all check-ins to standard output. The export is
** written in the Git "fast-import" format.
** written in the git-fast-export file format assuming the --git option is
** provided. The git-fast-export format is currently the only VCS
** interchange format supported, though other formats may be added in
** the future.
**
** Run this command within a checkout. Or use the -R or --repository
** option to specify a Fossil repository to be exported.
**
** Only check-ins are exported. Git does not support tickets or wiki
** or events or attachments, so none of that is exported.
** Only check-ins are exported using --git. Git does not support tickets
** or wiki or events or attachments, so none of those are exported.
*/
void export_cmd(void){
Stmt q;
int i;
Bag blobs, vers;
bag_init(&blobs);
bag_init(&vers);
find_option("git", 0, 0); /* Ignore the --git option for now */
db_find_and_open_repository(0, 0);
db_find_and_open_repository(0, 2);
verify_all_options();
if( g.argc!=2 && g.argc!=3 ){ usage("--git ?REPOSITORY?"); }
/* Step 1: Generate "blob" records for every artifact that is part
** of a check-in
*/
fossil_binary_mode(stdout);
db_prepare(&q, "SELECT DISTINCT fid FROM mlink WHERE fid>0");
while( db_step(&q)==SQLITE_ROW ){
|