Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Merge in the annotatecmd_fix branch. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
e161670939b93ec9610b00404b9b4456 |
| User & Date: | drh 2011-10-19 19:54:35.629 |
References
|
2011-10-19
| ||
| 22:31 | merged in trunk [e161670939b93ec]. ... (check-in: 1d0a7103a3 user: stephan tags: json-multitag-test, json) | |
| 20:16 | • Closed ticket [f0f9aff371]: 'annotate' misses changes. plus 2 other changes ... (artifact: 9ff0f33c2a user: viriketo) | |
Context
|
2011-10-20
| ||
| 00:57 | Update the built-in SQLite to the latest 3.7.9 beta. ... (check-in: ccf43e1882 user: drh tags: trunk) | |
|
2011-10-19
| ||
| 22:31 | merged in trunk [e161670939b93ec]. ... (check-in: 1d0a7103a3 user: stephan tags: json-multitag-test, json) | |
| 20:28 | Bringing back the fixes for the 'make test' from [bf480a29a6], [e46be99ff4], [129605856a], for an eventual merge to trunk. ... (check-in: 5692702d50 user: viriketo tags: maketest_fixes) | |
| 19:54 | Merge in the annotatecmd_fix branch. ... (check-in: e161670939 user: drh tags: trunk) | |
| 18:59 | Fix for ticket [e5999e25eedeb]. Code style fix. ... (check-in: 4a296c0b1c user: jan tags: trunk) | |
|
2011-10-18
| ||
| 19:45 | Should fix ticket [f0f9aff371f2]. Until now, the annotate_cmd was taking the last (or any?) checkin that had the artifact to be annotated, totally unrelated to what version is checked out. I made annotate_cmd respect the checkout, and annotate only from the past until the checked out version. This makes the command slower, but at least does what I'd like it to do. Maybe someone else can come up with a faster or simpler implementation. I changed the compute_direct_ancestors code so I could call it twice in a single run. ... (Closed-Leaf check-in: c7c4279f13 user: viriketo tags: annotatecmd_fix) | |
Changes
Changes to src/descendants.c.
| ︙ | ︙ | |||
200 201 202 203 204 205 206 |
** direct ancestor as the largest generation number.
*/
void compute_direct_ancestors(int rid, int N){
Stmt ins;
Stmt q;
int gen = 0;
db_multi_exec(
| | > | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 |
** direct ancestor as the largest generation number.
*/
void compute_direct_ancestors(int rid, int N){
Stmt ins;
Stmt q;
int gen = 0;
db_multi_exec(
"CREATE TEMP TABLE IF NOT EXISTS ancestor(rid INTEGER, generation INTEGER PRIMARY KEY);"
"DELETE FROM ancestor;"
"INSERT INTO ancestor VALUES(%d, 0);", rid
);
db_prepare(&ins, "INSERT INTO ancestor VALUES(:rid, :gen)");
db_prepare(&q,
"SELECT pid FROM plink"
" WHERE cid=:rid AND isprim"
);
|
| ︙ | ︙ |
Changes to src/diff.c.
| ︙ | ︙ | |||
1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 |
** --log List all versions analyzed
** --filevers Show file version numbers rather than check-in versions
*/
void annotate_cmd(void){
int fnid; /* Filename ID */
int fid; /* File instance ID */
int mid; /* Manifest where file was checked in */
Blob treename; /* FILENAME translated to canonical form */
char *zFilename; /* Cannonical filename */
Annotator ann; /* The annotation of the file */
int i; /* Loop counter */
const char *zLimit; /* The value to the --limit option */
int iLimit; /* How far back in time to look */
int showLog; /* True to show the log */
| > | 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 |
** --log List all versions analyzed
** --filevers Show file version numbers rather than check-in versions
*/
void annotate_cmd(void){
int fnid; /* Filename ID */
int fid; /* File instance ID */
int mid; /* Manifest where file was checked in */
int cid; /* Checkout ID */
Blob treename; /* FILENAME translated to canonical form */
char *zFilename; /* Cannonical filename */
Annotator ann; /* The annotation of the file */
int i; /* Loop counter */
const char *zLimit; /* The value to the --limit option */
int iLimit; /* How far back in time to look */
int showLog; /* True to show the log */
|
| ︙ | ︙ | |||
1095 1096 1097 1098 1099 1100 1101 |
if( fnid==0 ){
fossil_fatal("no such file: %s", zFilename);
}
fid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%Q", zFilename);
if( fid==0 ){
fossil_fatal("not part of current checkout: %s", zFilename);
}
| > > > > > > | > > > | 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 |
if( fnid==0 ){
fossil_fatal("no such file: %s", zFilename);
}
fid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%Q", zFilename);
if( fid==0 ){
fossil_fatal("not part of current checkout: %s", zFilename);
}
cid = db_lget_int("checkout", 0);
if (cid == 0){
fossil_fatal("Not in a checkout");
}
if( iLimit<=0 ) iLimit = 1000000000;
compute_direct_ancestors(cid, iLimit);
mid = db_int(0, "SELECT mlink.mid FROM mlink, ancestor "
" WHERE mlink.fid=%d AND mlink.fnid=%d AND mlink.mid=ancestor.rid"
" ORDER BY ancestor.generation ASC LIMIT 1",
fid, fnid);
if( mid==0 ){
fossil_panic("unable to find manifest");
}
if( fileVers ) annFlags |= ANN_FILE_VERS;
annotate_file(&ann, fnid, mid, 0, iLimit, annFlags);
if( showLog ){
for(i=0; i<ann.nVers; i++){
|
| ︙ | ︙ |