• 11 Posts
  • 40 Comments
Joined 2 years ago
cake
Cake day: June 11th, 2023

help-circle



  • TortoiseGit.

    Through settings, I move the Show Log to the top context menu level, and it’s my entry point to every Git operation.

    I see a history tree to see and immediately understand commit and branch relationships and states. I can commit, show changes, diff, rebase interactive or not, push, fetch, switch, create branches and tags, squash and split commits, commit chunk-wise through “restet after commit”, … And everything from a repo overview.

    /edit: To add; other clients I tried never reached what I want from a UI/GUI, never reached TortoiseGit. Including IDE integrations where I’m already in the IDE; I prefer the separate better TortoiseGit.

    GitButler is interesting for it’s different approach, but when I tried it out the git auth didn’t remember my key password. (Since trying out jj I found out it may have been due to disabled OpenSSH Service.)



  • Enable squash commits. Each PR should be squashed to a single commit. This makes the master branch linear and simple. This ensures each individual commit on master has been reviewed and is in a working state.

    In non-minimal changesets, I would miss information/documentation about individual logical changes that make up the changeset. Commit separation that is useful for review will also be useful for history.

    I prefer a deliberate, rebase- and rewrite-heavy workflow with a semi-linear history. The linear history remains readable, while allowing sum-of-parts changesets/merges.

    It’s an investment, but I think it guides into good structuring and thoughts, and whenever you look at history, you have more than a squashed potential mess.

    Squash-on-merge is simpler to implement and justify, of course. Certainly much better than “never rebase, never rewrite, always merge”, which I am baffled some teams have no problem doing. The history tree quickly becomes unreadable.


  • While exploring solutions, I use f or ffto mean “follow-up/to-squash” and a to mean logically separate. Sometimes other (additional) short abbreviations to know where to move, squash, and edit the changes to.

    Other than maybe initial development until the first stable/usable version, these never persist, though. And even then, only if it’s not a collaborative project. If it is shared or collaborative, “Iterate on x” is preferable as a non-descriptive title.

    I guess my commit descriptions get better with project lifetime, not worse.













  • Discuss with your team management how to handle this.

    • Guard and test against breakage of the interfacing (it’s an investment, but necessary without other solutions)
    • Define requirements and actions you can stand by and reject for and and revert by
    • Whether they want to tackle it on their management level (talking to the other teams or up etc); agree on timelines, requirements, milestones, and failure conditions regarding this

    For this discussion collecting the impacts, in terms of labor cost, labor motivation, short and long term cost, repeated helping-out cost to your teams tasks, etc can underline significance.




  • Always Godot.

    Roblox is a closed, proprietary environment. Anything you learn will be within their environment by definition.

    If Godot feels too hard, look for simpler onboarding or tutorials for it, or explore existing open projects and make modifications to them to see and explore and learn how it works and how projects can be structured and designed.

    There’s other alternatives too. I would never go for Roblox.