Решение для управления версиями / резервного копирования - PullRequest
1 голос
/ 06 марта 2009

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

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

Требование следующее:

  1. Каждый раз, когда я сохраняю файл из приложения, он должен создавать версию.
  2. Я должен быть в состоянии добавить комментарии, скажем, основные изменения.
  3. В любое время должна быть только одна текущая версия.
  4. Я должен иметь возможность просматривать предыдущие версии без «восстановления»
  5. Я должен иметь возможность перемещаться между версиями.
  6. Было бы полезно использовать функцию календаря, показывающую различные версии файла, если бы я мог найти ее для определенного файла из контекстного меню Проводника

Мне не нужно сравнивать разные версии или что-то в этом роде.

Только для Windows. Я посмотрел на NTI Shadow , и он немного приблизился к тому, что я искал.

Существуют ли платные / бесплатные / открытые решения для вышеуказанных требований?

Ответы [ 5 ]

1 голос
/ 06 марта 2009

Практически любая система контроля версий, о которой я знаю, поддерживает бинарные загрузки. Subversion (короче SVN) является бесплатным и довольно популярным. Если вы также загрузите TortoiseSVN , вы можете справиться со всем из проводника.

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

PS по какой-то причине я не могу подключиться к сайту SVN прямо сейчас. Это может быть в данный момент. Это все еще отличный продукт :)

0 голосов
/ 07 марта 2009

Для того чтобы это было прозрачно для приложений (т. Е. Не требовалось, чтобы приложение реализовывало другой API для сохранения / загрузки файлов для доступа к этим функциям резервного копирования), вы должны сделать это в операционной системе на слой ее файловой системы.

Файловая система ZFS может быть упакована для обеспечения описанных вами возможностей пользовательского интерфейса, но сомнительно, что эта файловая система когда-нибудь достигнет Windows (по крайней мере, напрямую).

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

Снимок NetApp предлагает возможности, которые можно использовать для этого на уровне сетевого хранилища. Он реализует CIFS, поэтому определенно доступен на окнах. Откройте свой кошелек.

Если вы считаете, что это чрезвычайно важная функция, вы можете рассмотреть другие ОС, кроме Windows; Поддержка файловых систем и файловых систем в операционных системах, отличных от Windows, более разнообразна.

0 голосов
/ 06 марта 2009

Я думаю, вы ищете преимущества файловой системы управления версиями, которая делает неизменные снимки файлов при каждой записи. Вы можете встроить это в DVCS, если что-то настроит наблюдение за файлами, содержащимися в версионном каталоге (фиксация при каждом изменении файла), но это станет уродливым, быстрым.

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

Если, конечно, ядовитые пересмотры не будут проблемой для вас.

0 голосов
/ 06 марта 2009

[не фактический ответ, просто примечание о возможностях резервного копирования DVCS]

Я бы не советовал использовать DVCS (распределенную систему контроля версий), такую ​​как Git или аналогичную, для стратегии резервного копирования.

Как указано в Мифы DVCS

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

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

В любом случае, вероятность того, что какое-либо или все ваши резервные копии станут внезапно недоступными, на самом деле не имеет значения.
Суть в том, что использование независимых клонов в качестве канонических резервных копий (в отличие от временных временных пробелов) является неоптимальной стратегией.

  • Безопасность , например, следует рассмотреть.
    Если вы используете правила авторизации для контроля доступа к определенным частям вашего хранилища, канонизация произвольного клона хранилища фактически делает эти правила бесполезными.
    Хотя это редко вызывает практическую озабоченность в контролируемой корпоративной среде, тем не менее это возможно.
  • (мой вывод :) Полное резервное копирование данных на самом деле невозможно с DVCS, поскольку это подразумевает, что все репозитории помещают свои изменения в "центральный" «хранилище, которое не является основным сценарием использования в DVCS (тогда как в классическом VCS все зафиксированное хранится в одном месте)

Таким образом, основной выигрыш DVCS для резервного копирования заключается в том, что вам не нужно вкладывать средства в «горячее» резервное копирование .
Когда сервер неизбежно выйдет из строя, DVCS выиграет вам время. Много времени. По сути, вы будете работать с полной производительностью (или почти так же), пока вы перестраиваете свой сервер из резервной копии.
Когда наборы изменений, созданные во время простоя сервера, возвращаются на восстановленный сервер, вновь восстановленные правила авторизации будут применены повторно, и вы вернетесь в нужное русло.

Итак, для нас:

  • горячее «резервное копирование» фактически достигается с помощью SRDF (Symmetrix Remote Data Facility), но это коммерческое решение, которое связано с нашей инфраструктурой, поддерживающей LUNs дублирование для достижения репликации данных.
  • добавочное ежедневное резервное копирование достигается для ограниченного набора репозиториев (включая некоторые «центральные» репозитории Git), но в нашем случае, с помощью специального инструмента.
0 голосов
/ 06 марта 2009

Я настоятельно рекомендую использовать Subversion. Я использовал 4 разные системы контроля версий и нашел подрывную работу мощной и простой в использовании.

Для Windows это самый простой для установки сервер: Visual SVN

И Smart SVN - лучший клиент Subversion, который я использовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...