.. _git-lfs:
========================
Git Large File Storage
========================
在 :ref:`build_lineageos_20_pixel_4` ,编译LineageOS的文档中提出需要使用 `lfs or Large File Storage `_ ,原因是一些repos配置使用了 ``git-lfs`` 。
对于每个使用 ``git-lfs`` 的用户账号,都需要执行一次:
.. literalinclude:: git-lfs/git_lfs_install
:caption: 每个使用 ``Git Large File Storage`` 的用户账号下需要执行 git lfs 初始化
但是我第一次执行的时候报错:
.. literalinclude:: git-lfs/git_lfs_install_err
:caption: 执行 ``git lfs install`` 报错
当时我以为可以忽略这个问题,在后续的 ``repo init`` 时候去掉了 ``--git-lfs`` 参数。但是实际上这个参数非常重要,在编译时就遇到了无法同步仓库的报错:
.. literalinclude:: ../../android/build/build_lineageos_20_pixel_4/webview.apk_invalid_file
:caption: ``webview.apk: Invalid file``
:emphasize-lines: 5
``external/chromium-webview/prebuilt/arm64/webview.apk`` 文件:
.. literalinclude:: ../../android/build/build_lineageos_20_pixel_4/webview.apk
:caption: ``webview.apk``
:emphasize-lines: 1
这说明必须支持 ``git-lfs``
安装
======
实际安装非常方便,Ubuntu提供了 ``git-lfs`` 软件包:
.. literalinclude:: git-lfs/apt_install_git-lfs
:caption: 在Ubuntu上安装git-lfs
安装完成后,在用户目录下再次执行:
.. literalinclude:: git-lfs/git_lfs_install
:caption: 每个使用 ``Git Large File Storage`` 的用户账号下需要执行 git lfs 初始化
此时输出信息正常:
.. literalinclude:: git-lfs/git_lfs_install_output
:caption: 执行 ``git lfs install`` 正确的输出
参考
======
- `git: 'lfs' is not a git command unclear `_