2010-12-14 2 views
4

Я получаю следующую ошибку при попытке добавить файлы в мое меркурийное репо.Меркуриальная ошибка. Не под root

abort: /HRTRL/img not under root 

Это началось, когда разработчик здесь решил проигнорировать наш обычный рабочий процесс и внесли изменения непосредственно на сервере, а не делать их в своем рабочем каталоге, а затем толкает их к испытательному репо. Затем мне нужно было синхронизировать тестовое репо с его изменениями, поэтому то, что я закончил, это просто копирование его изменений в мой рабочий каталог, который был текущим, а затем нажатие на центральный репозиторий. Я не использовал mercurial при копировании и удалении файлов. Теперь у меня есть незатребованные файлы в моем каталоге и я хочу добавить их, чтобы я мог совершить. Я получаю ошибку выше.

Это выход из состояния рт.ст.

! HRTRL/css/grid.css 
! HRTRL/css/ie.css 
! HRTRL/css/ie7.css 
! HRTRL/css/jquery.lightbox-0.5.css 
! HRTRL/css/layout.css 
! HRTRL/css/productPages.css 
! HRTRL/css/reset.css 
! HRTRL/css/typography.css 
? HRTRL/img/webheadercenter.jpg 
? HRTRL/img/webheaderleft.jpg 
? HRTRL/img/webheaderright.jpg 
? HRTRL/includes/CallLog/tests/all_tests.php 
? HRTRL/includes/CallLog/views/index.php 
? HRTRL/includes/CallLog/views/styles/style.css 
+0

Вы пробовали: 'hg addremove -s 90'? Или вручную создайте 'hg add X' для каждого файла, который вы хотите добавить, и' hg remove -A X' для каждого файла, который вы хотите удалить? –

+2

У вас есть символические ссылки в игре? Я нашел это: http://mercurial.selenic.com/bts/issue165 –

ответ

2

Если вы хотите:

  • Все со статусом ! (файл отслеживается в хранилище, но отсутствует на диске), чтобы удалить
  • Все со статусом ? (файл неизвестен), добавляется

Тогда вы можете просто выполнить следующую команду:

hg addremove --similarity 90 

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

Если вы можете, я бы попытался использовать TortoiseHg, чтобы сделать addremove, так как он также может выполнить проверку подобия, чтобы проверить, скопировали ли вы файлы, это может сделать историю для этих файлов более правильной, если они являются копиями из существующих (и все еще отслеживаемых) файлов. Часть addremove --similarity 90 будет проверять только для переименований/перемещений, а не для копий.


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

hg remove --after X 

где X это путь и имя файла, например:

hg remove --after HRTRL/css/grid.css 

, а затем для каждого из статусные ? файлы, которые вы хотите добавил:

hg add X 

пример:

hg add HRTRL/img/webheadercenter.jpg 
+0

Спасибо! addremove сделал трюк, но hg add производит эту ошибку root. –

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