Отслеживание изменений в дереве каталогов с течением времени

Кто-нибудь знает о приложении или системе для отслеживания изменений (добавленных / удаленных файлов, различий в текстовых файлах) в каталог без контроля источника с течением времени? Что-то, что позволит тебе

  1. Сделайте снимок определенного дерева каталогов в момент A

  2. Вернитесь в период времени B и посмотрите, что изменилось

  3. Вернитесь в период C и посмотрите, что изменилось с периода A и что изменилось с периода B

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

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

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

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


person Alan Storm    schedule 02.10.2008    source источник


Ответы (7)


Напишите запланированную задачу по сценарию, которая копирует дерево каталогов в другое место, возможно, на другой компьютер, который является частью репозитория с управляемой версией. Затем запланированная задача автоматически зафиксирует изменения, используя выбранную вами систему контроля версий (Mercurial должен хорошо работать с этой системой, поскольку hg commit -A -m "automated snapshot" быстро сделает то, что вам нужно, без каких-либо интерактивных подсказок).

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

person Dickon Reed    schedule 02.10.2008

Ваши варианты действительно:

  1. Полный контроль версий
  2. "Облегченная" система контроля версий в виде чего-то вроде FileHamster.
  3. Возможность дифференциального резервного копирования / восстановления
  4. Полное резервное копирование / восстановление и инструмент сравнения
  5. (Я думаю) Журналирующая файловая система.

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

person workmad3    schedule 02.10.2008

Я бы хотел что-то, что на вид, вкус и запах было бы как молоко. Но это не должно быть молоко.

Другими словами: вы описываете vcs. Если вы сообщите нам, почему нельзя использовать vcs, вам будет проще ответить.

Единственное, о чем я могу думать, это Apple Time Machine, которая (опять же) в основном vcs для масс.

person Matthias Winkelmann    schedule 02.10.2008
comment
У некоторых людей непереносимость лактозы;) - person Alan Storm; 02.10.2008
comment
на самом деле это не такие уж и глупые вопросы; младенцам, страдающим аллергией на коровье молоко, часто вместо него дают козье молоко;) - person Sam Hasler; 02.10.2008

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

person Sam Hasler    schedule 02.10.2008
comment
Я бы хотел существующее решение, которое устраняло бы ошибки и крайние случаи, возникающие при развертывании моего собственного решения. Я лучше потрачу 2 часа на настройку, чем 2 дня на создание подходящего решения. - person Alan Storm; 02.10.2008

Вы описываете систему контроля версий ?! Поэтому я не уверен, что понимаю, почему вы не хотите его устанавливать. Вы можете очень легко реализовать локальную версию SVN / CVS и взаимодействовать с ней через свои приложения (например, добавлять новые файлы, удалять старые). Это можно делать на периодической основе, используя запланированное задание или что-то в этом роде.

Я не слышал ни о чем другом, что можно было бы использовать "просто". Наверное, потому что это уже сделано;) Так зачем же колесо воссоздавать ...

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

person user2013    schedule 02.10.2008

Вам нужна либо система управления исходным кодом, либо система управления документами.

Почему управление исходным кодом не подходит? SVN прост в использовании для непрограммистов благодаря интеграции Tortise SVN с окнами ».

Похоже, у вас не так много вариантов для сервера ...

Как насчет этого? 1. Настройте репозиторий SVN на своем компьютере. 2. Ночное копирование из каталога на свой компьютер и фиксацию изменений.

Или ... Используйте команду Windows "Поиск" для файлов, измененных за последние n дней. Создавайте отчет вручную каждую неделю. Или напишите автоматизацию для этого отчета.

person Ken    schedule 02.10.2008
comment
В основном политика. Люди, ответственные за добавление и редактирование файлов в этих каталогах, не будут убеждены в достоинствах системы контроля версий. - person Alan Storm; 02.10.2008

Это решение:

используйте локальный репозиторий Subversion и используйте запланированную задачу, которая будет фиксировать ваши файлы на регулярной основе (один раз в час?)

простой пример:

ваш каталог, который вы хотите отслеживать: c: \ tracking_dir

каталог, в котором хранятся данные о различиях и другая историческая информация: c: \ repository

  1. svnadmin создать c: \ репозиторий
  2. svn co file: /// c: / репозиторий c: \ tracking_dir \
  3. настроить запланированную задачу, которая должна запускать следующие команды:

    svn add c: \ tracking_dir *. *
    svn ci c: \ tracking_dir *. * -m "автоматическая фиксация через запланированную задачу"

Таким образом, у вас есть работающий пример и вы можете получить доступ к истории через любой интерфейс Subversion.

person Peter Parker    schedule 09.10.2008