Was ist Git Hawser?

Lesezeit: 4 Minuten

Benutzer-Avatar
MattiSG

Ich habe kürzlich meine entdeckt .gitconfig wurden diese paar zusätzlichen Zeilen angehängt:

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

Da es versioniert ist, bin ich sicher, dass ich sie nicht hinzugefügt habe. Anscheinend bin ich es nicht das nur eine, die diese Zeilen hat.

Jedoch: git: 'hawser' is not a git command. git help gibt keine zusätzlichen Informationen.

Was ist also dieser „Trommel“-Filter?

Benutzer-Avatar
Camden Narzt

Ich fand die Veränderung in meinem .gitconfig fiel genau mit einem Update auf github für Mac zusammen, weshalb ich es in meinem Repo als solches gekennzeichnet habe.

Was Hawser eigentlich ist, Github für Mac hat es auf der gebündelt /Applications/GitHub.app/Contents/Resources/hawser/bin/git-hawser Weg.

Ausführen der ausführbaren Datei mit --help=false Erträge:

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.

Betrieb strings bei einigen ausführbaren Dateien in GitHub.app taucht die Zeichenfolge git-media|hawser auf, die zusätzlich zur Verwendungsmeldung deutlich anzeigt, dass git-hawser ein Fork oder eine Neuimplementierung von git-media ist, die verwendet wird, um große Dateien außerhalb des Git-Repos zu speichern, wie github hat eine feste Dateigrößenbeschränkung von 100 MB. Ich teste jetzt, um zu sehen, was passiert, wenn Sie versuchen, eine riesige Datei über GitHub.app hochzuladen.

Es stellt sich heraus, dass GitHub.app beim Umgang mit großen Dateien nicht automatisch git-hawser verwendet, sondern strings zeigt, dass es die Fähigkeit hat, mit einem Git-Hawser-Prozess zu interagieren.

Durch die Installation der Befehlszeilentools wird die github Werkzeug und git-hawser zu /usr/local/bin. Betrieb git-hawser version -c gibt:

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

Das scheint verwandt zu sein: https://github.com/blog/1986-announcing-git-large-file-storage-lfs

Und siehe da, Trossenfilter wurden als lfs dupliziert (Large-File-Support):

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

  • git media „ermöglicht es Ihnen, Git mit großen Mediendateien zu verwenden, ohne die Medien in Git selbst zu speichern.“

    – MattiSG

    16. März 2015 um 9:22 Uhr

  • Wir wissen also immer noch nicht, wie GitHub.app voraussichtlich verwendet wird hawser, aber wir verstehen die Absicht… Danke für die Recherche! Würde gerne eines Tages die vollständige Erklärung bekommen 😉

    – MattiSG

    19. März 2015 um 11:33 Uhr

  • scheint, als hätten sie git-hawser in einem kürzlichen Update entfernt. Ich habe einen Symlink unter /usr/local/bin/git-hawser, aber meine GitHub.app enthält kein git-hawser.

    – Diskutant

    11. Juli 2015 um 12:34 Uhr

Hawser ist ein alter Name für Git LFS (und git-media ist der noch ältere Name), also glaube ich, dass das fallen gelassen werden kann.

Das zu googeln ist wirklich schwierig, aber ich habe endlich den Commit gefunden, der das Projekt von hawser in lfs umbenennt (https://github.com/github/git-lfs/commit/e37b69547710e2a341bc7904d291029ac594b3be) und ein anderer erwähnt das Alte git-media Name (https://github.com/github/git-lfs/commit/eac36d7f04074882a7e3c9ad2cfc1d4f4a7b08fd).

Von diesen Blöcken in ~/.gitconfig sollte das Entfernen der Blöcke „media“ und „hawser“ also sicher sein, insbesondere wenn Sie git-lfs installiert haben. Mit anderen Worten, aus diesen Konfigurationsblöcken:

[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

du kannst gehen

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

Dies scheint eine Folge der Installation von GitHub für Mac zu sein. Das ist zumindest die Information, die ich aus der Lektüre bekommen habe diese Commit-Nachricht.

Kürzlich habe ich das gleiche Problem gehabt und ich gehe durch die Seite
https://git-lfs.github.com/?utm_source=github_site&utm_medium=blog&utm_campaign=gitlfs

Die folgenden Schritte können Ihr Problem lösen, wenn Sie ein Windows-Benutzer sind.

  1. Laden Sie die exe für Windows herunter
  2. Es installieren
  3. ‚git lfs install‘ führt diesen Code im Git-Befehl aus.

Versuchen Sie nun, die Änderungen zu pushen.

1240780cookie-checkWas ist Git Hawser?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy