Есть ли какой-нибудь способ заставить TortoiseSVN действовать больше как TortoiseCVS?

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

Вопрос

Я работаю в смешанной среде управления версиями.Мы по-прежнему в основном работаем над CVS, но более новые проекты находятся в SVN.Однако мне трудно получить бай-ин для SVN, потому что TortoiseSVN работает не так, как TortoiseCVS.

У 3-стороннего слияния много когнитивного диссонанса, и в то время как TortoiseCVS, кажется, всегда выполняет слияния правильно, TortoiseSVN почти всегда требует ручной помощи.Также после устранения любых конфликтов вы должны вручную пометить файл как ok.

Есть ли у кого-нибудь какие-нибудь советы о том, как заставить TortoiseSVN работать больше как TortoiseCVS?

Редактировать

Чтобы было более понятно, я не хочу выполнять трехстороннее слияние, если возможно, я хотел бы выполнить двустороннее слияние, как это делает TortoiseCVS.Я знаю, что результирующий файл одинаков в CVS и SVN, например, файл проекта Visual Studio имеет две разные версии.Это всегда будет заканчиваться конфликтом в TortoiseSVN и никогда конфликтом в TortoiseCVS.

SVN выглядит следующим образом:

<<<<<<< .mine
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> .r195290

Резюме локи любят

<<<<<<< SomeFile.cproj
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> 1.121

таким образом, я должен быть в состоянии получить такой же вид слияния.Кроме того, у TortoiseSVN почти всегда возникают конфликты при обновлении, если два человека работают с одним и тем же файлом, даже если они работают в разных местах, у TortoiseCVS этой проблемы нет.Я предполагаю, что TortoiseSVN более консервативен и заставляет вас проверять слияние, TortoiseCVS предполагает, что CVS все понял правильно.Мне было интересно, есть ли где-нибудь в TortoiseSVN какие-нибудь опции, скрытые для того, чтобы он был более либеральным, а также для выполнения двустороннего слияния вместо трехстороннего.

О, и да, мы используем Subversion 1.5, у которой есть точки слияния (ветви были в основном бесполезны без этого).

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

Решение

Взгляните на За пределами сравнения и Слияние Араксиса.Они предлагают инструкции по их интеграции в TortoiseSVN в качестве пользовательских инструментов слияния / дифференцирования.

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

Маркировка конфликта не должна иметь ничего общего с самой Tortoise, скорее SVN vs.РЕЗЮМЕ.Именно SVN определяет, находится ли файл в конфликте, а не Tortoise.Я не могу сказать, почему это так и что вы можете с этим поделать.Вероятно, очень мало.SVN, вероятно, просто более консервативен, когда дело доходит до принятия слияний.Опять же, я не уверен в используемом алгоритме, но, похоже, он помечает файл как конфликтующий, когда измененные строки находятся достаточно близко друг к другу (и изменения отличаются).

Я думаю, что черепашье слияние на самом деле довольно приятное, так что, надеюсь, я смогу объяснить это как можно лучше, и вы, возможно, увидите то, чего раньше не знали.Обычно у вас есть 2 панели рядом друг с другом, а затем нижняя панель.Нижняя панель - это результат слияния, с конфликтами, отмеченными красным цветом, наряду с другими частями, которые уже были успешно объединены.В строках конфликта вы можете щелкнуть правой кнопкой мыши и выбрать, следует ли сохранить ваши изменения (как показано на панели "Мои"), другие изменения (как показано на панели "Их") или вы можете принять их комбинацию.

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

Надеюсь, это помогло.

Здесь просто дикое предположение, но если вы используете CVSNT на сервере, это наблюдение может быть основано на том факте, что CVSNT просто намного лучше при слиянии, чем SVN, потому что у него есть понятие "точек слияния".Обычно это приводит к гораздо меньшему количеству конфликтов при многократном слиянии из / в одну и ту же ветвь.
Я не думаю, что с этим можно что-то сделать, по крайней мере, ненавязчиво.

Редактировать: Я остаюсь исправленным.Начиная с версии v1.5, SVN также имеет точки слияния.Я бы удалил этот ответ, но я предполагаю, что он все еще может быть полезен кому-то, использующему более старую версию SVN.

Если это не то, о чем вы говорите, возможно, вам следует немного уточнить свой вопрос.Вы уверены, что речь идет о различиях между TortoiseSVN и TortoiseCVS, а не скорее между CVS (NT?) и SVN?

Я думаю, что ваш вопрос сосредоточен на том, как лучше поддерживать слияние с Subversion в Windows.

Возможно, это не совсем то, за чем вы охотились, но я регулярно использую Emacs под Windows для облегчения слияния в Subversion.

Emacs + SVN под Windows

Комбинация из EmacsW32 + сигвинsvn) + псв пакет emacs + "встроенный" emacs инструмент слияния хорошо работает под Windows.вы найдете псв в настоящее время входит в стандартную комплектацию Emacs, и если его нет в вашем, вы можете легко и быстро загрузить и установить.

Благодаря интегрированной поддержке в наборе инструментов на базе Emacs я примерно в 5-10 раз быстрее решаю проблемы слияния, чем обычный сотрудник.Кажется, они довольны использованием TortoiseSVN + другого своего любимого редактора и используют его таким образом...Я несколько раз предлагал проинструктировать их об использовании и мощности возможностей Emacs (как только он будет настроен, он позаботится о себе сам), но, похоже, они предпочли бы придерживаться своих элементарных инструментов и не вкладывать средства в повышение своей производительности.

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

Дэвид

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

Не путайте "назначение" этой технологии ..."обслуживать" команду разработчиков в процессе разработки.

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

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