New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem with large repository #279
Comments
This one is really huge... somewhat like the linux source code |
Git itself has no problem with that repository size. And Gitlab seems to have at least one 18GB repository |
As far as I know, and could be wrong, GitLab uses git-shell which calls |
I tested git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git and pushing that to gogs also failed. |
Linux source was reported failed here before: #121 |
I think I found the problem, but it will probably take some time to fix it. |
@nuss-justin you're blowing up the work! LOL |
That's what I call 'boredom at work/home' :-) |
Ok, it seems like hashing the sha1 hashes for the offsetValues map is really slow.
The 2. one would be really great I think, but it would complicate everything and take more disk space, because now commits, diffs, etc. would involve the database and we would have to rewrite some parts of the current code, that depends on the current structs for commits, etc. Also every commit would have to be inserted in the database. On the other side, having everything inside the database would make it much faster. With indexes (and good database settings) access would be really fast. Another way to do 2. would be to write another git module, that wraps the current gogits/git module and caches everything in the database, for faster accesses. (So it would first try to find something in the database and if it doesn't find anything it would fetch it from disk and then cache it in the database) If you have other ideas, I'm open for everything :-) |
Cache system is on the plan, but do not PR on this please until we release 0.5. |
Be reassured, I don't plan to start something big like this without discussing it with you ^^ |
Haha, you're good! |
With new git-shell implementation, I've tested linux source code, takes 5s~12s to load page, would you mind to try |
Now I managed to push linux.git into gogs. But it took 3.5h! Most of the time gogs serv was calling git cat-file, maybe in modules/git/repo_commit.go |
I no longer had any trouble with our in-house ~2GB git repo. Thanks! |
Is it happen when you push through SSH? Or HTTPS? |
SSH |
I think it would better to keep this issue open, to remind me. :) |
Tested with current dev version (0.5.5.1014 Beta ). Trying to push linux github.com/torvalds/linux to gogs.
Server is a Digitalocean 1 core / 1G droplet. |
@tobyzxj Using HTTP or SSH? |
@unknwon SSH! |
I'd like to add another data point: We maintain a 1.2 GB repository with less than 100 commits (manually tracking a vendor). A first push to Gogs 0.6.1 via https works, but trying to view the repository in the web interface afterwards results in a HTTP 500:
Only after we restart Gogs web, the error goes away. Subsequent (smaller) pushes seem to work without problem. How tags fit in this ( |
Everyone on this thread please checkout |
Tested with https://github.com/torvalds/linux with SSH as well. |
Close as fixed. |
Is it required to use SSH to fix this problem? We are having the same issue pushing 1.4GB repo with 1255 commits over http. |
Yes... |
We have a large repository (~2GB .git) with a bit under ~40k commits and over 30k files in the master branch. It cannot be pushed to an empty repository in gogs without errors. Unfortunately I cannot publish the repository as it is a commercial software product.
The text was updated successfully, but these errors were encountered: