summaryrefslogtreecommitdiff
path: root/doc/bugs/fsck_output.mdwn
blob: 3ded1b409eb0f88918091c83e2da850155b27636 (plain)
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
When you check several files and the fsck fails, you get confusing output:

<pre>
O fsck test1 (checksum...) 
E  Only 1 of 2 trustworthy copies of test1 exist.
E  Back it up with git-annex copy.
O
O failed
O fsck test2 (checksum...) 
E  Only 1 of 2 trustworthy copies of test2 exist.
E  Back it up with git-annex copy.
O 
O failed
</pre>

The newline is in the wrong place and confuses the user. It should be printed _after_ "failed".

> This is a consequence of part of the output being printed to stderr, and
> part to stdout. I've marked the lines above with E and O.
> 
> Normally a "failed" is preceeded by a message output to stdout desribing
> the problem; such a message will not be "\n" terminated, so a newline
> is always displayed before "failed". In this case, since the message
> is sent to stderr, it is newline terminated.
> 
> Fixing this properly would involve storing state, or rethinking 
> when git-annex displays newlines (and I rather like its behavior
> otherwise).
> 
> A related problem occurs if an error message is unexpetedly printed.
> Dummying up an example:
> 
> O get test1 (copying from foo...) E git-annex: failed to run ssh
> failed
> 
> --[[Joey]]