Readit News logoReadit News
2d8a875f-39a2-4 · 6 months ago
Always nice to read a new retelling of this old story.

TFA throws some shade at how "a single get of the office repo took some hours" then elides the fact that such an operation was practically impossible to do on git at all without creating a new file system (VFS). Perforce let users check out just the parts of a repo that they needed, so I assume most SD users did that instead of getting every app in the Office suite every time. VFS basically closes that gap on git ("VFS for Git only downloads objects as they are needed").

Perforce/SD were great for the time and for the centralised VCS use case, but the world has moved on I guess.

daemin · 6 months ago
Some companies have developed their own technology like VFS for use with Perforce, so you can check out the entire suite of applications but only pull the files when you try to access them in a specific way. This is a lot more important in game development where massive source binary assets are stored along side text files.

It uses the same technology that's built into Windows that the remote drive programs (probably) use.

Personally I kind of still want some sort of server based VCS which can store your entire companies set of source without needing to keep the entire history locally when you check out something. But unfortunately git is still good enough to use on an ad-hoc basis between machines for me that I don't feel the need to set up a central server and CI/CD pipeline yet.

Also being able to stash, stage hunks, and interactively rebase commits are features that I like and work well with the way I work.

sixothree · 6 months ago
Doesn’t SVN let you check out and commit any folder or file at any depth of a project you choose? Maybe not the checkouts and commit, but that log history for a single subtree is something I miss from the SVN tooling.
noitpmeder · 6 months ago
My firm still uses perforce and I can't say anyone likes it at this point. You can almost see the light leaves the eyes of new hires when you tell them we don't use git like the rest of the world.
2d8a875f-39a2-4 · 6 months ago
Yeah it's an issue for new devs for sure. TFA even makes the point, "A lot of people felt refreshed by having better transferable skills to the industry. Our onboarding times were slashed by half".
Degorath · 6 months ago
Can't say anything about perforce as I've never used it, but I'd give my left nut to get Google's Piper instead of git at work :)
kccqzy · 6 months ago
I cannot believe that new hires would be upset by the choice of version control software. They joined a new company after so many hoops and it's on them for having an open mind towards processes and tools in the new company.
socalgal2 · 6 months ago
VFS does not replace Perforce. Most AAA game companies still use Perforce. In particular, they need locks on assets so two people don't edit them at the same time and have an unmergable change and wasted time as one artist has to throw their work away
swsieber · 6 months ago
I'm a bit surprised git doesn't offer a way to checkout only specific parts of the git tree to be honest. It seems like it'd be pretty easy to graft on with an intermediate service that understands object files, etc.
jjmarr · 6 months ago
It's existed for a while. Partial clones and LFS.

https://git-scm.com/docs/partial-clone

