 I was going through updating some stuff Getting ready to re-implement the mathematics that dimensions package since I know wow I messed up last time and If you haven't noticed I was originally doing some my stuff through fossil and it's now through get The change was not because I was not happy with fossil. In fact, I still absolutely prefer fossil and my experiences with get are making me prefer fossil even more because Just minor shit like this annoys the hell out of me. I check get status earlier Normally fossil, but we'll just when you when you Commit the changes We'll just go through all of the files in its list of the repository and go hey, this one's changed Let's update this this one's changed as well. Let's update this and so on get has to be told to commit those changes and I Mean every single time you commit you have to add the files back again and apparently even if you've added the files before As I did this so that I wouldn't forget about it. Apparently you have to go and add it again Because it's just sort of too stupid. I guess to be like, hey, you you definitely want to commit those changes because there's more recent changes So you have I have to go through and get add Every single file that gets changed every single time instead of just adding any new files that are created But there's another little nuisance Here that I didn't have to experience with fossil either. We go into typing in the wrong window we go into tests and then build the tests This is a bit slow because some of the packages, especially the arrays and matrices packages Have quite a lot in them this would be better when I get my actual Project manager in place because then they don't only need to be the changes that need to rebuild and just work better So we're not actually gonna run these we're just gonna go back and get status Now it lists every single one of those files that was generated when we went to build the tests Fossil wouldn't do this. It would just go. Hey everything that's Everything that you added to the list in the repository Yep, they're all good. It doesn't scan for new files and Complain about them it expects you to add them if They're actually part of the repository because there is an understanding that the directory of the repository often contains a Working directory of sorts That's often the tests of folder, but you can have other things like Many things that I've seen We'll have a folder where all the objects that is the The compiler output objects will be placed and Another folder where all the Libraries or executables that are built from those objects after they are they're linked Where those will be placed and those are very obviously not part of the repository, but they're part of a working directory Which will be located within the repository just not part of the repository Fossil gets this get doesn't seem to get Unintended how development actually works most of the time So literally every single time I want to do a commit. I have to go back into tests Clean it out and it doesn't complain about them again, but then that means The next time I want to run some tests. I have to rebuild literally everything Until I actually have like fully functioning shared libraries installed instead of just rebuilding the changes and a lot of the time because it's very good practice you actually want to build inside of a CH route That is its own little isolated environment where you're not actually using the system libraries because The system libraries can be you can introduce some unexpected things So you build inside your own little isolated environment This helps, you know, I isolate Problems you're not dealing with issues that might be present in your source code and the system libraries you're just dealing with the isolated environment a completely new fresh build and She have to rebuild those every single time with get But you Can actually leave them behind in your local repository With fossil because it won't complain about them It leaves it up to you to add things to the repository or not And you know like I said before is actually smart enough to keep track of those changes once you've added the file You don't have to add it every single time you make changes You added it before but didn't commit it and then change it again. You don't have to read the thing It just goes. Hey, this is still on the list. You're good so I'm leaving my stuff on get but it's it's overwhelmingly for just other developers like I really don't like get I don't understand how it's such a popular distributed system because Really, yeah, it's such a popular any type of version control system because it's just It's a huge pain of the ass really the the amount of steps It takes to do anything and get is way longer than in almost any other version control system And one of the defenses will hear about that is oh, it's because it's a distributed control system But the steps taken and get are longer than any distributed control system I've seen whether it's fossil or mercurial or bazaar any of them get takes far more effort As one other minor nuisance that I've been having is pushing anything to get hub on this There is a two-step operation not including having to react everything every single fucking time so I guess we're really talking about more than two steps, but assuming You know assuming it that will not Count the amount of files. I need to add back in every single time. It's still a two-step operation We got to go. We'll get this out of the way first just so I can show this Sue it Fossil can be set up so that right after that It'll also push to the repository. That's called an auto sync configuration You can disable that so you can do these as two separate steps, but fossil out of the box can be set up sorry fossil can be set up to do either and out of the box It does auto sync where anytime you commit it automatically pushes to the repository where you originally checked out from So it's just a one nice step operation. It feels like a centralized control system in that there's less steps But it is still distributed And like I said, you can you can disable that So that you can commit and then push later as a separate operation What we have to do then is push And of course heavens forbid you actually save this information in a secured manner. No, no We've got to enter it every single time Because that's efficient The thing is is You want your developers Even if it's just you you want to continuously publish very small changes and Something like this where you have to put in a password every single time you want to push instead of securely storing it Means that you're either gonna get one of two things the password is going to be insecure so that it's easy to type in that's Bad for reasons that I shouldn't even have to explain And the other is that you're not going to get these small incremental changes You're going to get these large changes without any ability to Go to any intermediate stage Just to save them from having to put in the password every single time to make these little commits this is You know, maybe it's just the get is targeting a very different audience than me But I think this is complete not a crap and I do not understand the design philosophies behind this at all Like I said, I will keep using it But it's literally just for other people's sake. I think this is fucking trash