Live data from Hacker News

Show HN: Sturdy – online-first version control focused on collaboration

getsturdy.com

11–20 of 43 posts

Re: Show HN: Sturdy – online-first version control focused on collaboration

#11
post #4

Earlier quoted context omitted.

Yes, there are a handful! We have some teams using Sturdy and GitHub side-by side at the moment for the projects, and some that are running standalone Sturdy for some newer projects. And of course, at Sturdy we've been using Sturdy to build Sturdy since day 1.

Good to see that you're dogfooding you're own software. As a budding git enthusiast, I have a few questions. How are things like merge conflicts handled? Does sturdy support rebasing or some equivalent? Is there an equivalent to hooks? I sometimes deplug when I want to get in the flow, how well does sturdy perform offline (no internet connection)?

Sturdy handles conflicts in pretty much the same way as Git does ( https://getsturdy.com/features/conflicts ). The history in Sturdy is linear, and we’re doing the equivalent of a rebase behind the scenes when changes are shared from a workspace that’s behind the trunk. I’ve been dreaming about creating contextually aware merging, so that for example adding two methods at the end of a class doesn’t conflict, but we’re not there yet!

There is no hooks, in what use case are you using hooks today? I haven’t been using hooks before, so it would be great if you wanted to share your experience of how you’ve been using them.

Sturdy works fine when offline, and resumes the syncing when the connection is restored. The actions that are driven from the site, such as creating a new workspace, are not available when offline however. A full copy of the code is always fully downloaded to the workstation, so that you always can code away!

Re: Show HN: Sturdy – online-first version control focused on collaboration

#12
I think this is very interesting. I'm skeptical about it because my approach to collaboration is so much wrapped up in the idea of _write code alone, review together_ but, as we've learned elsewhere in the industry, tighter loops (through continuous integration) have many benefits. Specifically, this approach seems much more conducive to enabling developers to create atomic commits... which I'm a big fan of.

That said, I'm curious about 2 things. First, git.live are tackling the same problem but _on top of_ git: do you think that there's going to be a bigger challenge for you because you're changing process _and_ technology, or do you think the fact that it's built from the ground up will make it easier (especially given how painful git can be)? I could see my own team being open to something like git.live (new process), but very skeptical about Sturdy (new technology). I'm curious how you intend to tackle that skepticism from developers.

Secondly, the homepage doesn't mention the fact that you _can_ integrate back into GitHub to support existing CI/CD integrations. That is something very important to me, and I didn't realise it was possible until looking at the help docs for GitHub migration[1]. Can you talk more about your vision for Continuous Integration with Sturdy? I've just noticed that it's mentioned as coming soon in the "Solutions" drop-down.

I'm going to give Sturdy a shot (using the GitHub integration to benefit from existing CI/CD) but a long term switch would be heavily dependent upon your vision for CI/CD! I come from a world where 10+ min test runs are acceptable, and so the slow turnaround of the Pull Request model (from write code to review) is necessary -- I'd love to hear how you think this can be done in (near) realtime.

Thanks,

[1] https://getsturdy.com/features/migrate-from-github

Re: Show HN: Sturdy – online-first version control focused on collaboration

#13
> Sturdy live-streams everyone's code, so that you can give and take instant feedback.

For those who thought pair programming wasn't invasive enough?

I'm sure there are people and teams for whom this will work. But it sounds like a nightmare to me. Especially when learning something new, working through a tough problem, or simply having an off day, the last thing I want is to know my team is looking over my shoulder at everything I am doing.

Re: Show HN: Sturdy – online-first version control focused on collaboration

#14
post #11

Earlier quoted context omitted.

Good to see that you're dogfooding you're own software. As a budding git enthusiast, I have a few questions. How are things like merge conflicts handled? Does sturdy support rebasing or some equivalent? Is there an equivalent to hooks? I sometimes deplug when I want to get in the flow, how well does sturdy perform offline (no internet connection)?

Sturdy handles conflicts in pretty much the same way as Git does ( https://getsturdy.com/features/conflicts ). The history in Sturdy is linear, and we’re doing the equivalent of a rebase behind the scenes when changes are shared from a workspace that’s behind the trunk. I’ve been dreaming about creating contextually aware merging, so that for example adding two methods at the end of a class doesn’t conflict, but we’r…

> A full copy of the code is always fully downloaded to the workstation, so that you always can code away!

Is this a full copy of just the current code or full history like git? I often use info from old commits or git blame to understand why a piece of code is written a certain way.

Regarding hooks: my team uses hooks to start ci. GitHub bots are built on top of hooks. I think a lot of people would consider it an essential feature.

Re: Show HN: Sturdy – online-first version control focused on collaboration

#15

I think this is very interesting. I'm skeptical about it because my approach to collaboration is so much wrapped up in the idea of _write code alone, review together_ but, as we've learned elsewhere in the industry, tighter loops (through continuous integration) have many benefits. Specifically, this approach seems much more conducive to enabling developers to create atomic commits... which I'm a big fan of. That sai…

Building on top of existing technologies makes adoption easier in the short run, but would heavily restrict our options for what's possible in the long run, and we're trying to balance short term gains with the long term vision. Building on top of Git means that you have to drag all of Git's legacy with you, with all of its warts and pitfalls. Git is the only tool that I've seen developers regularly have to Google/ask "how to X", compared to tools like your IDE where the workflow is much more discoverable, and self-explanatory.

As you saw, we are compatible with Git, and even support using both Sturdy and GitHub at the same time. Which we're hoping moves us close to only providing a new process for the sceptics, while you incrementally can use more and more of the new technology.

Developers are right to be sceptic, we're tackling this by staying open, both with the development process behind the scenes, and making Sturdy easy to test out and migrate to and away from.

Great that you spotted the GitHub integration, we should really highlight it more! For CI/CD, except for supporting it natively, we're also exploring automatically executing tests and linters at set intervals, or when new changes are detected. So that the test results are as up-to-date as possible, and that every time you come back from a meeting or a short break, that you would have new results available.

1: https://getsturdy.com/blog/2021-08-18-unbreaking-code-collab...

Re: Show HN: Sturdy – online-first version control focused on collaboration

#16
post #11

Earlier quoted context omitted.

Sturdy handles conflicts in pretty much the same way as Git does ( https://getsturdy.com/features/conflicts ). The history in Sturdy is linear, and we’re doing the equivalent of a rebase behind the scenes when changes are shared from a workspace that’s behind the trunk. I’ve been dreaming about creating contextually aware merging, so that for example adding two methods at the end of a class doesn’t conflict, but we’r…

> A full copy of the code is always fully downloaded to the workstation, so that you always can code away! Is this a full copy of just the current code or full history like git? I often use info from old commits or git blame to understand why a piece of code is written a certain way. Regarding hooks: my team uses hooks to start ci. GitHub bots are built on top of hooks. I think a lot of people would consider it an es…

Just the current code for now.

Yes, we're going to support webhooks and also on integrating directly with CI/CD-providers. Today it's possible to use Sturdy and GitHub side-by-side, with changes on Sturdy being mirrored to GitHub. So you can use GitHub as kind of a proxy, with the added benefit that you don't have to migrate the webhook configurations to use Sturdy.

In my previous reply I though you made a reference to Git Hooks [1], which I interpreted as a different need. My bad!

1: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

Re: Show HN: Sturdy – online-first version control focused on collaboration

#17

> Sturdy live-streams everyone's code, so that you can give and take instant feedback. For those who thought pair programming wasn't invasive enough? I'm sure there are people and teams for whom this will work. But it sounds like a nightmare to me. Especially when learning something new, working through a tough problem, or simply having an off day, the last thing I want is to know my team is looking over my shoulder…

Thanks for this feedback (Co-founder here)! As somebody who generally codes better without people “looking over my shoulder” and having used our own tool for 9 months I’d say it feels very different from that.

Our goal is to normalize sharing of code that looks draft-y, before any emotions have been invested in the work. We want to change the entire vibe of working together on code. Instead of feeling like submitting homework (Pull Requests), we go for a Figma/Google Docs style of working together. You could sketch on something in a corner (we call them workspaces) and only seek feedback if/when it makes sense.

When coding doesn’t feel like homework, figuring stuff also feels less intimidating IMO. For example yesterday I was making a function more testable by injecting a function as an argument. Gustav spotted that and he knew that there was an interface that could be injected instead. With one operation he got a copy of my code and typed an alternative on his computer. That code shows up as suggestions for me that I could take with one click.

Re: Show HN: Sturdy – online-first version control focused on collaboration

#20
post #19

Is there an offline mode? Git's non-centralized nature doesn't come into play for me often, but when it does I really appreciate it, like coding on a plane.

The "checkout" is downloaded in it's entirety, and you can still code away while offline.

What you can't do, at least today, is to jump between different workspaces, or prepare multiple different workspaces to be shared once you're back online.

I was on a 3 hour train ride just last week, with only intermittent connectivity available. Sturdy being online-first did not disrupt me nearly as much as than trying to hunt for documentation for the dependency that I was debugging.

Post reply on HN