Как полностью потерял ВСЕ свои исходники

 
Когда-то решил такую задачу

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2016.09.08 07:56

Кроссплатформенность становится все актуальнее, поэтому возникла необходимость MQL4 и MQL5 папки объединить в одну, чтобы каждый терминал думал, что работает якобы со своей MQL4/5 папкой.

Как это сделать в режиме portable? 

Там ниже по тексту есть решение этой задачи - mklink.

Было очень удобно. MT4 и MT5 видели одну папку, никаких постоянных копий, слежений за обновлением, синхронизаций и т.д. Одна папка исходников с EX? на все терминалы - MT4/5.

Сегодня решил стереть один ненужный установленный терминал, сделав это через стандартный uninstall.exe. Мне не нужно было ничего в папке этого терминала. Поэтому после отработки процедуры удаления папки не оказалось.

И вот тут я заподозрил, что могло произойти непоправимое. Одна из ссылок на общее хранилище лежала в удаленной папке. И uninstaller видел это хранилище, как обычную папку и просто грохнул ее. Так и вышло.

 

Со случайным удалением многие сталкиваются и полно утилит по восстановлению. Не сомневаясь, что сейчас все восстановлю, стал с ними работать. Все исходники были в состоянии Excellent. Однако, при восстановлении они оказывались заполненными нулевыми байтами. Как потом выяснил, что с SSD при включенном TRIM (включен с Win7+) удаление происходит принудительным затиранием, а не как в HDD.

 

Совсем забыл про резервную копию. Сразу вспомнил недавний пост

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Сервис GitHub теперь поддерживает языки MQL5 и MQL4

Alexey Volchanskiy, 2016.11.14 14:31

Вы шутите или реально не пользуетесь системами контроля версий?? Вы же опытный программист. Тогда вкратце, может и другим пригодится.

Преимущества использования систем контроля версий на примере Хранилища (которое SVN):

  1. Код хранится на сервере в зашифрованном виде, вы застрахованы от краха HDD на локальном компе
  2. Вы можете одним нажатием кнопки в редакторе отправить на сервер изменения в файле или даже папки. Так же одним нажатием можно скачать последнюю редакцию файла/папки
  3. На сервере хранятся все изменения каждого файла, в любой момент можно откатится на предыдущую версию, если что-то перестало работать. Причем хранятся не куча копий, а именно изменения для экономии места.
  4. Код на сервере доступен с любого компа, не надо таскать с собой флешки 

Речь ни о том, надо или не надо пользоваться онлайн-сервисами. Сам я ими пользоваться не готов даже после этого случая.

Написал пост для предупреждения, что mklink+undelete.exe или просто удаление папки, содержащей mklink-ссылку, приводит к удалению всей оригинальной базы.

У меня ничего не осталось. Только те крохи, что выложил в кодобазу. Ну что же, наверное, иногда полезно начать с чистого листа. 

 

всамделешняя


но иногда книга,написанная со второго раза становится лучше. какие-то идеи переосмыслятся,какие-то появятся новые.

 
fxsaber:
Когда-то решил такую задачу

Там ниже по тексту есть решение этой задачи - mklink.

Было очень удобно. MT4 и MT5 видели одну папку, никаких постоянных копий, слежений за обновлением, синхронизаций и т.д. Одна папка исходников с EX? на все терминалы - MT4/5.

Сегодня решил стереть один ненужный установленный терминал, сделав это через стандартный uninstall.exe. Мне не нужно было ничего в папке этого терминала. Поэтому после отработки процедуры удаления папки не оказалось.

И вот тут я заподозрил, что могло произойти непоправимое. Одна из ссылок на общее хранилище лежала в удаленной папке. И uninstaller видел это хранилище, как обычную папку и просто грохнул ее. Так и вышло.

 

Со случайным удалением многие сталкиваются и полно утилит по восстановлению. Не сомневаясь, что сейчас все восстановлю, стал с ними работать. Все исходники были в состоянии Excellent. Однако, при восстановлении они оказывались заполненными нулевыми байтами. Как потом выяснил, что с SSD при включенном TRIM (включен с Win7+) удаление происходит принудительным затиранием, а не как в HDD.

 

Совсем забыл про резервную копию. Сразу вспомнил недавний пост

