Re: mc Digest, Vol 146, Issue 10

2016-10-15 Thread Rikishi 42

On 15/10/16 10:57, Mike wrote:


Regarding these 4 issues, In My Humble Opinion:


#1: - copies are made in the disk order, instead of taking the sort

order that is chosen for the display

I have wondered why this is the case myself. I can see the odd situation
I would want to preserve disk order, but certainly not the majority of
cases. At minimum it should be option. I have some recollection of a
discussion about this issue on this very list back some years. It
involves creating a temporary file list (and stat()ing a massive
directory tree possibly) and parsing it according to arbitrary criteria.
In this case, panel sort order. The list parsing can have some advanced
options. Or each directory can be parsed as it is encountered (spread
the delays out over entire operation). Alphabetical sort can be done
with dirent, but any other criteria involves stat() or even more slow
disk access stuff.
Note here that the order in which files are copied still does not mean
much about the disk order they end up in on the destination drive. Maybe
some filesystems it does, but not mine. I can copy files one by one and
they still end up in whatever order the underlying hardware wants them in.


Personally, I don't care about the disk order, different users might see 
the in different sorting orders.
But I find it usefull to have some idea about what has allready been 
done when arriving a a certain directory.




#2: - when some of the files are allready on destination, and one

choses to skip, their number and volume should be substracted from the
total count/size. In that way the estimates mean something.

This means you encountered one of many error conditions. And handling
this involves re-parsing the remaining file list according to numerous
arbitrary criteria, and can be very time consuming. Just creating the
file list can be very time consuming. The test results in some cases are
from trying to write the file. This is not practical on large listings
and many network connections. Running estimates on lengthy file
operations are nearly impossible in many situations, especially when
speed is important, and can easily exceed the actual copy itself.


Sorry, but we must be referring to different situations.
As mc is now, when it encounters an allready existing destination file 
(and the chosen option is in ex: skip when same size), it will skip the 
file when it reaches it, without the need for a pre-existing file list.
The only need I see is to update the total files/volume counters. No 
additional directory access required.




The ETA is exactly that: some estmation, and your mileage may vary, as
they say. Basically it means: Should I sit here, or can I make tea? This
should be in FAQ.

I agree, but there are no heavy resources required.


Both of these can slow the copy/move operation considerably. Fastest
method consistently is disk-order/no-scan-files.


???



#4. - the move function doesn't give an estimate during it's work


My move works fine. Must be your version. What is it and how did it find
it's way into your distro?


I get a single bar progress, until the two bar copy progress

My mc is 4.8.1 on Mint 13. I do regular updates, but never got the 
recent releases.



And frankly, I'm getting old and don't know if I'd be OK compiling it.
:-)




--
Werner
mailto:skunkwo...@rikishi42.net
I don't suffer from insanity. I enjoy every moment of it.
___
mc mailing list
https://mail.gnome.org/mailman/listinfo/mc


Re: mc Digest, Vol 146, Issue 10

2016-10-15 Thread Mike
Thank you for the feedback. I am familiar with being annoyed when your 
distro of choice has a crap version of something and doesn't seem to 
care. Use the source, Luke.


I wonder what Peter Norton's file manager of choice these days is.

I've never met Peter Norton. I think I installed some Norton software in 
the 90s. I don't recall much about it or him so I have nothing to 
compare. I think there is a nc clone/wannabee out there somewhere, but 
mc is only similar by accident - the 2 panel thing. Apparently it is a 
"visual shell for *nix environments", not a "file manager", although I 
categorize it as one, like most users I think. midnight commander has 
its origins from the 90s too. It sucked far worse back then.


The one thing I like above all with this project over similar ones, is 
the pure hackablility of mc. It's pretty easy to familiarize yourself 
with the code and make it do whatever you think it should within a 
fairly short period of time. There are numerous examples of some pretty 
impressive "hacks". mc2 and mc-tabs come to mind immediately.


Regarding these 4 issues, In My Humble Opinion:

>> #1: - copies are made in the disk order, instead of taking the sort 
order that is chosen for the display


