Comments (2)
This could also apply to package managers that write the current dependency state to a lock
file. Best practices is to commit this file to git to allow for identical dependency re-installs in different environments, but in most cases its completely different if dependencies are updated.
from git-sizer.
I am familiar with a repository named
metakgp/naraad
which overwrites a JSON file around 4-5 times a day. One can check the commit history to get more useful information.This causes json files to not just be big but it also causes to have too many big objects (non-binary) so it gets undetected.
For that repository, git-sizer
does in fact report (with 7 asterisks) the large total expanded size of blobs. This is the consequence of modifying large files many times.
I agree that this practice is not ideal, and it probably takes quite long to clone this repository or run git fsck
on it due to the large amount of time it takes to expand these files and compute their hashes.
Should such repositories be a problem? Personally it's a big headache for me to clone, and work on it, and I get around it by just cloning the tip.
I don't want to be the arbiter of Git best practice. As long as a repository is not causing serious problems for GitHub's services, it is not my business to tell users what to do.
I suggest that you express your concerns to the repository owner. Even better would be if you figure out a better way to structure the JSON files and the code that uses them, and submit a pull request.
This could also apply to package managers that write the current dependency state to a
lock
file. Best practices is to commit this file to git to allow for identical dependency re-installs in different environments, but in most cases its completely different if dependencies are updated.
It depends a lot on how big the lock
files get and how often they are updated. It's not a problem to update small- or medium-sized files relatively often. It's only if the file gets quite large, or the updates are extremely frequent, that it becomes problematic.
from git-sizer.
Related Issues (20)
- Question: How is logical file size calculated (Total size of files) HOT 1
- Obtain a list of biggest files in the repository. HOT 1
- Question: is there anyway I can get the count of files in particular language for example cuda statistics HOT 1
- Can it work on a bare repo? HOT 1
- MASTER Test HOT 1
- Get a top 10 of biggest checkouts in repository
- Approximating size shown at https://github.com/settings/repositories HOT 4
- Please update to Go 1.16 and also release for macOS ARM64 HOT 4
- Add suggestion on how to resolve spotted issues HOT 1
- "git-sizer --version" should show a version number. HOT 5
- `git-sizer --help` should exit with 0 HOT 1
- Add new convenience options like `--no-branches`, `--stash`, etc. HOT 1
- Release 1.4.0 Windows builds flagged as malicious by multiple vendors HOT 3
- error: couldn't open Git repository: git rev-parse failed: Unknown option: -C HOT 4
- Detect & report tmp_pack files HOT 1
- Idea: have `git-sizer` read some defaults from the gitconfig
- Impove NewObjectIter method HOT 2
- [Doc] Record Golang dependency in readme.
- git-sizer error: "running 'git config': exit status 129" HOT 7
- go get: installing executables with 'go get' in module mode is deprecated HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from git-sizer.