Гибридная версия системы контроля и синхронизации? - PullRequest
0 голосов
/ 29 января 2012

Кто-нибудь знает о гибридной системе управления версиями и синхронизации?

В настоящее время я счастливый пользователь mercurial, но мои проекты обычно содержат смесь файлов.

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

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

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

Чтобы уточнить - я знаю о расширении для Mercurial, таких как bfiles и bigfiles , которые удобны для моего примера изображения, но мне просто интересно, если кто-нибудь там знает о альтернативные способы справиться с этим. Мне просто нужна единственная система, которую я могу сказать «контроль версий всех файлов, кроме тех, которые должны быть синхронизированы, но не имеют истории».

ура!

РЕДАКТИРОВАТЬ : я мог бы сделать что-то вроде добавления hg marksync <filename>, который добавил <filename> в список файлов для синхронизации, и затем добавления хука к hg push / hg pull, который бы (скажем) запустить rsync (или любой другой инструмент синхронизации) в фоновом режиме, но мне было интересно, было ли менее хакерское решение (я думаю, что bfiles / bigfiles все равно что-то делают в этом направлении).

Ответы [ 2 ]

1 голос
/ 29 января 2012

Контроль версий Система (любая) не заботится о синхронизации

  • не версионные данные
  • помимо стандартных путей

Если вы хотите синхронизировать любые файлы - используйте , специально предназначенные для этой задачи инструменты : f.e. Rsync

0 голосов
/ 08 февраля 2012

Этот код может создать целую кучу выходных изображений, которые я хотел бы синхронизировать

Это ДАННЫЕ или часть вашего КОДА?

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

Хорошим решением для данных будет синхронизация ИЛИ их генерация. Таким образом, вы можете добавить шаг после развертывания на сервере: GenerateImages ().

edit: В дополнение к комментарию, созданному автором темы:

Если изображения являются данными, и вам нужно обрабатывать их в другой системе, не думайте об управлении версиями для вашего кода. Это не связано. Шаги, которые будут иметь смысл для меня, в порядке обработки:

Начните с обновления кода вашего изображения, проверьте его в версии. Затем разверните (да, это развертывание) обновленный код на компьютер cruncher. Теперь код готов.

Тогда у вас есть задачи, которые должен решать обработчик чисел. Как обработка изображений. Так что начните эту обработку либо с самого cruncher (возможно, там будет какая-то очередь), либо с центрального диспетчера.

Тогда у вас есть результаты локально на cruncher. Теперь что-то должно произойти с этими данными, так что это тоже часть вашего программного обеспечения. Решите, хотите ли вы, чтобы дробилка отправляла их в какое-то центральное хранилище, на вашу рабочую станцию ​​или в другое место. Пусть программное обеспечение справится с этим. Это самая сложная часть, когда я читаю ваш вопрос. Возможны многие решения - от просто FTP / сетевых передач до конкретных решений для хранения. Готов помочь, но мне нужно больше информации о реальных проблемах, суммах, размерах и т. Д. По этим частям.

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

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