2013-12-02 5 views
3

Я пытаюсь использовать Crucible с CVS для предварительного просмотра. Когда я загружаю патч, он говорит:Crucible попытался привязать ваш патч, но было противоречивое содержание

Crucible tried to anchor your patch, but there was conflicting content 

Видимо, это распространенная проблема. hits in jira.

Все мои файлы имеют тег ключевого слова $ Log: NameOfTheFile.java, v $, и это, похоже, является виновником. Если я удалю тег и зафиксирую, проблема исчезнет - я могу загружать precommit-патчи в Crucible. Однако я не хочу удалять все теги ключевых слов из моих файлов.

Есть ли какие-нибудь другие функции? One page говорит, что я могу вручную отредактировать diff. Как??

+0

также спросил здесь, но ответа еще нет. https://answers.atlassian.com/questions/239173/crucible-tried-to-anchor-your-patch-but-there-was-conflicting-content –

ответ

0

Проблема заключается в том, что CVS расширяет ключевое слово во время оформления заказа. Поэтому копия файла в CVS имеет нерасширенный тег, но копия на вашем компьютере имеет расширенный тег. Это то, что заставляет якорь терпеть неудачу. В случае $ Log $ расширение добавляет три строки после тега. Чтобы выполнить привязку, вы должны отредактировать патч таким образом, чтобы эти три строки исчезли. У вас есть два варианта

  1. генерировать патч со всеми линиями, CVS дифф -u100000, а затем отредактировать патч, чтобы удалить три строки после $ Log $, или
  2. генерировать патч с ограниченным контекстом , cvs diff -u, а затем отредактируйте патч, чтобы вычесть 3 из всех строк «@@». Например, если в патче содержится «@@ -116,63 +109,50 @@», вам необходимо изменить его на «@@ -113,63 +106,50 @@»

Это связано на off by one bug, когда вы смотрите на журнал CVS-файла.