Skip to content
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

Linux support #160

Closed
severin-lemaignan opened this issue Jun 4, 2016 · 27 comments
Closed

Linux support #160

severin-lemaignan opened this issue Jun 4, 2016 · 27 comments
Labels

Comments

@severin-lemaignan
Copy link

I'd love to play with this tool on Linux. Is any porting planned? What would be the main challenges for a port (I imagine the GUI toolkit being the likely biggest -- only? -- issue)?

@swisspol
Copy link
Contributor

swisspol commented Jun 4, 2016

GitUp is pretty much a 100% Mac app and is not portable. A complete rewrite is needed for another platform.

@swisspol swisspol closed this as completed Jun 4, 2016
@niutech
Copy link

niutech commented Sep 10, 2016

How about GNUstep? Is it possible to compile GitUp using it?

@swisspol
Copy link
Contributor

Someone could try but I doubt it.

@brylie
Copy link

brylie commented Sep 15, 2016

Hm, would the Electron platform help to make this a multi-platform tool?

@rudolf-adamkovic
Copy link
Contributor

@brylie Electron apps are slow.

@brylie
Copy link

brylie commented Sep 15, 2016

@salutis is there a benchmark for reference? What parts are slow?

@rudolf-adamkovic
Copy link
Contributor

@brylie JavaScript, HTML, and CSS add additional levels of abstraction.

@niutech
Copy link

niutech commented Sep 15, 2016

Electron is slow compared to native apps and they know it: electron/electron#5672. Most importantly, I cannot imagine how GitUp being an Obj-C app could be easily converted to a JS app.

@brylie
Copy link

brylie commented Sep 15, 2016

There are a lot of considerations when calling an application or framework slow.

This has much more to do with how individual Electron-based apps are written than it does Electron itself.
-- @mnquintana
electron/electron#5672 (comment)


you are assuming that the speed difference between native apps and Electron based apps is purely dependent on Electron itself. How the apps which run on Electron are designed and written has a huge impact on their performance.
@sedwards2009
electron/electron#5672 (comment)

@brylie
Copy link

brylie commented Sep 15, 2016

I am not trying to start a flame war here, as it was a simple suggestion for a multi-platform development framework. If there are some specific suggestions as to what parts of Electron are slow and how those parts would relate to GitUp, that might lead to a productive discussion.

GitUp looks really nice, and I think people would enjoy using it on other platforms.

By way of example, GitKraken, another Git GUI, is built with the Electron framework:
https://www.gitkraken.com/

GitKraken, however, is not open-source.

@swisspol
Copy link
Contributor

GitUp is not your average Git client, which just display a table of recent commits with a few branches drawn next to it, and therefore could be written in pretty much any language and toolkit and have acceptable performance.

For GitUp to be able to load and render the topology of an entire repo of 50,000 commits in less than one second, and let you navigate around this fast, it has to be highly optimized across the entire stack.

Electron would mean an 100 MB app instead of 5 MB, 10X slower, a UI that breaks many OX conventions, and let's not forget, a vastly more complicated and slower build system and write-run-debug development loop.

@brylie
Copy link

brylie commented Sep 16, 2016

We are missing the point here. What might be a path towards cross-platform support?

@swisspol
Copy link
Contributor

A rewrite.

@brylie
Copy link

brylie commented Sep 16, 2016

Point taken.

@swisspol
Copy link
Contributor

😉

@brylie
Copy link

brylie commented Sep 16, 2016

What technologies would be worth considering for multi-platform compatibility?

For example, it may be of value to consider the web platform:

@brodock
Copy link

brodock commented Feb 1, 2017

@brylie most probably QT... I guess it's the only "viable" alternative.

@wmertens
Copy link

I found gitup through the interview @swisspol did with The Changelog, and I seem to remember that the app internally uses GitUpKit, which was meant to be a better git library.

I took a look at it and I presume that the super-cool features of GitUp, namely undo/redo and all sorts of tree manipulations, are implemented there. It is written in ObjC, but that is cross-platform, right? So it is only the commit display and the UI that would definitely require a rewrite?

@wmertens
Copy link

Actually, I'm wrong :) GitUpKit also includes a lot of view code. So, yes, a full rewrite…

@brylie
Copy link

brylie commented Aug 25, 2017

Yeah. Unsubscribing due to the fact that Linux support is not likely.

@niutech
Copy link

niutech commented Aug 25, 2017

Not necessarily a full rewrite. Apart from GNUstep, there is a GTK+ binding for Objective-C - GTKKit and IUP (a portable native GUI) binding for Cocoa - IupCocoa.
Another way is to convert Obj-C to Swift using e.g. Swiftify and use a GTK+ binding for Swift - SwiftGtk.
Any volunteers?

@astubbs
Copy link

astubbs commented Nov 10, 2021

Anyone know a tool for Linux that has gitup's reflog viewer / navigator type functionality? I miss it :(

@wmertens
Copy link

@astubbs no reflog viewer but ungit is the closest I found. I have a pr in progress on there where eventually I hope to incorporate some of gitups ideas.

I'm also using libgit2 but encountering weird issues with diffs sometimes.

@KaKi87
Copy link

KaKi87 commented Nov 11, 2021

Hello there, some people talked about Electron, but I would like to suggest Tauri, which is a Rust-based alternative providing the same features but outputting small and fast apps.

@wmertens
Copy link

@KaKi87 getting very off-topic, but Tauri doesn't seem to include NodeJS, which would be necessary for many of these kinds of apps?

@KaKi87
Copy link

KaKi87 commented Nov 11, 2021

No, because Tauri provides many APIs, including filesystem, shell and HTTP features, which should be enough to manipulate local and remote git repositories.

@codymikol
Copy link

codymikol commented Dec 2, 2021

Working on this over here if anyone is still interested: https://github.com/codymikol/git-down , slowly but surely making progress.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

10 participants