Какую команду вы используете, чтобы исключить файл из репозитория Mercurial? - PullRequest
2 голосов
/ 08 марта 2010

У меня есть большой файл в моем репозитории Mercurial, который не позволяет загружать мой репозиторий в Bitbucket. Я получаю ошибку:

abort: HTTP Error 413: Request Entity Too Large

К счастью, расширение файла для этого файла отличается от всего остального в моем репозитории, поэтому должно быть легко создать правило для его исключения. Однако файл был включен в коммиты в хранилище вплоть до нескольких дней назад, когда он, вероятно, стал слишком большим. Нужно ли удалять его из истории, а также из будущих коммитов? Какая команда мне нужна для этого?

Я нашел этот документ в " IncludeExclude Proposal ", но я не уверен, является ли это предлагаемой или действительной функцией:

https://www.mercurial -scm.org / вики / IncludeExcludeProposal

Ответы [ 2 ]

4 голосов
/ 08 марта 2010

Если вы уже зафиксировали это, и похоже, что у вас есть, то exclude (aka hgignore) не будет работать для вас.

.hgignore (и никогда не применяемый расширенный синтаксис, который вы видите в InlcudeExcludeProposal) помогают предотвратить случайное добавление файла, который вы не хотите добавлять. После того, как вы добавили файл, hgignore не имеет эффекта, и как только вы зафиксировали это добавление, его невозможно удалить из истории без EditingHistory

Если вы можете просто избавиться от последних нескольких коммитов (с намерением повторить все, кроме добавления больших файлов), вы можете использовать hg clone -r lastknowngoodextension existingrepopath newrepopath, и у вас будет репо без этих нежелательных расширений в newrepopath. Я думаю, что Bitbucket предлагает веб-интерфейс для удаления наборов изменений, но я не уверен.

Если вы не можете просто клонировать (или убрать) последние несколько ревизий, тогда вы находитесь в пространстве EditingHistory, используя mq или convert или подобное.

Если вы хотите, чтобы эти файлы отслеживались, но не были в репозитории, вы можете посмотреть расширение bfiles .

0 голосов
/ 13 апреля 2014

Теперь это возможно.
TortoiseHg может это сделать (есть опция «Забыть файл»).

Или введите hg forget в консоли.

...