Речь ни о том, надо или не надо пользоваться онлайн-сервисами. Сам я ими пользоваться не готов даже после этого случая.

Написал пост для предупреждения, что mklink+undelete.exe или просто удаление папки, содержащей mklink-ссылку, приводит к удалению всей оригинальной базы.

У меня ничего не осталось. Только те крохи, что выложил в кодобазу. Ну что же, наверное, иногда полезно начать с чистого листа. 

Мне хватает dropbox.

Тоже делаю symblinks на общие папки. В dropbox можно настроить селективную синхронизацию и не синхронизировать всякий шлак, а только то что реально жалко потерять. Даже удаленные файлы можно восстановить в течение 30 дней, плюс он тоже хранит все сохраняемые версии у себя в облаке, не захламляя комп. Бесплатно досупно 2 гига, можно увеличить бесплатный объем разными способами или за 100$ в год иметь 1ТБ.

 
fxsaber:
Когда-то решил такую задачу

Там ниже по тексту есть решение этой задачи - mklink.

Было очень удобно. MT4 и MT5 видели одну папку, никаких постоянных копий, слежений за обновлением, синхронизаций и т.д. Одна папка исходников с EX? на все терминалы - MT4/5.

Сегодня решил стереть один ненужный установленный терминал, сделав это через стандартный uninstall.exe. Мне не нужно было ничего в папке этого терминала. Поэтому после отработки процедуры удаления папки не оказалось.

И вот тут я заподозрил, что могло произойти непоправимое. Одна из ссылок на общее хранилище лежала в удаленной папке. И uninstaller видел это хранилище, как обычную папку и просто грохнул ее. Так и вышло.

 

Со случайным удалением многие сталкиваются и полно утилит по восстановлению. Не сомневаясь, что сейчас все восстановлю, стал с ними работать. Все исходники были в состоянии Excellent. Однако, при восстановлении они оказывались заполненными нулевыми байтами. Как потом выяснил, что с SSD при включенном TRIM (включен с Win7+) удаление происходит принудительным затиранием, а не как в HDD.

 

Совсем забыл про резервную копию. Сразу вспомнил недавний пост

Речь ни о том, надо или не надо пользоваться онлайн-сервисами. Сам я ими пользоваться не готов даже после этого случая.

Написал пост для предупреждения, что mklink+undelete.exe или просто удаление папки, содержащей mklink-ссылку, приводит к удалению всей оригинальной базы.

У меня ничего не осталось. Только те крохи, что выложил в кодобазу. Ну что же, наверное, иногда полезно начать с чистого листа. 

Известно, что Total Commander неправильно работает с линками как и сама Windows при деинсталяции программ будет удалять содержимое физической папки. Я уже давненько перешёл на бесплатный Multi Commander, который правильно работает с любыми типами линков, создание, удаление.

Если нужно деинсталлировать терминал (не просто удалить, а деинсталировать из системы - иногда бывает необходимо), то сначала удаляю линки Мультиком, а потом делаю деинсталяцию с подтверждением удаления пользовательских данных.

В дополнение скажу, что успешно использую единую папку истории для всех терминалов по линкам, что позволяет реально экономить место на ЖД особенно на серверах VPS где каждый mb на счету, хотя официально MQ не подтверждает поддержку работы терминалов в количестве более одного с одними и теми же файлами истории (в сервис деске говорили, что рассмотрят такую возможность в качестве задекларированной штатной возможности).

Дополнено.

Сам терял все исходники с год назад, понимаю как это может быть болезненно. В качестве меры предосторожности использую сейчас GoodSync (прога платная) для синхронизации на дополнительные ЖД, можно настроить и чистую синхронизацию папок, и бекапы, и сохранение версий файлов.

 
fxsaber:
Когда-то решил такую задачу

Там ниже по тексту есть решение этой задачи - mklink.

Было очень удобно. MT4 и MT5 видели одну папку, никаких постоянных копий, слежений за обновлением, синхронизаций и т.д. Одна папка исходников с EX? на все терминалы - MT4/5.

Сегодня решил стереть один ненужный установленный терминал, сделав это через стандартный uninstall.exe. Мне не нужно было ничего в папке этого терминала. Поэтому после отработки процедуры удаления папки не оказалось.