I have wondered why this is the case myself. I can see the odd situation 
I would want to preserve disk order, but certainly not the majority of 
cases. At minimum it should be option. I have some recollection of a 
discussion about this issue on this very list back some years. It 
involves creating a temporary file list (and stat()ing a massive 
directory tree possibly) and parsing it according to arbitrary criteria. 
In this case, panel sort order. The list parsing can have some advanced 
options. Or each directory can be parsed as it is encountered (spread 
the delays out over entire operation). Alphabetical sort can be done 
with dirent, but any other criteria involves stat() or even more slow 
disk access stuff.


Note here that the order in which files are copied still does not mean 
much about the disk order they end up in on the destination drive. Maybe 
some filesystems it does, but not mine. I can copy files one by one and 
they still end up in whatever order the underlying hardware wants them in.


>> #2: - when some of the files are allready on destination, and one 
choses to skip, their number and volume should be substracted from the 
total count/size. In that way the estimates mean something.


This means you encountered one of many error conditions. And handling 
this involves re-parsing the remaining file list according to numerous 
arbitrary criteria, and can be very time consuming. Just creating the 
file list can be very time consuming. The test results in some cases are 
from trying to write the file. This is not practical on large listings 
and many network connections. Running estimates on lengthy file 
operations are nearly impossible in many situations, especially when 
speed is important, and can easily exceed the actual copy itself.


Maybe option reparse_eta_on_error[=No]? Either that or have some grotty 
list of arbitrary file parse criteria where we do various things 
depending on error condition, file sizes, number, type of connection, 
etc. in order to maintain the running tally. And if we're going to go 
there, then create a big dialog or scripting capability where you can 
specify stuff like "if (!file.error || file.dest.exists && 
file.dest.size > 3k && last.file.name == "foobar" && file.src.mtime.secs 
-gt `date +%s 2>/dev/null` ) then cp -vf %f >> file.log endif".


Personally, I use it as a gauge of bytes transferred and not much more.

The ETA is exactly that: some estmation, and your mileage may vary, as 
they say. Basically it means: Should I sit here, or can I make tea? This 
should be in FAQ.


Both of these can slow the copy/move operation considerably. Fastest 
method consistently is disk-order/no-scan-files.


Both could be enabled by UNchecking fast_copy_mode and enabling a bunch 
of arbitrary widgets and sort methods. Perhaps this is the answer, at 
least enable panel-sort-mode because it's such a common request.


Option #1 and #2 work well together on fairly small numbers of files, 
but you certainly want them turned off for the transfer of large numbers 
of files. This could be option also, 
enable-fast-copy-when-file-qty-exceeds... n ?


>> #3: - the move function still copies all, before removing the files, 
meaning that we gain nothing in volume until all has been copied


Again, this can really slow things down. Imagine 250,000 small files. 
Without option, you get copy of all data, then single long delete 
process to finish. With option, last data transfer is not made until the 
2nd to last operation. Removal is less important than getting the data 
to destination.This could be move dialog option remove-source-on-fly, 
default = OFF. Good for large files/small numbers.


>> #4. - the move function doesn't give an estimate during it's 

Re: mc Digest, Vol 146, Issue 10

2016-10-15 Thread Yury V. Zaytsev

On Fri, 14 Oct 2016, Rikishi 42 wrote:


- copies are made in the disk order, instead of taking the sort order
  that is chosen for the display


This could be an interesting feature to implement: if I remember 
correctly, Volkov Commander did that, and on top, it removed the selection 
dynamically from the files already copied, so you could literally see how 
your files float from one directory to another.



- when some of the files are allready on destination, and one choses to
  skip, their number and volume should be substracted from the total
  count/size. In that way the estimates mean something.


I'm not sure why do you think it would mean something, I believe exactly 
the opposite.



- the move function still copies all, before removing the files, meaning
  that we gain nothing in volume until all has been copied
- the move function doesn't give an estimate during it's work


This is a safety feature introduced by design to make sure that moves are 
atomic in a sense that nothing is removed before the copy part succeeded.


I think some of these bugs might have been removed from the latest mc, 
but I can't find a recent update for Linux Mint. How do you expect 
feedback from people, if most of them can't get recent releases?


There are unofficial Mint-compatible binaries provided on the Binaries 
page, you just have to figure which Ubuntu / Debian stream corresponds to 
your Mint release.


--
Sincerely yours,
Yury V. Zaytsev
___
mc mailing list
https://mail.gnome.org/mailman/listinfo/mc