Справочная информация: это работает на Windows 2008 Server.
https://www.mercurial -scm.org / wiki / Workflows # Feature_separation_through_named_branches
Я - Mercurialновичок, и я пытаюсь следовать приведенному выше совету, где говорится: «Объединяйте настройки по умолчанию с вашей функцией как можно чаще» - и я уже делал это несколько раз ранее сегодня, уже с другими файлами.
Однако это новейшее изменение просто не будет сливаться.
Когда я выполняю 'hg merge default', я получаю ошибку "abort: Access is denied".Поискав в поиске, я вижу, что некоторые люди сообщали, что у них действительно были проблемы с разрешениями для рассматриваемых файлов.Там нет ничего особенного в разрешениях для рассматриваемого файла, по крайней мере, не то, что я вижу.Я тренируюсь в Linux, а не в Windows, так что, по сути, я не совсем понимаю права доступа к файлам Windows.Cygwin утверждает, что рассматриваемый файл - 644 (то есть я могу записать в файл), то есть тот же набор разрешений, что и любой другой файл, который ранее был успешно затронут процессом слияния hg в прошлом.
Я посмотрел на команду attrib для DOS, и рядом с этим файлом также не отображается флаг «только для чтения».
Если это вопрос не по Mercurial, чем по немувопрос о разрешениях Windows, я тоже рад изменить теги.
Я предполагаю, что эта ошибка "abort: Access is denied" относится к файлу в наборе изменений, который необходимо объединить,а не к одному из .hg / files, но это очень загадочное сообщение об ошибке - в нем не говорится, к какому файлу возникла проблема с доступом (и в наборе изменений есть только один единственный файл, который был изменен - я специально попыталсячтобы быть ОЧЕНЬ простым с этим тестом).
ОБНОВЛЕНИЕ:
Сделал «откат hg» и попробовал тот же тест команд в том же порядке, оставляя файлыоткрыть, только с совершенно другим файлом (lib / blort.html вместо blah / foo.html).
«hg merge» работал просто отлично.
Так что, вероятно, есть что-то особенно странноеразрешения для конкретного файла, с которого я начал (foo.html), или каталога, который является его родительским.
Другое правка
Определенно что-то не так в родительском каталоге, так как у меня была та же проблема с другим файлом в каталоге, но проблема не проявляется нигде в структуре каталога, только в этом одном каталоге.
Только что проверил разрешения для lib / vs. blah / иони оба выглядят одинаково в Cygwin, но это лишь смутное приближение списков ACL для Windows.Когда вы проверяете их, щелкая правой кнопкой мыши по каждому каталогу и просматривая вкладки «Свойства», они снова кажутся одинаковыми для обоих каталогов, но я думаю, что суть проблемы в том, что я действительно не совсем понимаю ACL.
Есть ли какой-нибудь инструмент командной строки DOS, такой как 'attrib', только более мощный, который, подобно 'ls' в linux, дал бы мне больше информации, чем путаница с галочками, которые я получаю в 'Свойствах'?
Надеюсь, окончательное редактирование
Как определить разрешения Windows
«iCacls», кажется, является правильным инструментом для работы, иКажется, что это решило проблему, но я хотел бы продублировать это перед принятием / закрытием.
РЕЗЮМЕ
В случае сомнений используйте--debug
в ваших командах Mercurial.Сейчас это немного "дух", но спасибо @ lazy-badger за указание на это.
Вы можете исправить свои права на Server 2008 с помощью команды, подобной icacls path /grant domain\user:(OI)(CI)F
(см.например, http://www.petri.co.il/forums/showthread.php?t=23207),, но обязательно сделайте это из расширенного окна CMD («Запуск от имени администратора»). Опять «да» для людей из Windows, не так очевидно для Linux-пользователя (вместо этого я стал искать в DOS некоторые DOSэквивалентно sudo
).