| ︙ | | | ︙ | |
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
**
** 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, 2);
verify_all_options();
|
>
|
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
**
** 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;
int firstCkin; /* Integer offset to check-in marks */
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, 2);
verify_all_options();
|
| ︙ | | | ︙ | |
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
printf("\n");
blob_reset(&content);
}
db_finalize(&q);
/* Output the commit records.
*/
db_prepare(&q,
"SELECT strftime('%%s',mtime), objid, coalesce(comment,ecomment),"
" coalesce(user,euser),"
" (SELECT value FROM tagxref WHERE rid=objid AND tagid=%d)"
" FROM event"
" WHERE type='ci'"
" ORDER BY mtime ASC",
|
>
|
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
printf("\n");
blob_reset(&content);
}
db_finalize(&q);
/* Output the commit records.
*/
firstCkin = db_int(0, "SELECT max(rid) FROM blob")+1;
db_prepare(&q,
"SELECT strftime('%%s',mtime), objid, coalesce(comment,ecomment),"
" coalesce(user,euser),"
" (SELECT value FROM tagxref WHERE rid=objid AND tagid=%d)"
" FROM event"
" WHERE type='ci'"
" ORDER BY mtime ASC",
|
| ︙ | | | ︙ | |
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
bag_insert(&vers, ckinId);
if( zBranch==0 ) zBranch = "trunk";
zBr = mprintf("%s", zBranch);
for(i=0; zBr[i]; i++){
if( !fossil_isalnum(zBr[i]) ) zBr[i] = '_';
}
printf("commit refs/heads/%s\nmark :%d\n", zBr, ckinId);
free(zBr);
printf("committer");
print_person(zUser);
printf(" %lld +0000\n", secondsSince1970);
if( zComment==0 ) zComment = "null comment";
printf("data %d\n%s\n", (int)strlen(zComment), zComment);
p = manifest_get(ckinId, CFTYPE_ANY);
zFromType = "from";
for(i=0; i<p->nParent; i++){
int pid = fast_uuid_to_rid(p->azParent[i]);
if( pid==0 || !bag_find(&vers, pid) ) continue;
printf("%s :%d\n", zFromType, fast_uuid_to_rid(p->azParent[i]));
zFromType = "merge";
}
printf("deleteall\n");
manifest_file_rewind(p);
while( (pFile=manifest_file_next(p, 0))!=0 ){
int fid = fast_uuid_to_rid(pFile->zUuid);
const char *zPerm = "100644";
|
|
|
|
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
bag_insert(&vers, ckinId);
if( zBranch==0 ) zBranch = "trunk";
zBr = mprintf("%s", zBranch);
for(i=0; zBr[i]; i++){
if( !fossil_isalnum(zBr[i]) ) zBr[i] = '_';
}
printf("commit refs/heads/%s\nmark :%d\n", zBr, ckinId+firstCkin);
free(zBr);
printf("committer");
print_person(zUser);
printf(" %lld +0000\n", secondsSince1970);
if( zComment==0 ) zComment = "null comment";
printf("data %d\n%s\n", (int)strlen(zComment), zComment);
p = manifest_get(ckinId, CFTYPE_ANY);
zFromType = "from";
for(i=0; i<p->nParent; i++){
int pid = fast_uuid_to_rid(p->azParent[i]);
if( pid==0 || !bag_find(&vers, pid) ) continue;
printf("%s :%d\n", zFromType, fast_uuid_to_rid(p->azParent[i])+firstCkin);
zFromType = "merge";
}
printf("deleteall\n");
manifest_file_rewind(p);
while( (pFile=manifest_file_next(p, 0))!=0 ){
int fid = fast_uuid_to_rid(pFile->zUuid);
const char *zPerm = "100644";
|
| ︙ | | | ︙ | |
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
while( db_step(&q)==SQLITE_ROW ){
const char *zTagname = db_column_text(&q, 0);
int rid = db_column_int(&q, 1);
sqlite3_int64 secSince1970 = db_column_int64(&q, 2);
if( rid==0 || !bag_find(&vers, rid) ) continue;
zTagname += 4;
printf("tag %s\n", zTagname);
printf("from :%d\n", rid);
printf("tagger <tagger> %lld +0000\n", secSince1970);
printf("data 0\n");
}
db_finalize(&q);
bag_clear(&vers);
}
|
|
|
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
while( db_step(&q)==SQLITE_ROW ){
const char *zTagname = db_column_text(&q, 0);
int rid = db_column_int(&q, 1);
sqlite3_int64 secSince1970 = db_column_int64(&q, 2);
if( rid==0 || !bag_find(&vers, rid) ) continue;
zTagname += 4;
printf("tag %s\n", zTagname);
printf("from :%d\n", rid+firstCkin);
printf("tagger <tagger> %lld +0000\n", secSince1970);
printf("data 0\n");
}
db_finalize(&q);
bag_clear(&vers);
}
|