Что такое ГИТ хавсер?


Недавно я обнаружил, что мои .gitconfig были добавлены эти несколько дополнительных строк:

[filter "hawser"]
    clean = git hawser clean %f
    smudge = git hawser smudge %f
    required = true

Поскольку он управляется версиями, я уверен, что не добавлял их. Кажется, я не тот самый только один, чтобы иметь эти строки.

Однако: git: 'hawser' is not a git command. git help не дает никакой дополнительной информации.

Итак, что же это за фильтр "хавсер"?

4 28

4 ответа:

Я обнаружил, что изменение в моем .gitconfig точно совпало с обновлением github для mac, поэтому я назвал его таковым в своем РЕПО.

Что касается того, что такое Hawser на самом деле, Github для mac имеет его в комплекте по пути /Applications/GitHub.app/Contents/Resources/hawser/bin/git-hawser.

Запуск исполняемого файла с --help=false дает:

git-hawser/0.4.0 (GitHub; darwin amd64; git 2.3.0; go 1.3)

Usage: 
  git-hawser [flags]
  git-hawser [command]

Available Commands: 
  add                       Add an entry to .gitattributes
  clean                     Implements the Git clean filter
  env                       Show the current environment
  init                      Initialize the default Git Media configuration
  logs                      View error logs
  ls-files                  Show information about hawser files
  path                      Manipulate .gitattributes
  push                      Push files to the hawser endpoint
  rm                        Remove an entry from .gitattributes
  remove                    Remove an entry from .gitattributes
  smudge                    Implements the Git smudge filter
  status                    Show information about hawser files that would be pushed
  update                    Update local hawser configuration
  version                   Show the version number
  help [command]            Help about any command

 Available Flags:
      --help=false: help for git-hawser

Use "git-hawser help [command]" for more information about that command.

Запуск strings на нескольких исполняемых файлах в GitHub.приложение включает строку git-media|hawser, которая в дополнение к сообщению об использовании твердо указывает, что git-hawser является форком или повторным воплощением git-media используется для хранения больших файлов за пределами репозитория git, так как github имеет жесткий лимит размера файла 100 МБ . Я сейчас тестирую, чтобы увидеть, что произойдет, если вы попытаетесь загрузить огромный файл через GitHub.апп.

Оказывается, что GitHub.приложение не использует git-hawser автоматически при работе с большими файлами, но strings показывает, что у него есть возможность взаимодействовать с процессом git-hawser.

Установка инструментов командной строки устанавливает инструмент github и git-hawser в /usr/local/bin. Бег git-hawser version -c дает:

git-hawser/0.4.0 (GitHub; darwin amd64; git 2.3.3; go 1.3)
Nothing may see Gah Lak Tus and survive!

Это, кажется, связано: https://github.com/blog/1986-announcing-git-large-file-storage-lfs

И lo, фильтры hawser были продублированы как lfs (поддержка больших файлов):

[filter "lfs"]
  clean = git lfs clean %f
  smudge = git lfs smudge %f
  required = true

[3]}Hawser-это старое название Git LFS (а git-media-еще более старое название), поэтому я считаю, что это можно отбросить.

Гуглить это действительно трудно, но я наконец нашел фиксацию переименования проекта из hawser в lfs (https://github.com/github/git-lfs/commit/e37b69547710e2a341bc7904d291029ac594b3be ), и еще одно упоминание старого git-media имени (https://github.com/github/git-lfs/commit/eac36d7f04074882a7e3c9ad2cfc1d4f4a7b08fd).

Итак, из этих блоков в ~/.gitconfig, удаление блоков" media "и" hawser " должно быть безопасным, особенно после установки git-lfs. Другими словами, из этого конфигурационного блока:

[filter "media"]
        required = true
        clean = git media clean %f
        smudge = git media smudge %f
[filter "hawser"]
        clean = git hawser clean %f
        smudge = git hawser smudge %f
        required = true
[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        required = true

Вы можете перейти к

[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        required = true

Это, по-видимому, следствие установки GitHub для Mac. По крайней мере, это информация, которую я получил от чтения этого сообщения фиксации.

Недавно я столкнулся с такой же проблемой и прохожу через сайт https://git-lfs.github.com/?utm_source=github_site&utm_medium=blog&utm_campaign=gitlfs

Следующие шаги могут решить вашу проблему, если вы являетесь пользователем windows.

  1. вниз загрузить exe для windows
  2. установить
  3. 'Git lfs install' запустите этот код в команде git.

Теперь попробуйте подтолкнуть изменения.