Earlier quoted context omitted.
Thanks for bringing this up, it was actually a more interesting read than this thread. Less trolling, more facts and also interesting to read stuff I didn't happen to know. Like One of the core differences between Windows and Linux is process creation. It's slower - relatively - on Windows. Since Git is largely implemented as many Bash scripts that run as separate processes, the performance is slower on Windows. We’r…
> "We’re working with the git community to move more of these scripts to native cross-platform components written in C" Sad. Rather than fix the root problem they rewrite the product in a less-agile language and require everyone to run opaque binaries. They probably even think they're doing a good thing.
Announcing GVFS: Git Virtual File System
271–280 of 287 posts
Re: Announcing GVFS: Git Virtual File System
#272Earlier quoted context omitted.
> "We’re working with the git community to move more of these scripts to native cross-platform components written in C" Sad. Rather than fix the root problem they rewrite the product in a less-agile language and require everyone to run opaque binaries. They probably even think they're doing a good thing.
C is portable, bash scripts are not.
I understand they took the initially easy route. But it'll be harder for everyone to use that code now, including them.
Re: Announcing GVFS: Git Virtual File System
#273Earlier quoted context omitted.
Google employs a distributed, caching, incremental build system and a distributed test system across the majority of their code base. I worked in Windows Store and I can assure you that most people there don't use CloudBuild and CloudTest, let along know what they are. I would be confident in saying the majority of people at Microsoft are in that boat.
Just to give others an idea of what this is like: I work on the Protocol Buffers team at Google. Almost all software at Google depends on my team's code. If I have a pending change, I can test it against the whole codebase before submitting (this is a "global presubmit"). If something breaks in global presubmit, I can build and run any target in the codebase with my change in a single command, and this will take O(10…
Re: Announcing GVFS: Git Virtual File System
#274Earlier quoted context omitted.
> I'd love to see a second attempt at a distributed version control system. Out of curiosity, why a whole new attempt? Personally, I'd prefer the approach of "making our current tools better."
What are your thoughts on Pijul? ( https://pijul.org )
Re: Announcing GVFS: Git Virtual File System
#275Earlier quoted context omitted.
Yup. I remember when git came along the field was already pretty crowded (DVCS, Darcs, Bazaar, BitKeeper, Mercurial...). I've always suspected Linus wrote git in a panic simply to sidestep the months of flames that switching VCS again would have inevitably generated, once BitKeeper stopped being viable. I also remember people jumping at the occasion like they would have never done to improve someone else's tool. The…
I agree, the story of git is a good group dynamics case-study. I watched a small bit of it from mailing lists at times. I was a heavy darcs user at the time and the impression I got was part of the name git in the first place was that it was intentionally the "dumb, dirty, get things done" answer to darcs' (sometimes problematic) smarts. (Remember, the British slang definition of git is "an unpleasant or contemptible…
Re: Announcing GVFS: Git Virtual File System
#276Earlier quoted context omitted.
Dunno how it is now, but years ago it'd take them a _few weeks_ to just propagate commits into the stable branch through a series of elaborate branch integrations, so yeah, you couldn't change something and test it on a whim. Plus build of just windows alone would take overnight, and rebuilding everything to test a Windows change was not logistically, politically, or technically possible.
> you couldn't change something and test it on a whim You could. It would just not leave your branch for a while. Around the scheduled merges it would run against the tests of progressively more of the larger organization. Parts of this actually constituted a good way to prevent being distracted by the bugs of faraway teams. If something reached your branch, where you were working, it was vetted by the tests required…
Re: Announcing GVFS: Git Virtual File System
#277It's interesting how all the cool things seem to come from Microsoft these days. I still think we need something better than Git, though. It brought some very cool ideas and the inner workings are reasonably understandable, but the UI is atrociously complicated. And yes, dealing with large files is a very sore point. I'd love to see a second attempt at a distributed version control system. But I applaud MS's initiati…
> It's interesting how all the cool things seem to come from Microsoft these days. It's like a whole'nother company after they got rid of Steve Ballmer.
Re: Announcing GVFS: Git Virtual File System
#278It's disappointing that all the comments are so negative. This is a great idea and solves a real problem for a lot of use cases. I remembering years ago Facebook says it had this problem. A lot of the comments were centered around that you could change your codebase to for what git can do. I'm glad there's another option now.
I was actually surprised that there was only as much negative sentiment as there is. Microsoft could cure cancer and the post to HN would be mostly negative. It's tribal. It doesn't even matter what they do at this point. That being said, you can see more and more people getting off the "Microsoft is evil" train. It's super slow and every bone headed thing that Microsoft does resets the needle for lots of people. I'v…
So, I'm very, very, very sorry that I can't hear their words over the noise of their actions; and in the light of this, I eye each new gift-bearing Redmondian with suspicion.
Re: Announcing GVFS: Git Virtual File System
#279Earlier quoted context omitted.
Yeah, I see things like this, and I always wonder why they don't make a submodule tree. It wasn't an option a couple years ago, but submodules work fine now. With a little bit of scripting to wrap common uses, they're practically pain-free.
Could you elaborate a little what has changed there? My understanding is that submodules are still considered a mess, but would be really nice if some actual improvements have happened.
1) When you cd into a submodule, it's the same as if it you just cloned into there, all normal git commands work. need to update your submodule-lib? cd, do stuff, git push, at worst.
2) `git clone --recursive` instead of just `git clone`, no need to `git submodule init --update` / etc.
3) `git pull` will automatically pull submodules when the parent repo changes which commit it's using. `git push` should push any changes too, though the manpage isn't explicit (there's an identical flag/config value for push as for pull to control this). also solvable with `pushall` and `pullall` aliases, which is a very minor re-education.
4) submodules can track submodule-repo branches, not just commits. auto-updating ftw? if you want it.
5) there are some somewhat-unhappy defaults / you probably want `git diff --submodule=log` and `git config --global status.submoduleSummary true`, etc. these (and aliases) are easily fixed the same way as you probably already have for templated .gitignore / etc - just generate some company-wide defaults, and move on with your life.
---
A lot of the "you have to git submodule command everything all the time" is a thing of the past, the difficulty now is largely related to it being a minor conceptual difference from a monorepo. It's a repo in a repo, and you're manipulating the pointer to the version. There are more options because of this, but they exist for good reasons, and they're not too hard to wrap your head around.
https://git-scm.com/book/en/v2/Git-Tools-Submodules also has some nice examples, and e.g. `git submodule foreach` can simplify a lot if you actually dive into submodules and make changes across multiple simultaneously (big refactor maybe?).
Re: Announcing GVFS: Git Virtual File System
#280Earlier quoted context omitted.
> you couldn't change something and test it on a whim You could. It would just not leave your branch for a while. Around the scheduled merges it would run against the tests of progressively more of the larger organization. Parts of this actually constituted a good way to prevent being distracted by the bugs of faraway teams. If something reached your branch, where you were working, it was vetted by the tests required…
Forgot to mention and now it's too late to edit: the most common way to do quick tests during development was to only build a few DLLs or .sys files and replace them on a running system. Then your team would have a set of branches that build every night.