Как вывести список всех файлов в хранилище в Mercurial (hg)? - PullRequest
73 голосов
/ 08 июня 2010

Есть ли в mercurial команда, которая выведет список всех файлов, находящихся в данный момент под контролем исходного кода?

Я могу сделать dir /s, чтобы вывести список всех файлов в моей папке и подпапках, но я понятия не имею, какие из них были добавлены в мой репозиторий. У меня есть несколько исключенных типов файлов и папок, и я хочу убедиться, что ни один из них не был добавлен, прежде чем я настрою их в своем файле .hgignore.

Ответы [ 5 ]

70 голосов
/ 08 июня 2010

hg status --all выведет список всех файлов в дереве с буквой, обозначающей его статус: M для измененного, C для чистого (принадлежит hg) и I для игнорируемого.

Для всего игнорируется файлов, используйте hg status -i.Для файлов, которые будут добавлены при следующей фиксации, используйте hg status -a.Они показывают только то, что вам нужно знать, и не требуют сканирования длинного списка файлов.

61 голосов
/ 18 августа 2010

Вы также можете проверить команду hg locate.Я использую его вместе с опцией -I, когда я хочу ограничить файлы определенным каталогом.

Чтобы вывести список всех файлов в вашем хранилище:

hg locate

Из хранилища («root») каталог:

hg locate -I dir/sub_dir/dir_of_interest

Путь, переданный -I, должен меняться в зависимости от каталога, в котором вы запускаете команду.Если вы запустите команду из каталога dir в приведенном выше примере, вам потребуется изменить аргумент, чтобы найти:

hg locate -I sub_dir/dir_of_interest

Список выходных файлов останется прежним, показывая, что каждый файл заполненПуть в хранилище.

Попробуйте hg help -v locate для получения дополнительной информации.

22 голосов
/ 08 июня 2010

hg manifest перечислит только файлы в хранилище, а hg status --all выведет список всех файлов в структуре хранилища и включит маркер, для которого отслеживаются, а какие нет.

3 голосов
/ 09 октября 2014

Список только проигнорированных или добавленных файлов

Чтобы получить список только игнорируемых файлов, выполните: hg status -i.

Для добавленных файлов выполните hg status -a.

Если вам не нравится много печатать, вы можете сократить их до hg sta -i и hg sta -a.

Это два варианта использования status более просты, чем locate, и даст вам конкретные состояния файлов, которые вас беспокоят, поэтому он значительно менее подвержен ошибкам.

Подробнее о hg status

Чтобы вывести список всех файлов в репозитории Mercurial, выполните: hg status --all.

файлам будет присвоен префикс перед ними, когда они перечислены:

  M = modified
  A = added
  R = removed
  C = clean
  ! = missing (deleted by non-hg command, but still tracked)
  ? = not tracked
  I = ignored

Если вы хотите перечислить только файлы в папке , вы можете указать путь:

  • hg st --all MyFolder - все файлы в MyFolder
  • hg sta -i MyFolder - просто игнорируемые файлы в MyFolder.

Помимо -i для «Ignored» и -a для «Added», доступны другие флаги для отображения только файлов, имеющих определенный статус.

Получение help

Прочитайте другой очень полезный ответ здесь для подробного объяснения команды status. Он имеет отрицательные голоса, потому что автор попытался показать, что вы можете обнаружить все вышеперечисленное, запросив Mercurial о команде status, например:

hg help status

Вы можете попросить Mercurial рассказать вам о любой из его команд, подобных этой. А если вам нужен список команд Mercurial, наберите hg help.

0 голосов
/ 08 июня 2010
C:\>hg help -v status
hg status [OPTION]... [FILE]...

aliases: st

show changed files in the working directory

    Show status of files in the repository. If names are given, only files
    that match are shown. Files that are clean or ignored or the source of a
    copy/move operation, are not listed unless -c/--clean, -i/--ignored,
    -C/--copies or -A/--all are given. Unless options described with "show
    only ..." are given, the options -mardu are used.

    Option -q/--quiet hides untracked (unknown and ignored) files unless
    explicitly requested with -u/--unknown or -i/--ignored.

    NOTE: status may appear to disagree with diff if permissions have changed
    or a merge has occurred. The standard diff format does not report
    permission changes and diff only reports changes relative to one merge
    parent.

    If one revision is given, it is used as the base revision. If two
    revisions are given, the differences between them are shown. The --change
    option can also be used as a shortcut to list the changed files of a
    revision from its first parent.

    The codes used to show the status of files are:

      M = modified
      A = added
      R = removed
      C = clean
      ! = missing (deleted by non-hg command, but still tracked)
      ? = not tracked
      I = ignored
        = origin of the previous file listed as A (added)

options:

 -A --all             show status of all files
 -m --modified        show only modified files
 -a --added           show only added files
 -r --removed         show only removed files
 -d --deleted         show only deleted (but tracked) files
 -c --clean           show only files without changes
 -u --unknown         show only unknown (not tracked) files
 -i --ignored         show only ignored files
 -n --no-status       hide status prefix
 -C --copies          show source of copied files
 -0 --print0          end filenames with NUL, for use with xargs
    --rev             show difference from revision
    --change          list the changed files of a revision
 -I --include         include names matching the given patterns
 -X --exclude         exclude names matching the given patterns

global options:
 -R --repository      repository root directory or name of overlay bundle file
    --cwd             change working directory
 -y --noninteractive  do not prompt, assume 'yes' for any required answers
 -q --quiet           suppress output
 -v --verbose         enable additional output
    --config          set/override config option (use 'section.name=value')
    --debug           enable debugging output
    --debugger        start debugger
    --encoding        set the charset encoding (default: cp1252)
    --encodingmode    set the charset encoding mode (default: strict)
    --traceback       always print a traceback on exception
    --time            time how long the command takes
    --profile         print command execution profile
    --version         output version information and exit
 -h --help            display help and exit
...