Мы являемся консультантом по программному обеспечению с множеством проектов для разных клиентов. Мы традиционно используем Subversion, но в настоящее время рассматриваем возможность перехода на Git.
Значительная часть документов, которые мы производим, передается нашим клиентам (требования, глобальные проекты, спецификации тестирования и т. Д.), И мы используем MS Office для их производства. В Subversion мы могли использовать функцию «Блокировка», чтобы гарантировать, что никто не редактировал один и тот же документ одновременно. В Git вы не можете этого сделать, поскольку по своей распределенной природе git не имеет блокировок.
Замки действительно немного больше, чем механизм связи, но они очень эффективны.
В настоящее время наш код и документы, ориентированные на клиента, обычно находятся в разных подпапках в другом хранилище SVN. Что бы вы порекомендовали делать при переходе на git? Я вижу множество вариантов:
Мы перемещаем репозитории SVN в Git 1-на-1. Вместо того, чтобы использовать блокировки для файлов Office, мы делаем то, что предлагают люди из git, и каким-то образом пытаемся изменить наш рабочий процесс, чтобы исправить это. Это может работать в ветке над любым редактированием документа и объединять его с проверкой. Этот подход распространяется, например, на листы Excel, которые содержат информацию об управлении проектом; они легко редактируются членами команды (и мы поощряем это), но не подлежат никакому официальному процессу проверки
Мы используем git для кода и svn для документации и управления проектами. Это имеет недостаток, заключающийся в том, что некоторые дополнительные документы, предназначенные для разработки, не будут находиться «рядом» с указанным кодом, что увеличивает вероятность того, что люди забудут обновить их. Кроме того, каждый должен использовать и понимать два набора инструментов. Тем не менее, возможно, это отличная возможность перейти к текстовым инструментам документов (латекс, уценка, HTML и т. Д.) Для сторонних дизайнерских документов.
Как 1, но мы взломали
git lock
команду, которая делает то, что делает для нас svn lock (соответствующим образом переключите флаг только для чтения и синхронизируйте с сервером каким-либо образом).
Я не покупаю аргумент, что блокировки не работают в DVCS, потому что система должна даже работать, когда вы полностью отключены. Svn-блокировки также могут быть отменены; это механизм общения . Без какого-либо сетевого подключения ваш компьютер не будет много общаться.
Мы не можем быть единственным магазином, который очень доволен тем, как svn lock
вписывается в наш рабочий процесс, верно?
Есть идеи или советы?
Я нашел /programming/119444/locking-binary-files-using-git-version-control-system, но обсуждение довольно техническое; Я ищу способы решить или избежать практической проблемы двух членов команды, редактирующих один и тот же двоичный файл одновременно.