.hgignore всего дерева каталогов, за исключением одного определенного файла

17

Может ли кто-нибудь сказать мне шаблон .hgignore для отслеживания одного конкретного файла в каталоге и игнорировать все остальное?

У меня есть «медиа» каталог, который содержит «default.png», для очевидных целей, а остальная часть каталога будет содержать пользовательские носители. Мы хотим, чтобы hg игнорировал все в медиа-каталоге, кроме файла по умолчанию.

    
задан John Mee 05.11.2009 в 04:09
источник

4 ответа

25

Try:

syntax: regex
^media/.*

или (оставьте его в шале по умолчанию и сделайте)

media/**

, а затем вручную hg add media/default.png .

В меркуриальном (в отличие от CVS) вы можете добавлять файлы, соответствующие вашим шаблонам игнорирования, и они отлично работают. Поэтому игнорируйте широко и hg add , что вы хотите отслеживать.

    
ответ дан Ry4an Brase 05.11.2009 в 04:55
источник
  • , но это требует, чтобы вы вручную добавляли нужные файлы, а hg не заметили, если вы добавите новый файл, соответствующий шаблону (если вы соответствовали * .c, например). –  frankster 07.03.2012 в 18:45
  • Совершенно верно. Я по-прежнему предпочитаю это для негативного взгляда, но не у всех. Лично я просто убеждаюсь, что мои преходящие файлы и мои вещи для хранения заканчиваются в разных каталогах, поэтому мне не нужно беспокоиться об этом. –  Ry4an Brase 08.03.2012 в 04:18
6
syntax: regex
^media/(?!default.png$)

почти то же самое, что и John Mee's, но соответствует концу строки, вместо того, что начинается с default.png.

, если вы хотите разрешить любой файл .c, но ничего больше, вы можете использовать:

^media/(?!.+\.c$)
    
ответ дан frankster 07.03.2012 в 18:46
источник
5

Подведение итогов как BKM (лучший известный метод)

Либо hgignore все, и затем hg добавьте обратно несколько файлов, которые вы хотите отслеживать.

Или используйте шаблон, например

syntax: regex
^path/(?!files-that-you-want-not-to-ignore$)

(Я просто хотел увидеть полный ответ в одном месте.)

    
ответ дан Krazy Glew 03.06.2012 в 22:06
источник
  • Как указать несколько файлов? –  m4l490n 13.03.2017 в 18:35
4

Не обращайте на это внимание ...

syntax: regex
^media/(?!default.png)
    
ответ дан John Mee 05.11.2009 в 04:17
источник
  • это также будет соответствовать default.png.sadkjsdhfdshfjkds –  frankster 07.03.2012 в 18:43
  • да, конечно нужно «$», чтобы быть уверенным. см. ваш ответ. –  John Mee 08.03.2012 в 01:02