Да, это возможно.
Тем не менее, это более продвинутый вариант использования Mercurial, и вам потребуется включить в аренду одно расширение.
Как новый пользователь, я бы рекомендовал:просто используйте базовое управление Mercurial и удалите файлы, которые вас интересуют:
hg remove <file>
Затем вы можете зафиксировать изменение.
Хотя это не приведет к удалению файла (-ов) из всех наборов изменений, это удалит это, идя вперед.Честно говоря, это рекомендуемый способ управления рабочим контентом.
Следует отметить, что это, вероятно, единственный вариант, если вы отправили изменения в родительский репозиторий.Если вы отправили свои изменения в родительский репозиторий, вам также придется отредактировать его, что значительно усложнит ситуацию и повысит вероятность серьезной ошибки.
Если вы действительно хотите удалить его из предыдущих наборов изменений, вам нужно включить расширение histedit (входит в состав Mercurial).
[extensions]
histedit =
Поскольку вы относительно новый пользователь Mercurial, я настоятельно рекомендую вам сделать резервную копию своего репозитория и поэкспериментировать с ним, прежде чем пытаться сделать это на своей работе.copy.
Процесс, который я рекомендую для этого, выглядит следующим образом:
Примечание: это работает только так, как описано для наборов изменений, которые не были отправлены и имеют фазу = черновик (или секрет)
1) Определите все изменения, где файл (ы) добавляются или изменяются
Вам необходимо знать каждый набор изменений, где файл (ы) были изменены или добавлены.Вам нужно будет изменить каждый из этих наборов изменений в обратном порядке, в котором они были добавлены.
Вы можете использовать:
hg log file
, чтобы вывести список наборов изменений, где файл был изменен или добавлен.
2) Медленно редактируйте каждый затронутый набор изменений (работая в обратном направлении)
Используйте histedit для отображения всех отображений всех наборов изменений, которые можно изменить / отредактировать в редакторе по умолчанию.
hg histedit
Найдите первый набор изменений, который вы определили, и измените его от выбора до редактирования и сохраните изменение.
Это переведет вас в режим редактирования histedit.Это состояние незадолго до фиксации изменений.Это означает, что вы можете вносить изменения, такие как изменение, изменение.Добавление или удаление контента.В этом случае мы хотим отменить любые изменения в файле (ах), о которых идет речь.
hg revert file
или
hg remove file (if this is the changeset where the file as added)
3) возобновить набор изменений
Как только вы получитедля изменения / добавления файла в обратном порядке, вам нужно сообщить histedit, что вы сделали.
hg histedit --continue
Это приведет к повторной отправке набора изменений с внесенными вами изменениями, включая редактирование сообщения о фиксации.Повторяйте это для каждого набора изменений до его завершения.
Примечание. Хотя вы можете выбрать несколько изменений для редактирования в histedit, я рекомендую делать по одному за раз, чтобы уменьшить сложность.Не забывайте делать в обратном порядке, что они обязались, чтобы помочь уменьшить / устранить любые конфликты слияния.
Снова рекомендую практиковаться в копии репозитория, пока вы не будете твердо понимать процесс.Так как вы изменяете историю репозитория, это может иметь потенциальные негативные последствия ошибки.
Я настоятельно рекомендую прочитать это: https://book.mercurial -scm.org / read / change-history.html .