2015-02-27 2 views
27

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

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

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

Однако: git: 'hawser' is not a git command. git help не содержит дополнительных сведений.

Итак, что это за фильтр «hawser»?

ответ

29

Я нашел, что изменение в моем .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.app появляется струнные GIT-медиа | тросу, который в дополнение к сообщению об использовании твердо указывает на то, что ГИТ-тросу является вилкой или повторной реализацией git-носителей, используемых для хранения больших файлов за пределами git-репо, поскольку github имеет a hard 100MB file size limit. Я тестирую сейчас, чтобы узнать, что произойдет, если вы попытаетесь загрузить огромный файл через GitHub.app.

Оказывается, что GitHub.app не использует 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

И вот, трос фильтры дублировались в LFS (большой файл-поддержка):

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

'мерзавец media'«позволяет использовать Git с большими медиа-файлов без сохранения средств массовой информации в самой Git.» – MattiSG

+0

Поэтому мы до сих пор не знаем, как GitHub.app, как ожидается, будет использовать «hawser», но мы получаем намерение ... Спасибо за исследование! Хотелось бы получить полное объяснение когда-нибудь;) – MattiSG

+0

похоже, что они удалили git-hawser в недавнем обновлении. У меня есть символическая ссылка в/usr/local/bin/git-hawser, но мой GitHub.app не содержит git-hawser. – Diskutant

0

Это, похоже, является следствием установки GitHub для Mac. По крайней мере, это информация, которую я получил от чтения this commit message.

-2

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

Следующие шаги могут решить ваш про Если вы пользователь Windows.

  1. вниз загрузить ехе для окон
  2. Установите его
  3. 'Git LFS установить' запустить этот код в команде мерзавца.

Теперь попробуйте нажать на изменения.

+0

Я не понимаю: вопрос, который я задал, был «что такое git hawser». В чем проблема, с которой вы даете решение? – MattiSG

4

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

погуглить это очень трудно, но я, наконец, нашел совершить переименование проекта от троса к 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