This repository uses Git's Large File Storage extension for external sources and tarballs. All files in the extern and src directories, whether stored in Git itself or in the LFS storage, are publicly exposed at https://dev-www.libreoffice.org.
Uploading new files is done via gerrit, but the local clone needs to be made LFS-aware first.
sudo apt install git-lfssudo yum install git-lfsBe sure to use to run git clone with GIT_LFS_SKIP_SMUDGE=1 in the environment, otherwise the command will happily download all Git LFS objects (over a dozen GiB).
$ GIT_LFS_SKIP_SMUDGE=1 git clone https://git.libreoffice.org/extern.git Cloning into 'extern'... remote: Counting objects: 8, done remote: Finding sources: 100% (8/8) remote: Total 2141 (delta 2), reused 2139 (delta 2) Receiving objects: 100% (2141/2141), 495.75 KiB | 2.93 MiB/s, done. Resolving deltas: 100% (190/190), done.
The --skip-smudge flag avoids automatically downloading new Git LFS objects on pull.
$ cd extern $ git lfs install --local --skip-smudge Updated Git hooks. Git LFS initialized. $ git config lfs.https://gerrit.libreoffice.org/extern.git/info/lfs.locksverify true
$ git config remote.origin.pushurl ssh://[email protected]:29418/extern.git
$ curl -Lo .git/hooks/commit-msg https://gerrit.libreoffice.org/tools/hooks/commit-msg $ chmod +x .git/hooks/commit-msg
To download a specific asset, in this case src/tdf-branding.tgz:
$ git lfs pull --include=src/tdf-branding.tgz
Common file extensions should already be set up for LFS: git add should automatically turn large files into LFS pointers rather than native Git objects. These extensions are defined in the .gitattributes file at the root of the repository.
Should the list be incomplete, use git lfs track "*.MY_NEW_EXTENSION" to track a new file extension.
$ git add src/my-new-file.tar.gz $ git commit -m "Add my-new-file.tar.gz." [master f244028] Add my-new-file.tar.gz. Date: Thu Apr 25 03:12:12 2024 +0200 1 file changed, 3 insertions(+) create mode 100644 src/my-new-file.tar.gz $ git push origin HEAD:refs/for/master Uploading LFS objects: 100% (1/1), 4.2 MB | 0 B/s, done. […] remote: SUCCESS remote: remote: https://gerrit.libreoffice.org/c/extern/+/123456 Add my-new-file.tar.gz. [NEW] remote: To ssh://gerrit.libreoffice.org:29418/extern.git * [new reference] HEAD -> refs/for/master
The new file will then shortly be available at https://dev-www.libreoffice.org/src/my-new-file.tar.gz once the changeset is submitted by a committer.