Unclear `nix copy` progress line

I ran nix copy --to ssh://<host> <path> and I got the following progress line (snapshot after several minutes of running):

[8/198/789 copied (745.7/4080.7 MiB)] copying path '/nix/store/11jrlrjdq0bhx0kqmb6810zgyf12jcn8-attoparsec-0.13.2.2-doc' to 'ssh://<host>'

Problem #1

8/198/789 is not really a clear format. The only related info I found in the manual is:

It is much less verbose. By default, it displays a single-line progress indicator that shows how many packages are left to be built or downloaded,

which doesn’t really clarify anything

Problem #2

The value for total size of closure (4080.7 MiB in above output) increases as the upload proceeds (at first it showed a value of ~1GiB for several minutes).
In it unclear to me why this would be the case when nix path-info -S <path> will instantaneously return the total size.

3 Likes

For problem #1, the format is supposed to be number of copied derivations that are:

current/finished/total

So at the beginning you see:

0/0/N

in the middle you see:

X/Y/N

and at the end you see:

0/N/N

Where N is the total number to copy, X is the number currently being copied, and Y is the number that have been copied.

2 Likes

@matthewbauer Thanks for the clarification!

I guess it would be more intuitive if it displayed something along the lines of:

[[completed]/[total] (745.7/4080.7 MiB)] copying path '/nix/store/11jrlrjdq....'
- 1. package being transmitted [10%-             ]
- 2. package being transmitted [30%---           ]
- 3. package being transmitted [87%---------     ]

but maybe there was a reason why it was limited to a single line.