6 ms·
Every time fossil comes up, I hear this same issue - "why is there no rebase?" And honestly, I've never been able to get this argument. It's a version manageme
by thunderbong 3d ago
Every time fossil comes up, I hear this same issue - "why is there no rebase?"
And honestly, I've never been able to get this argument. It's a version management system! It's supposed to maintain the history of what's been done, both good and bad. In fact, that's the whole point of a VCS, isn't it?
IMHO, if we want to show a different path than what's been actually taken for the codebase to reach where it is now, we might as well use a network drive to store the different versions. Why bother with a VCS then?
- ok_dad 3d agoYour definition of version control isn’t the same as mine, probably. Why even ask this? People have preferences and different beliefs.
- jiehong 3d agoHow about temporary commits locally, that then get squashed to ensure each build cleanly? Or secrets that shouldn’t have been committed? Maybe it what an ironical question ^^
- otherme123 3d agoI use both, and I prefer fossil. But my coworkers hate fossil because they can't fake their commits to make them look good. This is something I actually like about fossil: git has tools just to make things look pretty even if they can cause serious headaches (rebase), so users are skewed towards good looking timelines made with dirty commits then rearranged and squashed. OTOH fossil forces you to do your best but accept that sometimes you botch it, and have to mark a commit as "does not build". And I don't know why (forces you to review and cofirm?), but I had never commited unwanted stuff with fossil. But I had with git, probably by using the -am flag without realising a whole new dir is now in the scope.
- omnimus 3d agoThis sounds more like some elitism. Who cares how your coworkers got there, the point is to have good history at the origin. People don't need to see your dirty laundy, there is nothing interesting about it.
- otherme123 3d ago> People don't need to see your dirty laundy, there is nothing interesting about it. We disagree here, thus we prefer different tools. Nothing elitist here. I have seen git people throwing away repos and start again just to hide mistakes/pivoting and look "pro" and "right from the start". Or worse, I have seen people botching repos to others rewritting history just to make them look clean. I embrace mistakes, and sometimes they become useful later to replay train of thoughs.
- specialist 3d agoAgreed. In teams, only the history of what is committed to shared repo is important.
- rgoulter 3d agoThis prioritises accuracy/history of what happened, but this has significant disadvantages and practically no advantages (other than "accuracy of what happened". There are cases where you really do want an append-only leger, where tampering with history is malicious. -- But, generally, it's preferable to be presented with something tidy. From some other comment in this thread, I get the impression it's possible to re-present a set of changes in a clean/tidy way? That seems a better way of putting it. "You can still have a clean view into a set of changes while preserving an accurate history of what changed". What's hard to understand is why you'd be against the idea of tidy communication/presentation of changes in the first place.
- bigstrat2003 3d ago> but this has significant disadvantages and practically no advantages (other than "accuracy of what happened". ...which is a very big advantage, big enough that it outweighs the disadvantages in my opinion.
- ivell 3d agoSecrets that is committed anyway has to be assumed as compromised. So those secrets must be immediately changed. Removing it from history would help a bit, but is not a reliable mitigation.
- LVB 3d agoAnd this highlights my frustration. I don’t want to have this debate. The tool should allow its operator to set whatever level of strictness or purity they want for their project. Fossil already offers a million settings. Add another and make me turn on “dangerously-unsafe-rebase” to get the feature if need be.
- spit2wind 3d agoWhat you're wanting is against their philosophy. However, there is removal via shunning. There's also the query langauge to control the view. So, there's everything you need to do what you want. Obviously that's going to take some figuring out for queries and aliases. But it seems doable to me. Awkward, yes, but doable. AFAICT, they've provided a way to do things that go against their philosophy should anyone be inclined.
- ncphillips 3d agoHistory is immutable ONCE it’s merged. Prior to that, it’s malleable. We rewrite our branch history fairly often. I’ll take a big PR that’s ready, and rewrite the history in a way that tells clear story. This lets me stack PRs so it’s easier for coworkers to digest the work. It hides the messy reality of how it was constructed. It lets the development process follow evolutionary design, without review being miserable at the end of the day. This also makes git-blame 6 months later way more useful, as the commits end up much tidier with better messages and clearer story being told.
- pampas 3d agoSuppose a secret like some personally identifying information was recently leaked into the main branch. You are legally required to scrub it. How do you fix it? Ideally a repo needs to reflect the state of every event that happened. Practically there are edge cases when it's just best to rewrite history.