2015-12-16 9 views
2

У нас есть проект SSAS, в котором мы разрабатываем несколько кубов. Мы обнаружили, что, когда два человека работают на кубах в то же время, мы попали эту проблему конфликта:Устранение конфликтов git с проектами куба SSAS

<ProjectItem> 
<<<<<<< HEAD 
     <Name>MyCube.cube</Name> 
     <FullPath>MyCube.cube</FullPath> 
     <Dependencies> 
     <ProjectItem> 
      <Name>MyCube.partitions</Name> 
      <FullPath>MyCube.partitions</FullPath> 
======= 
     <Name>TheirCube.cube</Name> 
     <FullPath>TheirCube.cube</FullPath> 
     <Dependencies> 
     <ProjectItem> 
      <Name>TheirCube.partitions</Name> 
      <FullPath>TheirCube.partitions</FullPath> 
>>>>>>> d58147eef253310de9599cfe490eb0cede21c4e9 
     </ProjectItem> 
     </Dependencies> 
    </ProjectItem> 

Один пользователь слил свою ветку обратно в разработчика, и в их проекте третьего <ProjectItem> является TheirCube. Я заканчиваю свой куб и собираюсь объединить его обратно в dev, но в моем проекте третий <ProjectItem> - MyCube. Это, очевидно, вызывает конфликт - я не могу подтолкнуть куб в dev, не перезаписывая свой куб. Эта же проблема возникает при попытке объединить другую ветку в вашу собственную, из-за того, как структурируется XML.

Как мы можем решить это? Должны ли мы входить и вручную редактировать XML каждый раз, когда нам нужно объединиться?

+0

какой куб вы хотите в dev: ваш куб или их куб или и то, и другое? –

+0

Оба параметра '<длина комментариев длины>' – Kai

ответ

1

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

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

Другие решения:

  • если изменения в этом файле не имеют значения, untrack это в ваших локальных копий, так что вы не не должны нажать anychange больше нет.
+0

Ручное решение, безусловно, выполнимо для файла .dwproj, но файл .dsv имел около 30-40 мест, которые необходимо вручную исправлять. Это очень кропотливо, медленно и подвержено ошибкам, чтобы исправить это. Есть ли что-то, что мы можем сделать - или в git, или как мы работаем с SSAS - не нужно это делать? – Kai

+0

вы можете удалить '<<<<<<' and '> >>>>' и '========' по стратегии поиска и замены, grep и sed могут быть или любой текстовый редактор –

+0

Не так просто, как find & replace - есть отсутствующие закрывающие теги, которые необходимо отремонтировать, поскольку эти строки соответствуют текстовым и, следовательно, не конфликтуют, но все равно их необходимо дублировать. Например, в вышеприведенном коде '=======' нужно заменить на '', чтобы XML оставался в силе. В других конфликтующих областях требуются разные стратегии, чтобы сохранить оба значения, а также сохранить правильность XML. К сожалению, это не простая проблема с поиском и заменой, я подозреваю, что просто формат XML SSAS не является git-friendly. – Kai

Смежные вопросы