Comments (9)
I'm not sure I really expect this issue to be fixed per se, but I figure it should be handled with more grace. If the commit and patch can be broken up into pages easily that would be spectacular (possibly better than one large page of diffs anyhow). If the patch is dropped and just the commit message is displayed that would be understandable. Pretty much anything other than the current behavior.
from gitlist.
This means that PHP exceeded it's memory limit, which is expected with huge repositories. Try increasing some MBs in your php.ini.
from gitlist.
While a completely reasonable response on your part, and one that takes away the fire from my raised issue, I must ask, is it reasonable for gitlist to be using more than 128MB of memory when loading a commit?
from gitlist.
I don't see pagination (like we do in the commit history) as an alternative for the commit details page. If the commit is huge, what can be done to show properly?
from gitlist.
hmm... apparently 512M wasn't enough
Just to put numbers on this:
$ git show HEAD^ | wc
2123294 9608479 77890168
And for people like me who won't remember what the output of wc is later:
2123294 -- lines
9608479 -- words
77890168 -- bytes/characters
If I am not mistaken, the bulk of that count is pretty much entirely the patch/diff. I was thinking pagination would work between the seperate patches would work (keeping the commit message on top, so prev/next would scroll through the patches). This assumes that someone isn't checking in a single patch of that size, but I figure that's a safe assumption (binary files might cause a problem with that assumption maybe).
If it doesn't work on your mind, that's fine. Like I said, if the page comes up and it prints the commit message and a statement of "there are too many differences to display" or "the patch is too large to display"
Perhaps someone else might have a better idea. How does GitWeb handle this? I don't have GitWeb installed so I don't know.
from gitlist.
Well, i believe that implementing a behavior that identifies the size of the commit and decides t paginate or not is the best course of action. Displaying "too large to display" is a major turn off. This is on the TODO! :)
from gitlist.
I figured this case was an outlier but probably one not considered originally. Thanks, sir.
from gitlist.
Github handles this by only showing the file-list and not the actual diffs.
And when just at the limit, only showing some files my browser freezes for a moment, so not only will it crash php but also the browser. We cant handle everything ;)
One thing that might by interesting though, is to show the diff on command using Ajax (when the whole diff is to big).
When some presses view diff , the file diff get loaded on demand, idea?
from gitlist.
That's probably a much better solution, if the diff has more than X files, display only the names and lazy-load the damn thing.
I have created a more specific and detailed issue here: #161
from gitlist.
Related Issues (20)
- Better support for repository depth
- Php compatability HOT 1
- Gave up on installing this... HOT 3
- Search for repository in subdirectories HOT 1
- Uncaught Error: Cannot assign string to property Symfony\Component\HttpKernel\Debug\FileLinkFormatter::$fileLinkFormat of type array|false HOT 2
- 404 on all assets HOT 11
- Hello, I use Gitlist 1.1.1 and I want to know if I respect the BSD-2-Clause HOT 2
- git clone over https does not work
- Support needed on installing HOT 3
- git_path from config.yml not used
- Can't create development environment HOT 1
- Can't list repositories HOT 2
- PHP 8.2 => 500 Internal Server Error, setLastErrors must be of type array, bool given HOT 3
- default_repository_dir from config.yml don't work HOT 2
- public/.htaccess is missing HOT 2
- automacao
- Openening a file containing the name of a branch or tag throws a CommandException
- Display Issue and Content Not Found Problem HOT 1
- Problem when adding gits
- pump_local_HMI_X2_V3.0.git HOT 1
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 gitlist.