StreakyCobra / gws

Colorful KISS helper for git workspaces
https://streakycobra.github.io/gws/
MIT License
235 stars 22 forks source link

Add gws to git-extras? #44

Closed bittner closed 6 years ago

bittner commented 6 years ago

We're using gws for our daily business, and it works out fine as an alternative to Git submodules. Personally, I see it as a bit of a downside, though, that it needs to be included (as in version controlled) into our code base.

As I'm installing the magnificent git-extras Git plugin collection anyway on my developer machine, which is easy to install system-wide, I was wondering if you wanted to evaluate adding gws to the feature set of git-extras.

Any preference?

Disclaimer

Note, that I understand that requests like that are very often received as offence. This is not intended, though. It's more about ease of use for installation and upgrades. Sovereignty of project maintenance is the other side of the coin, that is true.

StreakyCobra commented 6 years ago

Hi Peter,

Note: The current maintainer is Emil Lundberg (@emlun), so I'll give my opinion as the original author and "owner" of the project's repository only.

I am now a simple user of gws, and like you said, it works fine for my daily business as well. This tool certainly deserves some love to fix existing issues and add new features, but sadly I don't have, and didn't had, enough time for this. So I "kind of" abandoned it until emlun took over as maintainer. He is now maintaining it alive, but (correct me if I'm wrong here :wink:) more as a chore than as a vocation. So yes, if people at git-extras are willing to take over, at the cost of maintaining it, I would love that :-)

But emlun's point of view as maintainer has to be taken into account in all this :-)

emlun commented 6 years ago

Hi!

Thanks for the suggestion! I'm not familiar with git-extras, but I'll take a look when I have some time (which is definitely not within the next 2 weeks, at least). If you could give me a quick summary of what it is and what makes it good, that'd be great.

@StreakyCobra Well, it started out as a vocation and became a chore, as I'm sure was the case for you as well... :) I've lately been seriously considering getting started on a rewrite in Rust, though, mostly because I'm learning the language and this might make a good project for it. With that done it would also, hopefully, be less of a chore to maintain it... :)

StreakyCobra commented 6 years ago

I'm sure was the case for you as well

Indeed, thanks to bash :see_no_evil:

I've lately been seriously considering getting started on a rewrite in Rust

I also started to rewrite it in rust 2 years ago :rofl: But I was too ambitious. I wrote the part handling the workspaces with yaml files, with also the possibility to have a user config file, then I wanted it to be tool independent (git, hg, etc), and all this with multiprocessing for speeding up the execution. I should have started simpler… so if you f you want an advice, don't try to over-engineer it, start simple and if it works, extend it :joy:

emlun commented 6 years ago

Cool! Yeah, what I was thinking was to keep it as simple as possible, ideally eliminating the cache file and making it completely stateless too. I might take a look at Prevy if/when I get around to starting out on it.

bittner commented 6 years ago

@emlun git-extras is simply a collection of Git plugins. In other words, you install it (e.g. via sudo apt-get install git-extras) and get a bunch of extra Git commands that speed you up with Git and make your life easier.

The project README has a link to an introductory video. Take a look!

Blurb

The nice thing about this project is not only that it makes installing and "configuring" Git a breeze, but also that it's so popular and is somewhat a "de-facto standard" (or becoming one). So, you can stop reinventing your Git speedup setup over and over again when setting up a new developer machine.

gws would become a new Git command, maybe git-ws, which would be used like git ws (or so), I guess.

StreakyCobra commented 6 years ago

ideally eliminating the cache file and making it completely stateless too

Yeah, the cache is only required now because the parsing is slow IIRC.

bittner commented 6 years ago

If you want to proceed I'd suggest to open an issue at tj/git-extras to discuss a potential transition.

emlun commented 6 years ago

@bittner Thanks, I'll get back to this after next week.

emlun commented 6 years ago

Hi again!

I see it as a bit of a downside, though, that it needs to be included (as in version controlled) into our code base

@bittner I don't quite get what you mean here. What code base do you need to include gws into?

bittner commented 6 years ago

As we use gws we have to add it to our code base, not as a dependency but verbatim as source code. EDIT: With git-extras this is a different story: We would only mention this in the README or we handle it as a dependency somehow. Also, every developer may have it installed by default along with Git, and updates are handled by the system's package manager.

Hence, we have to maintain your code. If it gets updated, fixed, whatever, we have to do that too. - @emlun More clear now?

emlun commented 6 years ago

Oh, I had assumed you'd install gws also via the system's package manager. What distribution(s) are you using?

I feel like gws is probably a bit too big and complex to be a good fit for inclusion in git-extras. Not only in terms of sheer code volume, but also in how the gws README is almost as big as the entire commands page in git-extras. gws also keeps its own configuration and state externally from git, and unlike the majority of git-extras it operates on a workspace of repositories instead of inside a single repository.

Thank you for the suggestion - I can see the appeal, but it doesn't seem to me like a good fit. If there's something else we can do to make your system administration easier, you're welcome to open a new issue.