Atemu

joined 4 years ago
[–] [email protected] 2 points 7 months ago

The only difference between a *rebase-merge and a rebase is whether main is reset to it or not. If you kept the main branch label on D and added a feature branch label on G', that would be what @[email protected] meant.

[–] [email protected] 0 points 7 months ago (2 children)

You should IMO always do this when putting your work on a shared branch

No. You should never squash as a rule unless your entire team can't be bothered to use git correctly and in that case it's a workaround for that problem, not a generally good policy.

Automatic squashes make it impossible to split commit into logical units of work. It reduces every feature branch into a single commit which is quite stupid.
If you ever needed to look at a list of feature branch changes with one feature branch per line for some reason, the correct tool to use is a first-parent log. In a proper git history, that will show you all the merge commits on the main branch; one per feature branch; as if you had squashed.

Rebase "merges" are similarly stupid: You lose the entire notion of what happened together as a unit of work; what was part of the same feature branch and what wasn't. Merge commits denote the end of a feature branch and together with the merge base you can always determine what was committed as part of which feature branch.

[–] [email protected] 1 points 7 months ago

...or you simply rebase the subset of commits of your branch onto the rewritten branch. That's like 10 simple button presses in magit.

[–] [email protected] 2 points 7 months ago

Because when debugging, you typically don't care about the details of wip, some more stuff, Merge remote-tracking branch 'origin/master', almost working, Merge remote-tracking branch 'origin/master', fix some tests etc. and would rather follow logical steps being taken in order with descriptive messages such as component: refactor xyz in preparation for feature, component: add do_foo(), component: implement feature using do_foo() etc.

[–] [email protected] 4 points 7 months ago (3 children)

For merge you end up with this nonsense of mixed commits and merge commits like A->D->B->B’->E->F->C->C’ where the ones with the apostrophe are merge commits.

Your notation does not make sense. You're representing a multi-dimensional thing in one dimension. Of course it's a mess if you do that.

Your example is also missing a crucial fact required when reasoning about merges: The merge base.
Typically a branch is "branched off" from some commit M. D's and A's parent would be M (though there could be any amount of commits between A and M). Since A is "on the main branch", you can conclude that D is part of a "patch branch". It's quite clear if you don't omit this fact.

I also don't understand why your example would have multiple merges.

Here's my example of a main branch with a patch branch; in 2D because merges can't properly be represented in one dimension:

M - A - B - C - C'
  \           /
    D - E - F

The final code ought to look the same, but now if you’re debugging you can’t separate the feature patch from the main path code to see which part was at fault.

If you use a feature branch workflow and your main branch is merged into, you typically want to use first-parent bisects. They're much faster too.

[–] [email protected] 5 points 7 months ago (4 children)

Merge is not the issue here, rebase would do the same.

[–] [email protected] 2 points 7 months ago (1 children)

By the fact that none of the apps I use day-to-day on my Android phone have viable alternatives on non-Android Linux.

I'd have to run Android inside a container on the mobile Linux which isn't the best experience and if I need to have Android running anyways, might aswell use regular android.

While it'd be cool to have, I don't really need a proper freedesktop userspace on my phone if I'm honest.

Android is also simply leagues ahead in mobile UI things.

[–] [email protected] 5 points 7 months ago (1 children)

Exodus shows all permissions the app could use or request. You have denied all of those.

[–] [email protected] 12 points 7 months ago (3 children)

Non-android mobile Linux is not mature enough yet.

[–] [email protected] 2 points 7 months ago

Mine stopped working.

[–] [email protected] -4 points 7 months ago (1 children)

To the person receiving the money, it is worth it. Else they wouldn't be doing it.

[–] [email protected] -4 points 7 months ago

Yes and that's precisely the point. You can make the decision not to pay and there are good reasons to do so (I do so too) but you must recognise that someone is still not getting paid for their work.

view more: ‹ prev next ›