Live data from Hacker News

Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

news.ycombinator.com

41–50 of 59 posts

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#41

Really dumb question while I'm trying to decide whether to use something like git vs. CRDTs to handle version control for user changes made in an app I'm working on: why do we even use git anymore for source code version control if we want behavior like this? Nobody likes merge conflicts. We all want versioning. So long as we have versions at all why isn't the ideal interface for developing in teams something more li…

In real time collaboration, like Google docs, merge conflicts can be avoided because you see them play out live, and can react to them.

In an offline collaboration system merge conflicts are a feature, they bring attention to inconsistencies you might otherwise overlook.

This has very little to do with how the data is stored.

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#43
Excited to see more stuff in this space. I've previously done some investigation into the various options [0]

Questions:

- Why have your own pre-conditions rather than relying on Github's built-in conditions and Status?

Ideas

- Autosquash fixup commits. I like to have multi-commit PRs that get merged into main. I'd like to leave my fixup commits up to make it easier for reviewers to see fixes and then have the tool doing the merge fix them up for me rather than doing yet another CI run for the fixups

- What about AzDO's semi-linear rebase option? This rebases a branch and then creates a merge-commit, keeping history linear

[0] https://epage.github.io/dev/submit-queue/

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#44
Congratulations on the launch. Great idea and definitely agree that this is a problem at a lot of companies.

Although I am curious about if there is enough market for this product. Would love to hear back any market research you guys have done before. Thanks! :)

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#45
Started making something similar then joined a new company (Brex) and we use https://github.com/bors-ng/bors-ng which is open source and works great. It merges huge batches of PRs and can automatically bisect them if they fail CI checks to find divide and conquer and merge in fewest batches possible. It’s written in Elixir.

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#46

Really dumb question while I'm trying to decide whether to use something like git vs. CRDTs to handle version control for user changes made in an app I'm working on: why do we even use git anymore for source code version control if we want behavior like this? Nobody likes merge conflicts. We all want versioning. So long as we have versions at all why isn't the ideal interface for developing in teams something more li…

Fork => Modify => Merge.

Suppose you have a 100 page gdoc. You start editing one paragraph per page, and voila, everything is fine. Casual edits are consistent "in context".

However, if you start editing on page 1, then skip to page 100 and go back to page 50, then it's possible that while "there was no conflict" (people weren't editing the same section of the doc at the same time), however, the document was in a "semantically inconsistent state" while you were making your edits (ie: someone trying to "compile" your doc in between the beginning and conclusion of your changes would have had a logic error until you'd made that final edit).

Git (and branching, as you're suggesting) allows you to select the next "actual" future from many "plausible" futures.

Think of A.C.I.D. You want your changes to be atomic (gdoc edits are not atomic across multiple "pages"), you want your changes to be durable (gdocs may/may not hit your definition for durability if changes can be made to the lines arbitrarily), consistency and isolation are also compromised with the free-flowing editing style you're describing.

Imagine dumping a python script into gdocs, pulling down the contents, and running it through a local python interpreter.

You could get pretty far with low amounts of edits and using the "comment" feature liberally, but once you try and "propose a refactor" you immediately need to "fork the universe" and have two (or more) semantically distinct representations of the document, or some way of queuing "multi-page edits" such that each could come in ... some sort of "merge queue" .... ;-)

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#47
This is the one true way to do things, of course (https://graydon2.dreamwidth.org/1597.html), but besides the "why not use bors/homu" question - what prevents GitHub or GitLab from building this in?

I hope we get to a world one day where a standard feature of all pull-request-ish platforms is that merges end up on a task queue, CI runs on the merge, and the merge only happens if CI passes. It doesn't seem like a terribly difficult feature to build in and the potential UX seems much nicer - e.g., just like there's "squash and merge" and "rebase and merge" buttons and the repo admin can require them over normal merges, there could be an "enqueue for merge" / "enqueue for rebase" / etc. button.

(Maybe your goal is to get us to that world via acquisition, which would be great!)

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#48
post #43

Excited to see more stuff in this space. I've previously done some investigation into the various options [0] Questions: - Why have your own pre-conditions rather than relying on Github's built-in conditions and Status? Ideas - Autosquash fixup commits. I like to have multi-commit PRs that get merged into main. I'd like to leave my fixup commits up to make it easier for reviewers to see fixes and then have the tool d…

Wow this is amazing. May be you should add MergeQueue to your list :)

- Yeh we define our own pre-conditions because some developers also use it for non-protected branches. The default picks up the Github build-in preconditions and allows you overwrite. - Can you clarify your fixup commit suggestion? So there's typically an option to squash and merge when merging the PR, but sounds like you want to maintain some of those commits and squash the rest? - Just read up the AzDO's semi-linear rebase.Yeh MQ should be able to do that as well. You can specify different config for rebasing the branch and for merging the PR.

Curious since you have done this much research - have you built or used any of the merge queues in your company? Would love to chat more. ankit[at]mergequeue[dot]com

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#49
post #44

Congratulations on the launch. Great idea and definitely agree that this is a problem at a lot of companies. Although I am curious about if there is enough market for this product. Would love to hear back any market research you guys have done before. Thanks! :)

Are you worried about market size of developer productivity tools in general or just about MQ? We intend to expand into other dev productivity capabilities adjacent to MQ. Our exploration into Flaky test management is also a step in that direction.

Re: Launch HN: MergeQueue (YC S21) – Automate rebasing and merging for your codebase

#50
post #47

This is the one true way to do things, of course ( https://graydon2.dreamwidth.org/1597.html ), but besides the "why not use bors/homu" question - what prevents GitHub or GitLab from building this in? I hope we get to a world one day where a standard feature of all pull-request-ish platforms is that merges end up on a task queue, CI runs on the merge, and the merge only happens if CI passes. It doesn't seem like a te…

That's a great question. FWIW Gitlab does have merge train with similar baseline functionality. There's two part answer to your question: - even though it's trivial from the face of it, since we specialize in merging process, we are able to provide much more complex workflows, such as batch mode. - starting with MQ, our goal is continue focusing in engineering productivity and build as we understand the use cases better. We imagine a world where every team has the toolset that is built internally by developer productivity teams at the likes of Google, FB. We have to still start somewhere right :)
Post reply on HN