SlideShare una empresa de Scribd logo
1 de 90
Descargar para leer sin conexión
@kannonboy
Photo: Le Monde en Vidéo
@kannonboy
@kannonboy@kannonboy
Photo: Le Monde en Vidéo
@kannonboy
Git LFS!
Git LOB!
@kannonboy
Photo: Le Monde en Vidéo
@kannonboy
ok cool
@kannonboy
Photo: Le Monde en Vidéo
Git LFS!
TIM PETTERSEN • SENIOR DEVELOPER • ATLASSIAN • @KANNONBOY
Tracking huge files with
Git LFS
@kannonboy
GIT LFS
THE PROBLEM WITH BIG FILES
Agenda
CONVERTING YOUR REPO
TIPS FOR TEAMS
@kannonboy
data model
@kannonboy
master
feature/JIRA-123
@kannonboy
434bb..tree
bab1e..parent
Tim P <kannonboy@…> 1455209277 -0800committer
Tim P <kannonboy@…> 1455209277 -0800author
My life is my commit message.
98ca9..
bab1e..
fad3d..
git cat-file -p 98ca9$
@kannonboy
git cat-file -p 434bb$
434bb..
98ca9..
bab1e..
fad3d..
ace23..100644 blob .gitignore
dbdbd..100644 blob README.md
a0bc3..040000 tree app
33d33..040000 tree config
b1de7..100755 blob deploy-prod.sh
7011e..100755 blob deploy-staging.sh
typefilemode SHA-1
@kannonboy
434bb..
98ca9..
bab1e..
fad3d..
ace23.. 1010101
dbdbd..
a0bc3..
33d33..
b1de7..
7011e..
1010101
1010101
1010101
master
1010101
1010101
1010101
@kannonboy
98ca9..
bab1e..
fad3d..
@kannonboy
98ca9..
bab1e..
fad3d..
@kannonboy
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
50mb
100mb
150mb
@kannonboy
@kannonboy
@kannonboy
(Large File Storage)
Git LFS
@kannonboy
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
$
LFS store
Git host
@kannonboy
☞
☞
☞
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
Git host
LFS store
$
@kannonboy
☞
☞
☞
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
Git host
LFS store
git push$
@kannonboy
☞
☞
☞
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
git pull$
LFS store
Git host
@kannonboy
☞
☞
☞
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
git pull$
LFS store
Git host
@kannonboy
☞
☞
☞
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
☞
☞
☞
dabad..
98ca9..
bab1e..
fad3d..
86753..
434bb..
https://git-lfs.github.com/spec/v1version
sha256:325ddfb…oid
29342295size
git cat-file -p 4749d$
4749d..
bdd12..
778aa..
@kannonboy
$ brew install git-lfs
$ git lfs install
@kannonboy
$ cat ~/.gitconfig
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
@kannonboy
$ git lfs track “*.mp4”
$ cat .gitattributes
*.mp4 filter=lfs diff=lfs merge=lfs -text
@kannonboy
massive_video.mp4
Work tree
dev
.git/lfs/objects
Clean filter
(git-lfs clean)
☞
Index
massive_video.mp4
$
.git/objects
git add
@kannonboy
$
dev
.git/lfs/objects
Smudge filter
(git-lfs smudge)
Work tree
massive_video.mp4
☞
Commit tree
massive_video.mp4
.git/objects
LFS Store
git checkout
@kannonboy
.git/lfs/objects
.git/objects
Hosted repo
LFS store
git push / pull
@kannonboy
$ ls .git/hooks/
prepare-commit-msg.sample
post-update.sample
pre-commit.sample
pre-push
...
@kannonboy
$ git push
Git LFS: (12 of 13 files, 1 skipped)
168.75 MB / 180.87 MB, 12.12 skipped
Counting objects: 22, done.
...
@kannonboy
$ git pull
remote: Counting objects: 3, done.
...
Downloading massive_video.mp4 (38.79 MB)
...
1 file changed, 2 insertions(+)
@kannonboy
POST .../repo.git
I need object cafebabe
@kannonboy
/info/lfs/objects/batch
{“objects”:[
{
“oid”: “cafebabe...”,
“size”: 40689401
}, ...
],
“operation”: “download”}
@kannonboy
200 OK
{“objects”:[
{“oid”: “cafebabe…”, “size”: 40689401,
“actions”: {
“download”: {
“href”: “https://…/lfs/cafebabe…”,
@kannonboy
cafebabe is over there
}
}
...
@kannonboy
200 OK
{“objects”:[
{“oid”: “cafebabe…”, “size”: 40689401,
“actions”: {
“download”: {
“href”: “https://…/lfs/cafebabe…”,
@kannonboy
cafebabe is over there
“header”: {
“Authorization”: “JWT eyJ0eXA…”,
}
}
}
...
@kannonboy
Converting to Git LFS
☞
@kannonboy
Converting to Git LFS
☞
@kannonboy
434bb..
fad3d..
98ca9..
41222..
dabad..
100mb
150mb
ace34..
☞ 150mb!?!?
@kannonboy
git filter-branch
$ git filter-branch --force --index-filter 
'git rm --cached --ignore-unmatch big_video.mp4’ 
--prune-empty --tag-name-filter cat -- --all
DON’T DO THIS!
@kannonboy
$ git filter—branch --prune-empty --tree-filter '
git config -f .gitconfig lfs.url
“https://bitbucket.example.com/team/repo.git”
git lfs track "*.mp4"
git add .gitattributes .gitconfig
for file in $(git ls-files | xargs git check-attr
filter | grep "filter: lfs" | sed -r "s/(.*):
filter: lfs/1/"); do
git rm -f --cached ${file}
git add ${file}
done' --tag-name-filter cat -- --all
@kannonboy
DON’T DO
THIS
EITHER!
@kannonboy
BFG Repo-Cleaner
@kannonboy
by @rtyley
@kannonboy
BFG Repo-Cleaner
@kannonboy
10-720x faster
than filter-branch
built to
kill history
Git LFS
support
by @rtyley
@kannonboy
$ git filter—branch --prune-empty --tree-filter '
git config -f .gitconfig lfs.url
“https://bitbucket.example.com/team/repo.git”
git lfs track "*.mp4"
git add .gitattributes .gitconfig
for file in $(git ls-files | xargs git check-attr
filter | grep "filter: lfs" | sed -r "s/(.*):
filter: lfs/1/"); do
git rm -f --cached ${file}
git add ${file}
done' --tag-name-filter cat -- --all
@kannonboy
DON’T DO
THIS
EITHER!
@kannonboy
$ brew install bfg
$ bfg —-convert-to-git-lfs ‘*.{zip,mp4}’
--no-blob-protection
@kannonboy
Repofactoring
@kannonboy
@kannonboy
Identifying large objects
github.com/bloomberg/repofactor
by @hashpling
@kannonboy
$
a295ef4… 102437 95372
2cc7063… 152171 140443
blob SHA size on disk average blob size
generate-larger-than 50000
Identifying large objects
@kannonboy
a295ef4… 102437 95372
2cc7063… 152171 140443
, PNG, 1148 x 482
, PNG, 1101 x 800
$ generate-larger-than 50000 
| add-file-info
Identifying large objects
@kannonboy
$ generate-larger-than 50000 
| add-file-info
2cc7063… 152171 140443, PNG, 1101 x 800
a295ef4… 102437 95372, PNG, 1148 x 482
order by average blob size

| sort -k3nr
Identifying large objects
@kannonboy
$ generate-larger-than 50000 
| add-file-info 
| sort -k3nr
$ report-on-large-objects big-stuff.txt
logo-hdpi.png 2cc7063… 152171 140443, PNG…
logo-mdpi.png a295ef4… 102437 95372, PNG…
paths
> big-stuff.txt
Identifying large objects
@kannonboy
$ bfg —-convert-to-git-lfs ‘logo-*.png’
--no-blob-protection
Identifying large objects
@kannonboy
Enable in Bitbucket
@kannonboy
@kannonboy
Tips for teams
@kannonboyBeware merge conflicts @kannonboy
@kannonboy
…meanwhile in
@kannonboy
Locking
@kannonboy
Source: etonline.com/music
@kannonboy
master
feature0
feature1
File locking (single branch model)
@kannonboy
master
feature0
feature1
File locking (single branch model)
@kannonboy
master
feature0
feature1
File locking (single branch model)
@kannonboy
master
feature0
feature1
File locking (single branch model)
@kannonboy
master
feature0
feature1
File locking (single branch model)
LAME
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
master
feature0
feature1
File locking (multi branch model)
@kannonboy
$ git lfs lock <path>
$ git lfs unlock <path>
$ git lfs locks [-i id] [-p path]
@kannonboy
Until then…
@kannonboyTeamwork @kannonboyTeamwork
@kannonboy
$ git lfs fetch
master
feature0
feature1
@kannonboy
$ git lfs fetch
$ git config lfs.fetchrecentalways “true”
master
feature0
feature1
--recent
T-minus 7 days
@kannonboy
$ git config lfs.fetchrecentalways “true”
lfs.fetchrecentrefsdays
lfs.fetchrecentremoterefs
lfs.fetchrecentcommitsdays
(default = 7)
(default = 0)
$ git lfs fetch --recent
@kannonboy
$
master
feature0
feature1
git lfs prune
@kannonboy
$
master
feature0
feature1
--recent
(7 days)
prune
(10 days)
git lfs prune
@kannonboy
lfs.pruneoffsetdays
lfs.pruneverifyremotealways
(default = 3)
Set this!
$ git lfs prune
@kannonboyFetch the bare necessitiesFetch the bare necessities @kannonboy
© Disney
@kannonboy
# for a build that just runs the unit tests
$ git lfs fetch --exclude Assets/**
# for an audio engineer
$ git lfs fetch --include Assets/Audio/**
@kannonboy
# for a build that just runs the unit tests
$ git lfs fetch --exclude Assets/**
# for an audio engineer
$ git lfs fetch --include Assets/Audio/**
$ git config lfs.fetchexclude Assets/**
$ git config lfs.fetchinclude Assets/Audio/**
@kannonboy
coming very soon!
Bitbucket Cloud
git-lfs.github.com
docs
github.com/github/git-lfs
source
atlassian.com/bitbucket
Bitbucket Server
Looking
for
more?
@kannonboy
coming very soon!
Bitbucket Cloud
git-lfs.github.com
docs
github.com/github/git-lfs
source
atlassian.com/bitbucket
Bitbucket Server
Looking
for
more?
@kannonboy
coming very soon!
Bitbucket Cloud
git-lfs.github.com
docs
github.com/github/git-lfs
source
atlassian.com/bitbucket
Bitbucket Server
Looking
for
more?
Follow me for occasional Git,
Bitbucket & JIRA trivia

Más contenido relacionado

La actualidad más candente

From Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data TypesFrom Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data TypesRobert Pearce
 
A Path to Point-Free JavaScript
A Path to Point-Free JavaScriptA Path to Point-Free JavaScript
A Path to Point-Free JavaScriptRobert Pearce
 
Some Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.jsSome Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.jsRobert Pearce
 
DO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSDO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSSeongJae Park
 
CPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPANCPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPANMike Friedman
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?Babel
 
21st Century CPAN Testing: CPANci
21st Century CPAN Testing: CPANci21st Century CPAN Testing: CPANci
21st Century CPAN Testing: CPANciMike Friedman
 
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the FlowInspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flowmhelmich
 
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your LifeMark Kelnar
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerGraham Charters
 
ZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingGianluca Arbezzano
 
Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)Future Insights
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopAll Things Open
 
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음Covenant Ko
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlBecky Todd
 

La actualidad más candente (20)

From Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data TypesFrom Promises & async/await to Async Algebraic Data Types
From Promises & async/await to Async Algebraic Data Types
 
A Path to Point-Free JavaScript
A Path to Point-Free JavaScriptA Path to Point-Free JavaScript
A Path to Point-Free JavaScript
 
Some Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.jsSome Functional Programming in JavaScript and Ramda.js
Some Functional Programming in JavaScript and Ramda.js
 
FP in JS-Land
FP in JS-LandFP in JS-Land
FP in JS-Land
 
DO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSDO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCS
 
CPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPANCPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPAN
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?
 
21st Century CPAN Testing: CPANci
21st Century CPAN Testing: CPANci21st Century CPAN Testing: CPANci
21st Century CPAN Testing: CPANci
 
Git Real
Git RealGit Real
Git Real
 
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the FlowInspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
 
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your Life
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for Docker
 
ZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everything
 
Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)
 
Vagrant - PugMI
Vagrant - PugMIVagrant - PugMI
Vagrant - PugMI
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub Workshop
 
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Using visualization tools to access HDF data via OPeNDAP
Using visualization tools to access HDF data via OPeNDAP Using visualization tools to access HDF data via OPeNDAP
Using visualization tools to access HDF data via OPeNDAP
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version control
 

Similar a Tracking huge files with Git LFS - LinuxCon 2016

Deep dark-side of git: How git works internally
Deep dark-side of git: How git works internallyDeep dark-side of git: How git works internally
Deep dark-side of git: How git works internallySeongJae Park
 
Let the contribution begin
Let the contribution beginLet the contribution begin
Let the contribution beginSeongJae Park
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciAtlassian
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Git Aliases of the Gods!
Git Aliases of the Gods!Git Aliases of the Gods!
Git Aliases of the Gods!Atlassian
 
Breaking bad habits with GitLab CI
Breaking bad habits with GitLab CIBreaking bad habits with GitLab CI
Breaking bad habits with GitLab CIIvan Nemytchenko
 
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and JenkinsScalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkinsmhelmich
 
News from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 EuropeNews from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 Europemsohn
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainGit Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainLemi Orhan Ergin
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remotoRodrigo Branas
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICLa FeWeb
 
Git Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a BossGit Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a Bosstmacwilliam
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With GitHoffman Lab
 

Similar a Tracking huge files with Git LFS - LinuxCon 2016 (20)

Deep dark-side of git: How git works internally
Deep dark-side of git: How git works internallyDeep dark-side of git: How git works internally
Deep dark-side of git: How git works internally
 
Loading...git
Loading...gitLoading...git
Loading...git
 
Presentacion git
Presentacion gitPresentacion git
Presentacion git
 
Let the contribution begin
Let the contribution beginLet the contribution begin
Let the contribution begin
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Git in 5 Minutes
Git in 5 MinutesGit in 5 Minutes
Git in 5 Minutes
 
Git Aliases of the Gods!
Git Aliases of the Gods!Git Aliases of the Gods!
Git Aliases of the Gods!
 
Breaking bad habits with GitLab CI
Breaking bad habits with GitLab CIBreaking bad habits with GitLab CI
Breaking bad habits with GitLab CI
 
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and JenkinsScalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
 
git internals
git internalsgit internals
git internals
 
News from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 EuropeNews from Git in Eclipse - EclipseCon 2015 Europe
News from Git in Eclipse - EclipseCon 2015 Europe
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainGit Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it Again
 
How to use git without rage
How to use git without rageHow to use git without rage
How to use git without rage
 
Learning git
Learning gitLearning git
Learning git
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETIC
 
Git Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a BossGit Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a Boss
 
Git: be social
Git: be socialGit: be social
Git: be social
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With Git
 

Último

architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...OnePlan Solutions
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Chirag Panchal
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdfSelfMade bd
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acreskasambamuno
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In sowetokasambamuno
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Gáspár Nagy
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckMarc Lester
 

Último (20)

architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
^Clinic ^%[+27788225528*Abortion Pills For Sale In birch acres
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 

Tracking huge files with Git LFS - LinuxCon 2016