diff --git a/README.md b/README.md index ab6e82e..d40630f 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ GitHubLink let's users step through your code hosted on GitHub! **This makes sym ![Stepping through external source code](doc/images/GitHubLink_example.gif) -The idea is based on the [SourceLink project](https://github.com/ctaggart/SourceLink "SourceLink project"). However it requires FAKE and no everyone likes to write code in F#. GitHubLink is available as console application and can be references as assembly as well to be used in other .NET assemblies. +The idea is based on the [SourceLink project](https://github.com/ctaggart/SourceLink "SourceLink project"). However it requires FAKE and not everyone likes to write code in F#. GitHubLink is available as console application and can be references as assembly as well to be used in other .NET assemblies. The advantage of GitHubLink is that it is fully customized for GitHub. It also works with GitHub urls so it **does not require a local git repository to work**. This makes it perfectly usable in continuous integration servers such as [Continua CI](http://www.finalbuilder.com/Continua-CI "Continua CI"). @@ -17,9 +17,9 @@ When using GitHubLink, the user no longer has to specify symbol servers. He/she ![Enabling source server support](doc/images/visualstudio_enablesourceserversupport.png) -# Using GitHubLink # +# Using GitHubLink as command line tool # -Using GitHubLink is very simple: +Using GitHubLink via the command line is very simple: 1. Build the software (in release mode with pdb files enabled) 2. Run the console application with the right command line parameters @@ -57,6 +57,51 @@ When you need to log the information to a file, use the following command line: GitHubLink.exe c:\source\catel -u https://github.com/catel/catel -b develop -l GitHubLinkLog.log +# Using GitHubLink in code # + +GitHubLink is built with 2 usages in mind: command line and code reference. Though most people will use the command line version, it is possible to reference the executable and use the logic in code. + +The command line implementation uses the same available API. + +## Creating a context ## + +To link files to a GitHub project, a context must be created. The command line version does this by using the *ArgumentParser* class. It is also possible to create a context from scratch as shown in the example below: + + var context = new GitHubLink.Context(); + context.SolutionDirectory = @"c:\source\catel"; + context.TargetUrl = "https://github.com/catel/catel"; + context.TargetBranch = "develop"; + +It is possible to create a context based on command line arguments: + + var context = ArgumentParser.Parse(@"c:\source\catel -u https://github.com/catel/catel -b develop"); + +## Linking a context ## + +Once a context is created, the *Linker* class can be used to actually link the files: + + Linker.Link(context); + +# How to get GitHubLink # + +There are three general ways to get GitHubLink:. + +## Get it from GitHub ## + +The releases will be available as separate executable download on the [releases tab](https://github.com/GeertvanHorrik/GitHubLink/releases) of the project. + +## Get it via Chocolatey ## + +If you want to install the tool on your (build) computer, the package is available via [Chocolatey](https://chocolatey.org/). To install, use the following command: + + cinst GitHubLink + +## Get it via NuGet ## + +If you want to reference the assembly to use it in code, the recommended way to get it is via [NuGet](http://www.nuget.org/). + +**Note that getting GitHubLink via NuGet will add it as a reference to the project** + # How does it work # The SrcSrv tool (Srcsrv.dll) enables a client to retrieve the exact version of the source files that were used to build an application. Because the source code for a module can change between versions and over the course of years, it is important to look at the source code as it existed when the version of the module in question was built. diff --git a/deployment/Chocolatey/template/GitHubLink.nuspec b/deployment/Chocolatey/template/GitHubLink.nuspec new file mode 100644 index 0000000..1a820b5 --- /dev/null +++ b/deployment/Chocolatey/template/GitHubLink.nuspec @@ -0,0 +1,24 @@ + + + + githublink + [VERSION] + GitHubLink + GeertvanHorrik + + + GitHubLink let's users step through your code hosted on GitHub! This makes symbol servers obsolete which saves you both time + with uploading source files with symbols and the user no longer has to specify custom symbol servers (such as symbolsource.org). + + + + + + source symbol symbols server sourcelink github stepping debugging + + en-US + https://github.com/GeertvanHorrik/GitHubLink/ + https://github.com/GeertvanHorrik/GitHubLink/blob/develop/LICENSE + https://raw.githubusercontent.com/GeertvanHorrik/GitHubLink/develop/design/logo/logo_64.png + + \ No newline at end of file diff --git a/deployment/Chocolatey/template/tools/chocolateyInstall.ps1 b/deployment/Chocolatey/template/tools/chocolateyInstall.ps1 new file mode 100644 index 0000000..59909b5 --- /dev/null +++ b/deployment/Chocolatey/template/tools/chocolateyInstall.ps1 @@ -0,0 +1,2 @@ +Generate-BinFile "ghl" "$packageFolder\Tools\GitHubLink.exe" +Write-ChocolateySuccess "GitHubLink" \ No newline at end of file diff --git a/deployment/Chocolatey/template/tools/chocolateyUninstall.ps1 b/deployment/Chocolatey/template/tools/chocolateyUninstall.ps1 new file mode 100644 index 0000000..1becdf7 --- /dev/null +++ b/deployment/Chocolatey/template/tools/chocolateyUninstall.ps1 @@ -0,0 +1,3 @@ +Remove-BinFile "ghl" "$packageFolder\Tools\GitHubLink.exe" +Remove-BinFile "GitHubLink" "$packageFolder\Tools\GitHubLink.exe" +Write-ChocolateySuccess "GitHubLink" \ No newline at end of file diff --git a/deployment/FinalBuilder/GitHubLink.CreatePackages.fbp7 b/deployment/FinalBuilder/GitHubLink.CreatePackages.fbp7 new file mode 100644 index 0000000..279bf03 Binary files /dev/null and b/deployment/FinalBuilder/GitHubLink.CreatePackages.fbp7 differ diff --git a/deployment/NuGet/template/GitHubLink.nuspec b/deployment/NuGet/template/GitHubLink.nuspec index b715973..1a820b5 100644 --- a/deployment/NuGet/template/GitHubLink.nuspec +++ b/deployment/NuGet/template/GitHubLink.nuspec @@ -1,7 +1,7 @@ - GitHubLink + githublink [VERSION] GitHubLink GeertvanHorrik diff --git a/doc/history.txt b/doc/history.txt index d14dc86..6ddebba 100644 --- a/doc/history.txt +++ b/doc/history.txt @@ -13,7 +13,7 @@ Project website: https://github.com/GeertvanHorrik/GitHubLink ********************************************************** ================== -Version 1.0.0 +Version 1.1.0 ================== Release date: @@ -22,7 +22,30 @@ Release date: Added/fixed: ============ -xxx +xx + +Roadmap: +======== +See https://github.com/GeertvanHorrik/GitHubLink + +Known issues: +============= +See https://github.com/GeertvanHorrik/GitHubLink + +********************************************************** + + +================== +Version 1.0.0 +================== + +Release date: +============= +2014/04/17 + +Added/fixed: +============ +First initial release Roadmap: ======== diff --git a/src/GitHubLink/Context.cs b/src/GitHubLink/Context.cs index a951e8a..f83c3da 100644 --- a/src/GitHubLink/Context.cs +++ b/src/GitHubLink/Context.cs @@ -27,7 +27,7 @@ public Context() public string SolutionDirectory { get; set; } public string ConfigurationName { get; set; } - public string TempDirectory { get; set; } + public string TempDirectory { get; private set; } public string TargetUrl { get; set; } public string TargetBranch { get; set; } diff --git a/src/GitHubLink/Linker.cs b/src/GitHubLink/Linker.cs index 5659a96..d692b37 100644 --- a/src/GitHubLink/Linker.cs +++ b/src/GitHubLink/Linker.cs @@ -49,7 +49,9 @@ public static int Link(Context context) var gitPreparer = new GitPreparer(context); gitPreparer.Prepare(); - var projectFiles = Directory.GetFiles(context.SolutionDirectory, "*.csproj", SearchOption.AllDirectories); + var projectFiles = new List(); + projectFiles.AddRange(Directory.GetFiles(context.SolutionDirectory, "*.csproj", SearchOption.AllDirectories)); + projectFiles.AddRange(Directory.GetFiles(context.SolutionDirectory, "*.vbproj", SearchOption.AllDirectories)); int projectCount = projectFiles.Count(); var failedProjects = new List();