Total Commander 8.01 32x (Windows XP).
Нарыл несколько багов и недо-фитч:
1) в режиме FXP, MDTM не юзается никогда (даже когда оба сервера поддерживают MLSD);
2) без MLSD (при использовании LIST), MDTM также недоступен при обычной закачке (хотя доступен при синхронизации--МАРАЗМ!);
3) ручное указание разности временных зон сервера и клиента, тоже учитывается только при синхронизации (а должно учитываться всегда);
4) самое страшное, что при upload-синхронизации, как я понял, нет возможности категорически запретить изменять время локального файла (выполнять обратную синхронизацию времени)!
Или это все-таки как-то отключается?
Синхронизация с FTP: как уберечь дату локальных файлов?
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Синхронизация с FTP: как уберечь дату локальных файлов?
Последний раз редактировалось Oxy Вт сен 24, 2013 08:57, всего редактировалось 2 раза.
Oxy
Замечание за нарушение правил форума. Про то, для чего предназначен подфорум "Секреты и советы", говорилось многократно.
Информация об используемых версиях TС и ОС для подобных сообщений обязательна. До её получения разбирать конкретику просто не имеет смысла.
Багом принято называть то, что работает не так, как следует из документации программы, а не то, чего в ней не хватает с точки зрения конкретного пользователя.
P.S. Слово "фича" пишется по-русски без буквы "т".
Тема перенесена.
Замечание за нарушение правил форума. Про то, для чего предназначен подфорум "Секреты и советы", говорилось многократно.
Информация об используемых версиях TС и ОС для подобных сообщений обязательна. До её получения разбирать конкретику просто не имеет смысла.
Багом принято называть то, что работает не так, как следует из документации программы, а не то, чего в ней не хватает с точки зрения конкретного пользователя.
P.S. Слово "фича" пишется по-русски без буквы "т".
Тема перенесена.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Avada
Прошу прощения, таки запостил не туда
Версию указал, хотя такое поведение характерно для всех (32-х битных) версий, где есть эти фичи.
Касательно баг-не баг--формально Вы тоже правы: прямых заявлений о том, что это должно работать, в документации я не встречал. Так что не баг, но очень грубая недоработка.
Но я, собствено, хотел выяснить: возможно ли как-то запретить изменять дату локальных файлов при аплоаде? Если нет, то хотелось бы узнать, начиная с какой версии появилась эта, ИМХО, глупая фича--обратная синхронизация времени файла?
Прошу прощения, таки запостил не туда
Версию указал, хотя такое поведение характерно для всех (32-х битных) версий, где есть эти фичи.
Касательно баг-не баг--формально Вы тоже правы: прямых заявлений о том, что это должно работать, в документации я не встречал. Так что не баг, но очень грубая недоработка.
Но я, собствено, хотел выяснить: возможно ли как-то запретить изменять дату локальных файлов при аплоаде? Если нет, то хотелось бы узнать, начиная с какой версии появилась эта, ИМХО, глупая фича--обратная синхронизация времени файла?
Oxy
Не являюсь специалистом по FTP, но по времени появления ответить могу. Сама синхронизация с FTP появилась с версии 4.02 (1999 год), и сразу же с изменением даты/времени локальных файлов.
Предлагаю сравнить соответствующие фрагменты справки до и после версии 7.55.
Предыдущий подраздел, где объясняется причина такого поведения, предлагаю прочитать самостоятельно. А ещё лучше — весь этот раздел справки полностью. Там между старыми и новыми версиями ещё кое-какая разница есть.
Про ключ MDTM можно в справке посмотреть. Дополнительно в версии 8.50 добавлены значения у ключа SpecialFlags:
Не являюсь специалистом по FTP, но по времени появления ответить могу. Сама синхронизация с FTP появилась с версии 4.02 (1999 год), и сразу же с изменением даты/времени локальных файлов.
Предлагаю сравнить соответствующие фрагменты справки до и после версии 7.55.
Справка прежних версий писал(а):После успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла.
Кроме того, в справке с версии 5.0 (2002 год) в этом подразделе есть приписка:Справка новых версий писал(а):Если сервер не поддерживает ни одной из команд MDTM, MFMT, SITE UTIME, то после успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла.
(Никакое оно давно уже не новое, так что тут в справке надо убрать это слово. И Гислер не заметил, и мы тоже. Исправим.)Новое: Total Commander НЕ изменяет дату/время локального файла, если отмечена опция "игнорировать дату".
Предыдущий подраздел, где объясняется причина такого поведения, предлагаю прочитать самостоятельно. А ещё лучше — весь этот раздел справки полностью. Там между старыми и новыми версиями ещё кое-какая разница есть.
Про ключ MDTM можно в справке посмотреть. Дополнительно в версии 8.50 добавлены значения у ключа SpecialFlags:
4096: Использовать команду MDTM для указания удалённой метки даты/времени.
8192: Использовать команду MFMT.
12288: Использовать SITE UTIME (сумма 4096 и 8192).
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Это не совсем так. Если используется LIST (MLSD не поддерживается сервером или отключен), обратная синхронизация даты будет выполнена в любом случае (даже после успешного вызова MDTM), что приведет к обнулению секунд или всего времени исходного файла.Если сервер не поддерживает ни одной из команд MDTM, MFMT, SITE UTIME, то после успешной пересылки функция синхронизации устанавливает метку даты/времени локального файла по дате/времени удалённого файла.