It was pretty absurd that I would have a 3-line change in C, several hundred-line changes in A and B, yet the biggest conflicts would be triggered when rebasing C on top of B, and those would be in files C did not touch. In my example, often-times C would never even touch files which were detected as having conflicting changes with A or B. Which doesn't address the second issue I listed: conflicts are not only repeated, but the conflicts themselves are pretty crazy. ![]() The only difference in conflict resolution between rebasing and merging is that the sides are flipped (what's shown on left in rebase, is on the right in merge, and vice-versa). It wouldn't result in the conflicts not being generated in the first place, or them being saner. Rather than saying that "you shouldn't want to do that", I'd prefer it if the tools people use were fixed to better serve the things people actually want to do.Ī merge would only make sure that I don't need to resolve the same conflict multiple times. There are many reasons why linear history is important. And rightly so: when I look at the master branch, I don't want to see random corrections someone made during review, they're just irrelevant once the reviewed changes are merged. When I have a chain of commits pending review on Gerrit, and I fixed some flaws in the first commit in chain and need to rebase the dependent commits, merging is not an option. I also feel a command like `git rerere log`, which would print the recent activity of the `rerere` database, might help with that. Just printing an informational line would already go a long way. ![]() I wish rerere made more transparent how it interacts with `-abort`. The manpage vaguely claims that it will, but I’ve been unable to reproduce it. Will rerere roll back the resolutions it recorded? I honestly don’t know. For example, let’s say I’m aborting a rebase. ![]() And I think the blame not entirely unjustified, because rerere could do a much better job in explaining how it interacts with certain scenarios. That’s how things can go wrong, and I see how one might blame that failure on rerere itself. The downside is: once the user has manually created a faulty resolution, then rerere will possibly replay that faulty resolution. My impression is that rerere is perfectly deterministic, and only repeat things the user has done before. The rerere database is content-addressed, and rerere will apply a resolution only if the pair of conflicting files is a bit-exact déjà-vu of a conflict it has seen before. FREE MARKDOWN EDITOR FOR WINDOWS PASSWORDOne glimpse of that may be KeePassXC, which can merge password databases and has never done it wrong in my experience. So yes, I'd say that version control in more areas would be nice, but one based on binary formats understood by version control. However, I feel that version control focused on text breaks, because the merging algorithm doesn't know anything about the semantics of what's represented in text. silently breaking something potentially important.įrom what I've read, Pijul should fix at least the problem of needing to resolve the same conflicts multiple times over and over again. And all the while it also merged some changes without signalling conflicts, but instead breaking something in significant ways, without notifying me in any way, i.e. Each time I look at the conflicts it generated, I cannot explain how it could come up with that craziness. The kind of conflicts is also staggering. If I have a sequence of changes A -> B -> C, then I change A and rebase B on top of A resolving any conflicts, then rebasing C on top of B will most of the time mean that Git will most likely ask me to resolve the same conflicts all over again and more. ![]() I'm not even talking about the CLI (after a while you can get used to it). But don't let its simplicity fool you Abricotine packs quite a punch.The idea is pleasing, but when you specifically look at Git, its UX is rather disappointing. If you like your Markdown editors simple, you'll like Abricotine. With a couple of clicks, you can convert what you're writing to HTML5, ODT, EPUB, LaTeX, PDF, or a Word document. You can choose the Markdown processor you want to use, including Sundown, Pandoc, or Discount. What sets Ghostwriter apart from other Markdown editors is its range of export options. I know a few people who create their to-do lists in Markdown, and this option makes creating and maintaining one much easier. You'll have to add headings, code, and the like by hand. If you don't want to do that, or are just learning Markdown and don't know what to add, you can select certain formatting from Ghostwriter's Format menu.Īdmittedly, it's just basic formatting-lists, character formatting, and indenting. Start typing and adding formatting by hand.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |