2014-11-20

GitLink - a port of SourceLink with a Command Line

With the release of GitLink 2.0 announced by Geert van Horrik, I'm happy to see that more people are using SourceLink in a way. GitLink contains a port of the core pdb reading code from SourceLink. I first put that code on GitHub in June of 2013. It is stable and I don't foresee that GitLink will have issues maintaining their port, but why not use the SourceLink package I put on NuGet?

This makes me sad:

It is still .NET. I would have been happy to make it easier to consume from C# if an issue would have been filed on the issue tracker, a tweet made to @cmr0n, or an email sent. Why not reach out to me before creating another project? GitLink.exe could just have easily been SourceLink.exe.

This is Just Wrong


The intention of SourceLink has always been to support source indexing to any source control management system (SCM) that supports raw downloads. It works with GitHub public repositories, TFS On-Premise, BitBucket, Google Project Hosting, and others. Those are not new features of GitLink.

Only SourceLink.Fake requires FAKE to run. SourceLink.Build required MSBuild to run. It can be resurrected if there is demand. SourceLink.exe could be made to support a command line interface.

SoureLink and SourceLink.Fake do not require a local git repository to work. Looking at the typical usage, you can simply comment out or remove the two lines to instantiate a GitRepo and do the repo.VerifyChecksums. Having said that, it is highly recommended to verify the checksums or the source indexes may not work. It is important those checksums be checked as well as the pdb checksums. I see that GitLink 2.0 introduced this as a new feature:

I would like it if the false claims were removed and more credit was given to me and the SourceLink project for the idea and the core pdb parsing code.

Common Goal

Let's work together. I too want symbol servers made obsolete. I want to see all the open source libraries I use ship pdb files in their NuGet packages that are source indexed to their SCM. I've brought this up with the ASP.NET vNext team. I am also trying to get GitHub to support compatible authentication for private repositories. I introduced them to it by source indexing their Octokit.net.