Объединение изменений кода без реального контроля версий

StackOverflow https://stackoverflow.com/questions/202144

  •  03-07-2019
  •  | 
  •  

Вопрос

У нас есть несколько разработчиков, работающих над одним и тем же решением VS2005, но наш контроль версий очень плох.(Наша компания использует Harvest, которому мы выражаем вотум недоверия).

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

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

Это было полезно?

Решение

Относитесь к общему ресурсу так, как если бы это была ваша система управления версиями.Сделайте общий ресурс доступным только для чтения, что вынудит разработчиков получать локальные копии для внесения изменений.Затем у вас есть несколько стабильная версия для сравнения.Это помогло бы облегчить выполнение "слияний"."Проверка" кода должна была бы состоять из какой-то стратегии резервного копирования файла (возможно, создание копии файла с меткой времени и именем пользователя как части нового имени файла) и замена оригинала новой версией.

При этом выполнение такого рода действий без реальной надежной системы управления версиями будет сложным и подверженным ошибкам.

Другие советы

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

Другой возможностью было бы Вне всякого сравнения со Скутером.Он обладает двусторонним и трехсторонним объединением и отличной функциональностью разделения файлов и каталогов.Если вы хотите узнать об этом немного больше, послушайте подкаст delphi Автор: Джим Маккейт.

Но, как и большинство других, я бы рекомендовал либо использовать Git, либо изучать Harvest.Если система управления версиями позволяет изменять свое приложение diff, Beyond Compare станет отличной заменой.

Получите git и установите его локально на компьютер каждого разработчика.Затем настройте репозитории на репликацию.

Есть две различные проблемы:контроль версий и слияние.Нет абсолютно никаких оправданий для ТОГО, чтобы НЕ использовать систему контроля версий.Если компания определилась с решением (по какой-либо причине), то используйте его.То, что вам это не нравится или вы "не уверены" в этом, не является уважительной причиной для отказа от его использования.А использовать общий диск для имитации системы управления исходным кодом - это просто безумие.

Слияние - это вторая проблема.Вам просто нужен инструмент для разделения / слияния.Выбери что-нибудь одно.Как ты так долго обходился без него?!

Араксис - великий человек.Стоит несколько долларов.Ребята из SourceGear уже некоторое время свободно распространяют свой инструмент для разделения / слияния (тот, что поставляется с Vault).Это также солидный соперник.Это те два, которыми я пользовался и которые, как я знаю, все еще есть на рынке.Есть и другие, о которых некоторые уже упоминали.

Объединение всего вручную не является разумным решением.Сочетая это с нет использование венчурного капитала - это верный путь к катастрофе.

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

Существует стандартный инструмент командной строки unix под названием merge, который довольно разумно объединяет два набора изменений в файле.Синтаксис таков:

merge mine older yours

Где "мой" - это файл с вашими изменениями, "более старый" - это исходный файл, а "ваш" содержит чужие изменения.

Однако не уверен, что у вас есть коробка UNIX (или Mac OS X), чтобы сделать это.

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

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

Отключение общего диска - не очень хорошая идея, и я получаю вотум "недоверия".

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top