SVN проблема слияния (3 уровня SVN) - PullRequest
2 голосов
/ 06 сентября 2010

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

То, что я пробовал до сих пор:

svn update
svn delete
svn commit

Это вызывает конфликт всех этих операций.1006 *

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

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

Спасибо

Хорошо, вот обновление.Проблема в том, что файл (ex lib / a.php) находился в моей рабочей директории, а также на серверах разработки и производства.Теперь он был кем-то удален (используя команду del, а не svn delete) с сервера dev.Теперь вопрос в том, как я добавляю его снова, чтобы он снова стал частью SVN.Простое добавление SVN не работает.

Обновление 2 Из одного из ответов ниже я понял, что это конфликт дерева.Некоторые поиски привели меня к http://svnbook.red -bean.com / nightly / en / svn.tour.treeconflicts.html .Следуя инструкциям, я взял резервную копию файла, а затем svn delete отовсюду.Затем я svn add отправил его в свой каталог, зафиксировал его и попытался обновить dev и production.Конечным результатом является то, что он не идет туда.Также не отображается никаких ошибок.

svn info в моем каталоге показывает полную информацию о файле, но на dev и production он показывает

file_name:  (Not a versioned resource)

: S

Большеидеи пожалуйста?

Ответы [ 3 ]

3 голосов
/ 06 сентября 2010

В качестве альтернативы вы можете сделать резервную копию файла, а затем сказать svn revert filename вставить вам новый код. Сделайте svn up, просто чтобы убедиться, что у вас нет конфликтов, и затем подтвердите

Или

исправьте конфликты в файле, затем вы можете сказать svn resolved filename, а затем вы можете продолжить операции с файлом

Обновление: если ваш файл удален с помощью команды rm или del, используйте svn revert filename, чтобы вернуть его, и вам не нужно добавлять его снова. Просто введите новые изменения и скажите svn ci -m"your comments" filename

svn revert вернет последнюю проверенную копию в SVN и не внесет никаких изменений до того, как пользователь использовал команду del

Обновление 2: после того, как вы скажете svn delete, вам нужно его зафиксировать, пока вы не получите сообщение Deleting filename с новым номером ревизии. Затем добавьте файл с помощью команды svn add, а затем подтвердите снова. После этого вы можете проверить информацию SVN, дайте мне знать ..

Используйте команду svn status, чтобы узнать статус файла

Единственная проблема, кроме этого, о которой я могу думать, это то, что каталог, возможно, не был добавлен. Это новый каталог?

2 голосов
/ 06 сентября 2010

ах, старая проблема конфликта деревьев.

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

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

1 голос
/ 06 сентября 2010

Попытайтесь разрешить конфликты, а затем подтвердите:

svn resolve --accept working
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...