Я понимаю, как удалить весь набор изменений из истории, но не ясно, как удалить подмножество.
Например, как удалить все DLL файлы из существующего набора изменений, оставив только исходный код?
Я понимаю, как удалить весь набор изменений из истории, но не ясно, как удалить подмножество.
Например, как удалить все DLL файлы из существующего набора изменений, оставив только исходный код?
Поскольку идентификаторы ревизий (например, a8d7641f...) основаны на хэше набора изменений, на самом деле невозможно удалить подмножество набора изменений из истории.
Однако возможно создать новое репо с параллельной историей, за исключением определенного набора файлов, с помощью Convert расширение. Вы конвертируете репозиторий Mercurial в репозиторий Mercurial, используя файловую карту, чтобы исключить файлы, которые вам не нужны, добавив exclude
s. Это создаст новый, несвязанный репозиторий, а это означает, что у людей с клонами больше не удастся вытащить его из него и придется повторно клонировать из этого нового репо.
# this filemap is used to exclude specific files exclude "subdir/filename1.ext" exclude "subdir/filename2.ext" exclude "subdir2"
hg convert --filemap map.txt c:/oldrepo c:/newrepoПРИМЕЧАНИЕ. Вы должны использовать "forward-slash" в путях, даже в окнах.
c:\newrepo
, но без файловPS. В "верхнем" репо вам нужно удалить все changeets и повторно нажать ваше новое репо.
ПФС. Я на самом деле написал сообщение в блоге об этом, которое содержит более подробную информацию (включая снятие изменений в Bitbucket и т.д.