И вот тут я заподозрил, что могло произойти непоправимое. Одна из ссылок на общее хранилище лежала в удаленной папке. И uninstaller видел это хранилище, как обычную папку и просто грохнул ее. Так и вышло.

 

Со случайным удалением многие сталкиваются и полно утилит по восстановлению. Не сомневаясь, что сейчас все восстановлю, стал с ними работать. Все исходники были в состоянии Excellent. Однако, при восстановлении они оказывались заполненными нулевыми байтами. Как потом выяснил, что с SSD при включенном TRIM (включен с Win7+) удаление происходит принудительным затиранием, а не как в HDD.

 

Совсем забыл про резервную копию. Сразу вспомнил недавний пост

Речь ни о том, надо или не надо пользоваться онлайн-сервисами. Сам я ими пользоваться не готов даже после этого случая.

Написал пост для предупреждения, что mklink+undelete.exe или просто удаление папки, содержащей mklink-ссылку, приводит к удалению всей оригинальной базы.

У меня ничего не осталось. Только те крохи, что выложил в кодобазу. Ну что же, наверное, иногда полезно начать с чистого листа. 

Вы же грамотный программист, но иногда удивляете. Пару дней назад был же спор об SVN(хранище) и GitHub. У меня вот ничего не пропало
 

Спасибо большое за рекомендации и опыт! Меня подвела уверенность, что раз с USB-SSD всегда все восстанавливается без проблем, то с SSD внутри компа все так же. Ан нет, как оказалось.

Линки на Bases-папку и, особенно, на MQL-папку - локальная необходимость. Потому как уже за норму, когда одновременно работает два-три терминала и MT4 и MT5. Пишешь все в одном metaeditor и не заморачиваешься, что все будет везде доступно и актуально, как только нажал F7.

 
Alexey Volchanskiy:
Вы же грамотный программист, но иногда удивляете. Пару дней назад был же спор об SVN(хранище) и GitHub. У меня вот ничего не пропало
Спора не было. Я не программист, а пользователь MQL. Других языков не знаю.
 
Andrey Dik:

Известно, что Total Commander неправильно работает с линками как и сама Windows при деинсталяции программ будет удалять содержимое физической папки. Я уже давненько перешёл на бесплатный Multi Commander, который правильно работает с любыми типами линков, создание, удаление.

Проверил Total Commander (8.0) - правильно удаляет линки. MT5-Uninstaller - нет (удаляет каждый файл во всех подпапках).
 

Читал Ваш пост и сердце уходило в пятки. 

Бывали такие случаи не раз.

Именно поэтому у меня стоит прога GoodSync

и синхронизирует раз в неделю на 2 внешних диска и 1 внутренний. 

 

кстати по SSD - у меня также бывают такие глюки как заполенение 0 байтом.

т.е. сидишь работаешь компилируешь, весь код на экране - сохраняешь все ок, потом бац..... открываешь файл - а там 0 байт.

оказывалось, что при работе какого-то терминала - переполнялся лог и занимал по 32 гига, места не хватало (а на ССД его всегда не хватает, даже 256 гиг) и собственно вся инфа стиралась.  

 

рабочая папка с проектами занимает более 200 гиг, поэтому dropbox и asus storage не катят.  

 

А я сейчас напоролся на следу.щее. Не смог обнаружить в терминале МТ4, который использую для разработки, один свой индикатор. Зато обнаружил папку Папка_терминала\crach, где оказалась копия всех подпапок MQL4. 

У кого-нибудь такая ерунда случалась? У меня в первый раз. 

 
Alexey Volchanskiy:

А я сейчас напоролся на следу.щее. Не смог обнаружить в терминале МТ4, который использую для разработки, один свой индикатор. Зато обнаружил папку Папка_терминала\crach, где оказалась копия всех подпапок MQL4. 

У кого-нибудь такая ерунда случалась? У меня в первый раз. 

Мы таких папок не создаем. Скорее всего вы сами явно/неявно скопировали в этот каталог. Посмотрите дату, пожалуйста.

Креши терминала создаются только в C:\Users\%username%\AppData\Roaming\MetaQuotes\Crashes

Причина обращения: