Подрывная деятельность:что означает “Целевой путь не существует” при слиянии?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Используя subversion 1.5, у меня есть ветвь B, которая была ответвлена от ветви A.После выполнения работы в обеих ветвях я перехожу к объединению изменений из A в B (используя svn merge http://path/to/A в рабочем каталоге B) и получаем svn: Target path does not exist.Что это значит?

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

Решение

Это означает, что в файле в ветке A произошло изменение, которое Subversion пыталась объединить с веткой B, но файл не существует в ветке B, поэтому ему некуда объединить изменения.Например:

  • Создать ветку B
  • Изменить/README
  • Удалить B/README
  • Объединить A -> B

Теперь изменение в README не может быть применено в ветке B, поскольку файл там был удален.

Редактировать:Это приведет к конфликт деревьев в Subversion 1.6.

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

Я получал эту ошибку с svn 1.5.4, даже когда не было несовместимых изменений.Обновление до 1.5.5 исправило это для меня.

У меня возникла эта проблема, потому что мой ствол и ветка имели странную историю.

Вот так:

              /---------\
trunk -------+---+       +---\
                  \-----------BOOM!

Объединение trunk -> branch не сработало.

Однако слияние ветви -> магистрали сработало.

              /---------\
trunk -------+---+       +---+-----
                  \---------/

Вероятно, потому, что в стволе была лучшая информация о последнем предке, которого они разделяли.

В моем случае я не был готов к обратному слиянию с trunk, но я смог создать новую ветку из trunk и объединить туда свою старую ветку.

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