4

Я работаю над огромным веб-приложением на Java, которое находится под централизованным контролем версий, но исходные файлы используются для создания и запуска реального сервера, который затем копирует все файлы, над которыми я работаю, в случайный временный каталог во время его работы.

Моя проблема в том, что мне нужно либо пересобрать это огромное приложение, чтобы увидеть любые изменения в моих файлах, либо отслеживать все мои изменения и копировать файлы, которые я изменил, обратно в их исходное местоположение, прежде чем возвращать их обратно в систему контроля версий.

У меня вопрос: есть ли сценарий командной строки, который я могу запустить, который будет отслеживать любые изменения в исходной папке и автоматически копировать измененные файлы во временную папку X?

Идея состоит в том, чтобы устранить человеческую причину неудачи при необходимости вручную смягчить проблему двух местоположений.

3 ответа3

6

Я предлагаю FreeFileSync, который, как представляется, имеет возможность создавать сценарий, который будет автоматически синхронизировать две папки каждые несколько секунд. Я не играл с этим лично, но это выглядит многообещающим.

2

Рассматривали ли вы использование RoboCopy? http://ss64.com/nt/robocopy.html

RoboCopy может быть настроен на копирование данных после истечения заданного периода времени и / или ряда изменений в наборах данных.

/MON:n: источник MONitor; запустить снова, когда увидено более n изменений.
/MOT: m: источник Mnitor; запустить снова через м минут. Время, если изменилось.

0

Вы также можете взглянуть на (устаревшие) клиент и сервер DeltaCopy . По сути, это Linux-подобная реализация rsync для Windows, с возможностью написания сценариев (с использованием планировщика Windows, если это необходимо), и ее основное преимущество заключается в том, что только измененные части измененного файла (да, файл!) передаются. Это может сэкономить много трафика на больших проектах. Недостатком, конечно, является то, что он должен создавать и передавать список файлов раньше.

Также есть несколько (маленьких) предостережений:

  • Поскольку это более старое программное обеспечение, возможно, вам придется заменить cygwin1.dll на компьютерах с Windows. (Только если вы синхронизируете файлы между Linux и Windows. Он использует cygwin в качестве базового фреймворка, который в то время неправильно обрабатывал 16-битное преобразование имени в Unicode/UTF-8.)
  • Это не совсем удобно для пользователя, вы должны взглянуть на справочную страницу rsync для Linux, чтобы полностью раскрыть ее потенциал.
  • В Windows для этого требуется «клиент« и »сервер« компьютер ».
  • Если сервер является машиной Linux, вам нужно правильно настроить rsyncd .
  • Отсутствует поддержка теневого копирования томов в Windows (хотя может и не понадобиться).

Ну, у этого также есть преимущества (именно поэтому я все еще использую это ежедневно):

  • Полностью совместим с * NIX rsync и rsyncd. Проверенная, известная и высокоэффективная система синхронизации. Еще.
  • Сохраняет небольшие накладные расходы: только измененные данные (даже внутри файлов!) транспортируется по сети. Так что очень приятно, если вы работаете удаленно или подключаетесь к серверу через медленные соединения.
  • Безотказный, по-видимому. За эти годы у меня было много гигабайт данных, и при «исправлении» целевых файлов не было ни одной ошибки. Поначалу даже если я нашел концепцию немного тревожащей.
  • Я по-прежнему использую DeltyCopy для ежедневного резервного копирования файлов с компьютеров Windows на центральный сервер Linux и сервер Windows 2003. Работает очень хорошо и безопасно, если установлен правильно.

Ну, до вас. Повеселись! (И дайте нам знать о FreeFileSync!)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .