Gogs: Support for LFS

Created on 10 Jun 2015  路  67Comments  路  Source: gogs/gogs

It would be nice to have support for LFS repositories. It is GitHub tool to manage large files inside repository (like assets in web apps).

It isn't urgent, but I'm adding it here as I remember about it.

馃幆 feature

Most helpful comment

People, can you please use the thumbs up emoji on the issue report made by @hauleth and not write '+1' comments? We want this thread to be readable.

All 67 comments

+1

+1

+1

+1

+1 for this, specifically LFS on storage local to the GOGS instance.

+1

Please, note that #484 is talking about git-annex.

I know, LFS is planned to implement and replace git-annex.

Replace? are you sure? Git-annex is alive (https://git-annex.branchable.com/news/) and clearly more mature than git-lfs. I don't think that git-annex can be ignored (I don't know if gogs can make abstraction on the tool used to handle for large files).

Maybe abstraction is the better approach, but only LFS will be officially supported at current.

+1 for LFS

+1 because LFS is developed by github

+1 for LFS too, is a unique feature to have embed in the server,
why is this the issue closed still?
edit: scratch that, just saw its open,
might want to check the specification for the lfs server side

LFS support in Gogs would be great, of course!

However, git-annex can do so much more (e.g. it's better at distributed storage, tracking backups and archives, encryption support, dropbox-like behavior), and it'd really be too bad if it gets passed over entirely...

@ellis, they both offer different things, git-annex is more focused on the personal sync style, while it also works, it adds a whole new set of functions, while lfs is better focused for projects and integrates seamlessly with git,

+1 sound like good this

@ellis i think its important that gogs uses the LFS implementation so that its agnostic between the LFS support that github and bitbucket offers. This helps because it ensures interoperability and no locking.
Maybe later it can be extended of course as a separate type of LFS, but i feel its important to have a interoperable base initially.

Having said that. Yeah LGTM on this.

+1 would be great for unreal engine 4 projects which often have massive binaries artists work on.

+1 would love to see lfs integrated into gogs

+1 any news?

+1 as well

+1

LFS would soon become the standard . IMHO - The faster GOGS will support it - the faster it can grow .

Yeah, LFS is needed. This is a feature right now that keeps us from moving from gitlab to gogs.

+5

I think GitHub has a reference implementation of a lfs-server written in
golang that we could fork and use (without having a separate process :clap:)

That would be really handy. Do you have any links to said lfs-server?

EDIT: Nvm, found something - https://github.com/cloudmazing/lfs-server-go

EDIT2: Seems it's lacking features. Maybe it's time for me to learn golang and contribute.

That sounds more like it? https://github.com/git-lfs/lfs-test-server

LFS Test Server is an example server that implements the Git LFS API. It is intended to be used for testing the Git LFS client and is not in a production ready state.

LFS Test Server is written in Go, with pre-compiled binaries available for Mac, Windows, Linux, and FreeBSD.

Could be a decent starting point.

Havn't checked the license, but GitLab has a fully working implementation.
_That_ is worth a look :wink:

Gitlab has working "ruby" implementation - it's no use if it's still needs to be rewritten. We were looking for go version of server.

I think the approach @flipswitchingmonkey is proposing is the way to go. The git access library Gogs is using has to be aware about LFS instead of Gogs directly accessing the LFS API https://github.com/git-lfs/lfs-test-server

The guys at github are acually inviting to raise request on their Golang packages what library needs there would be https://groups.google.com/d/msg/golang-nuts/-AOKpn5HLL0/32zNnU9rDgAJ

+1

+1

+1

People, can you please use the thumbs up emoji on the issue report made by @hauleth and not write '+1' comments? We want this thread to be readable.

I implemented LFS support in #3868. Testing and feedback would be appreciated!

When is this going to be available in the Docker builds?

My PR received significant review and further development in go-gitea#122.
The additional changes would need to be backported to Gogs to get functional parity (UI support, etc.).
I will switch my upstream to Gitea because of the more open and collaborative development environment. Therefore it will largely depend on feedback from Gogs devs if I will invest any more effort in #3868. I'd welcome anyone who wants take over backporting/rebasing my feature branch from Gitea for Gogs.

git-annex and LFS are not exchangeable features. They do things very differently, with git-annex being much more powerful than git lfs. And no, lfs is not set to become the 'standard'.

+1

LFS is "standard" now. It is shipped with git for windows too

how can i migrate my git lfs repo into gogs from gitlab ? i have to use git-annex ?

@aletessier hi, currently migrate with git-lfs to Gogs is not supported.

+1 :/

Hi. Any updates on LFS? Is it in the roadmap? Looking forward to use it.

@tvvignesh Gitea has support for LFS since version 1.1.

+1

First message 4 year ago.. and LFS not added? Sorry, i liked Gogs, but i really needed used Gitea...

Is this feature on the roadmap or not really?

@0maxxam0 has funded $15.00 to this issue.


+1

It's 4 years later. I'm not going to wait for this. Bye.

I switched to Gitea and LFS works just fine with it. It's a fork I believe so very similar to Gogs. I recommend checking it out.

+1

@unknwon Any plan to include LFS support? Not having LFS in Gogs begins to be a great disadvantage.
Track a lot of binaries using Git generates huge repositories. 馃槄

What about this PR: #3868 (@fabian-z )

@RDCH106 Yeah... you're absolutely right. FYI, #3868 was auto-closed because of the removal of the develop branch. I'll pick up that PR once I start working on this feature.

@unknwon
Will this feature be present for the next version?

(Thanks for the information of your last answer)

@RDCH106 Will be included when release 0.12 as experimental feature :)

The ticket was moved to 0.13 milestone, will be included also as an experimental feature in 0.12 release?

@RDCH106 Sorry missed it! Was planning mostly bug and security fixes for 0.12.

What's the story with LFS to date? Did it make it into 0.12?

0.12 hasn't been released AFAIK.

HTTP support has been added to the master, so far is a very preliminary version. I'm able to follow https://github.com/git-lfs/git-lfs/wiki/Installation and https://github.com/git-lfs/git-lfs/wiki/Tutorial to push and pull LFS objects in my test repository.

I will continue iterating LFS support in the coming weeks. Things on my plan before 0.12 release:

  1. Request ID for easier debugging
  2. Option to only enable this feature by admin on repo-basis
  3. Size limit on repo-basis
  4. Docs

The feature is now available on https://try.gogs.io for testing (keep in mind it is a test instance, and things get deleted without any notice)

@andreas-jonsson has funded $2.00 to this issue.


Does anyone have a update on this?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Overv picture Overv  路  47Comments

mohsenk picture mohsenk  路  49Comments

lommes picture lommes  路  45Comments

JokerQyou picture JokerQyou  路  32Comments

strk picture strk  路  41Comments