1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
|
An informal list of FIXMEs which don't warrant full tickets...
This is not *intended* to be a list of long-lived fixme's, but more of a scratchpad for things which come up spontaneously and shouldn't be forgotten.
In no particular order...
# f-zip
Fossil's tar and zip commands add the generated `manifest`, `manifest.uuid`, and `manifest.tags` to the output file if they repo has those enabled. `f-zip` should do the same. Apropos: `f-tar` should also eventually be implemented.
# f-vdiff
Just does really weird stuff sometimes when using the symbolic name `.` for the local checkout. e.g. after merging in fossil's trunk to the leaves-command-branched-from branch, then...
The "v2" diff engine (2021 edition), when outputing to a format which uses "chunk headers" (like unified) can sometimes split two chunks which are directly adjacent:
```
$ f-vdiff --from trunk --to .
$ ./f-vdiff 072d63965188 a725befe5863 -l '*vdiff*' | head -30
...
...
Index: skins/blitz/footer.txt
===================================================================
--- skins/blitz/footer.txt
+++ skins/blitz/footer.txt
Index: skins/blitz/header.txt
Index: f-apps/f-vdiff.c
==================================================================
--- f-apps/f-vdiff.c
+++ f-apps/f-vdiff.c
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
36 36 fsl_buffer fname;
37 37 fsl_buffer fcontent1;
38 38 fsl_buffer fcontent2;
===================================================================
--- skins/blitz/header.txt
+++ skins/blitz/header.txt
Index: skins/blitz/ticket.txt
39 39 fsl_buffer fhash;
40 40 fsl_list globs;
41 + fsl_diff_opt diffOpt;
42 + fsl_diff_builder * diffBuilder;
41 43 } VDiffApp = {
===================================================================
--- skins/blitz/ticket.txt
+++ skins/blitz/ticket.txt
42 44 NULL/*glob*/,
43 45 5/*contextLines*/,
44 46 0/*sbsWidth*/,
...
45 47 0/*diffFlags*/,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 48 0/*brief*/,
47 49 fsl_buffer_empty_m/*fname*/,
48 50 fsl_buffer_empty_m/*fcontent1*/,
49 51 fsl_buffer_empty_m/*fcontent2*/,
50 52 fsl_buffer_empty_m/*fhash*/,
51 -fsl_list_empty_m/*globs*/
53 +fsl_list_empty_m/*globs*/,
54 +fsl_diff_opt_empty_m/*diffOpt*/,
55 +NULL/*diffBuilder*/
52 56 };
53 57
54 58 static int f_vdiff_hash(fsl_card_F const * const fc,
```
Note the line numbers above and below the `~~~~~` separator. fossil(1) doesn't do that because it handles the chunk separator at a higher level of the API, whereas libf moves that into the diff builder interface. That change requires that libf forego a step which tries to merge chunks of a diff together if the distance between them is smaller than the number of context lines. That change in libf is apparently the root cause of this. It's purely cosmetic, but it's annoying.
Wha?
TODO: figure out how to adapt libf to (A) not require that the higher-level API know such details about the diff builder but (B) still be able to apply that "cosmetic optimization."
# Crosslinking...
2021-04-12: The issue described below may have been resolved by the bug fixed in [](2791e665cca2eae2).
Running `f-parseparty -t c --crosslink` generates the expected number of mlink/plink entries but *sometimes* leaves (as it were) some commit other than the tip marked as a leaf, which causes `fossil update` to warn about having multiple leaves. We can get around this by running `fsl_repo_leaves_rebuild()` after it crosslinks everything, but that would simply hide the bug (if it *is* a bug - see below), which would presumably appear again at some point after a single checkin gets processed.
|