azhenley · 6 months ago
I spent nearly a week of my Microsoft internship in 2016 adding support for Source Depot to the automated code reviewer that I was building (https://austinhenley.com/blog/featurestheywanted.html) despite having no idea what Source Depot was!

Quite a few devs were still using it even then. I wonder if everything has been migrated to git yet.

sciencesama · 6 months ago
Naah still a lot of stuff works on sd !! Those sd commands and setting up sd gives me chills !!
PretzelPirate · 6 months ago
I miss CodeFlow everyday. It was such a great tool to use.
Plasmoid2000ad · 6 months ago
CodeFlow lives on and is still held in high regard. It's even made it's way to support the github repos, not just git. https://chromewebstore.google.com/detail/codeflow/aphnoipoco...

Still buried as internal only though.

hacker_homie · 6 months ago
Most of the day to day is in git, now.
0points · 6 months ago
Having used vss in the 90s myself, it surprised me it wasn't even mentioned.

VSS (Visual SourceSafe) being Microsoft's own source versioning protocol, unlike Source Depot which was licensed from Perforce.

chiph · 6 months ago
VSS was picked up via the acquisition of One Tree Software in Raleigh. Their product was SourceSafe, and the "Visual" part was added when it was bundled with their other developer tools (Visual C, Visual Basic, etc). Prior to that Microsoft sold a version control product called "Microsoft Delta" which was expensive and awful and wasn't supported on NT.

One of the people who joined Microsoft via the acquisition was Brian Harry, who led the development of Team Foundation Version Control (part of Team Foundation Server - TFS) which used SQL Server for its storage. A huge improvement in manageability and reliability over VSS. I think Brian is retired now - his blog at Microsoft is no longer being updated.

From my time using VSS, I seem to recall a big source of corruption was it's use of network file locking over SMB. If there were a network glitch (common in the day) you'd have to repair your repository. We set up an overnight batch job to run the repair so we could be productive in the mornings.

EvanAnderson · 6 months ago
> ...I seem to recall a big source of corruption was it's use of network file locking over SMB...

Shared database files (of any kind) over SMB... shudder Those were such bad days.

0points · 6 months ago
Oh, TIL! Thanks for adding that to the story.

Indeed my experiences of vss was also not amazing and certainly got corrupted files too.

larrywright · 6 months ago
I used VSS in the 90s as well, it was a nightmare when working in a team. As I recall, Microsoft themselves did not use VSS internally, at least not for the majority of things.
hpratt4 · 6 months ago
That’s correct. Before SD, Microsoft orgs (at least Office and Windows; I assume others too) used an internal tool called SLM (“slime”); Raymond Chen has blogged about it, in passing: https://devblogs.microsoft.com/oldnewthing/20180122-00/?p=97...
tamlin · 6 months ago
Yes, I used VSS as a solo developer in the 90s. It was a revelation at the time. I met other VCS systems at grad school (RCS, CVS).

I started a job at MSFT in 2004 and I recall someone explaining that VSS was unsafe and prone to corruption. No idea if that was true, or just lore, but it wasn't an option for work anyway.

sumtechguy · 6 months ago
The integration with sourcesafe and all of the tools was pretty cool back then. Nothing else really had that level of integration at the time. However, VSS was seriously flakey. It would corrupt randomly for no real reason. Daily backups were always being restored in my workplace. Then they picked PVCS. At least it didnt corrupt itself.

I think VSS was fine if you used it on a local machine. If you put it on a network drive things would just flake out. It also got progressively worse as newer versions came out. Nice GUI, very straight forward to teach someone how to use it (checkout file, change, check in like a book), random corruptions about sums up VSS. That checkin/out model seems simpler for people to grasp. The virtual/branch systems most of the other ones use is kind of a mental block for many until they grok it.

wvenable · 6 months ago
I was mandated to use VSS in a university course in the late 90s -- one course, one project -- and we still managed to corrupt it.
marcosdumay · 6 months ago
> No idea if that was true

It's an absurd understatement. The only people that seriously used VSS and didn't see any corruption were the people that didn't look at their code history.

smithkl42 · 6 months ago
I used VSS for a few years back in the late 90's and early 2000's. It was better than nothing - barely - but it was very slow, very network intensive (think MS Access rather than SQL), it had very poor merge primitives (when you checked out a file, nobody else could change it), and yes, it was exceedingly prone to corruption. A couple times we just had to throw away history and start over.
mmastrac · 6 months ago
We used to call it Visual Source Unsafe because it was corrupting repos all the time.
_whiteCaps_ · 6 months ago
My memory is fuzzy on this but I remember VSS trusting the client for its timestamps and everything getting corrupted when someone's clock was out of sync. Which happened regularly because NTP didn't work very well on Windows back in the early 2000s.
RyJones · 6 months ago
I was on the team that migrated Microsoft from XNS to TCP/IP - it was way less involved, but similar lessons learned.

Migrating from MSMAIL -> Exchange, though - that was rough

aaronbrethorst · 6 months ago
Is that what inspired the "Exchange: The Most Feared and Loathed Team in Microsoft" license plate frames? I'm probably getting a bit of the wording wrong. It's been nearly 20 years since I saw one.
RyJones · 6 months ago
Probably. A lot of people really loved MSMAIL; not so much Exchange.

I have more long, boring stories about projects there, but that’s for another day

carlual · 6 months ago
> Authenticity mattered more than production value.

Thanks for sharing this authentic story! As an ex-MSFT in a relatively small product line that only started switching to Git from SourceDepot in 2015, right before I left, I can truly empathize with how incredible a job you guys have done!

dshacker · 6 months ago
Yeah, it was a whole journey. I can't believe it happened. Thanks for your comment.
carlual · 6 months ago
Thank you! Btw, it reminds me of the book "Showstopper" about the journey of releasing Windows NT; highly recommended!
hacker_homie · 6 months ago
I spent a lot of time coaching people out of source depot, it was touch and go there for a while. It was worth it though thank you for Your effort.
BobbyTables2 · 6 months ago
I’d like to know when Microsoft internally migrated away from Visual SourceSafe…

They should have recalled it to avoid continued public use…

RandallBrown · 6 months ago
I doubt most teams ever used it.

I spent a couple years at Microsoft and our team used Source Depot because a lot of people thought that our products were special and even Microsoft's own source control (TFS at the time) wasn't good enough.

I had used TFS at a previous job and didn't like it much, but I really missed it after having to use Source Depot.

jbergens · 6 months ago
I was surprised that TFS was not mentioned in the story (at least not as far as I have read).

It should have existed around the same time and other parts of MS were using it. I think it was released around 2005 but MS probably had it internally earlier.

RyJones · 6 months ago
USGEO used it in the late 90s, as well as RAID
pianoben · 6 months ago
I don't know that they ever used it internally, certainly not for anything major. If they had, they probably wouldn't have sold it as it was...

Can't explain TFS though, that was still garbage internally and externally.

mattgrice · 6 months ago
Around 2000? The only project I ever knew that used it was .NET and that was on SD by around then.
dshacker · 6 months ago
I didn't even know Microsoft SourceSafe existed.
codeulike · 6 months ago
We used it. We knew no better. It was different then, you might not hear about alternatives unless you went looking for them. Source Safe was integrated with Visual Studio so was an obvious choice for small teams.

Get this; if you wanted to change a file you had to check it out. It was then locked and no-one else could change it. Files were literally read only on your machine unless you checked them out. The 'one at a time please' approach to Source Control (the other approach being 'lets figure out how to merge this later')

masklinn · 6 months ago
Lucky you. Definitely one of the worst tools I’ve had the displeasure of working with. Made worse by people building on top of it for some insane reason.
qingcharles · 6 months ago
It was pretty janky. We used it in the gamedev world in the 90s once the migration to Visual C started.
ksynwa · 6 months ago
Not doubting it but I don't understand how a shallow clone of OneNote would be 200GB.
dshacker · 6 months ago
Shallow clone of all of office, not onenote.
ksynwa · 6 months ago
Oh alright. Thanks.
paulddraper · 6 months ago
Must have videos or binaries.
LtWorf · 6 months ago
They probably vendor every single .dll it uses.
danielodievich · 6 months ago
I want to thank dev leads who trained this green-behind-the-ears engineer on mysteries of Source Depot. Once I understood it, it was quite illuminating. I am glad we only had a dependency on WinCE and IE, and so the clone only took 20 minutes instead of days. I don't remember your names but I remember your willingness to step up and help and onboard new person so they could start being productive. I pay this attitude forward with new hires here in my team no matter where I go.