├── tools └── NuGet.exe ├── CONTRIBUTING.md ├── ReactiveGit.Demo ├── App.config ├── App.xaml ├── App.xaml.cs ├── ViewModels │ ├── BranchViewModel.cs │ ├── ShellViewModel.cs │ └── CloneRepositoryViewModel.cs ├── packages.config ├── ObservableFolderPicker.cs ├── Views │ ├── ShellView.xaml │ ├── CloneRepositoryView.xaml │ ├── CloneRepositoryView.xaml.cs │ └── ShellView.xaml.cs ├── Properties │ └── AssemblyInfo.cs └── ReactiveGit.Demo.csproj ├── SolutionInfo.cs ├── ReactiveGit.sln.DotSettings ├── ReactiveGit ├── packages.config ├── Properties │ └── AssemblyInfo.cs ├── ProgressFactory.cs ├── ObservableRepository.cs ├── ObservableRepository.Push.cs ├── ObservableRepository.Pull.cs ├── IObservableRepository.cs ├── ObservableRepository.Checkout.cs ├── ObservableRepository.Clone.cs └── ReactiveGit.csproj ├── ReleaseNotes.md ├── .gitattributes ├── ReactiveGit.Tests ├── packages.config ├── Properties │ └── AssemblyInfo.cs ├── ObservableRepositoryTests.cs ├── TestDirectory.cs └── ReactiveGit.Tests.csproj ├── nuspec ├── ReactiveGit.nuspec └── ReactiveGit.Source.nuspec ├── LICENSE.md ├── README.md ├── ReactiveGit.sln └── .gitignore /tools/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shiftkey/ReactiveGit/HEAD/tools/NuGet.exe -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # ReactiveGit - Contributing Guide 2 | 3 | ## Building the project 4 | 5 | You can build, test and create the NuGet packages by simply running the `build.ps1` script at the root of the repository 6 | -------------------------------------------------------------------------------- /ReactiveGit.Demo/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ReactiveGit.Demo/App.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /SolutionInfo.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System.Reflection; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyProductAttribute("ReactiveGit")] 6 | [assembly: AssemblyVersionAttribute("0.0.4")] 7 | [assembly: AssemblyFileVersionAttribute("0.0.4")] 8 | [assembly: ComVisibleAttribute(false)] 9 | namespace System { 10 | internal static class AssemblyVersionInformation { 11 | internal const string Version = "0.0.4"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ReactiveGit.sln.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> -------------------------------------------------------------------------------- /ReactiveGit/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ReactiveGit.Demo/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using ReactiveGit.Demo.ViewModels; 3 | using ReactiveGit.Demo.Views; 4 | 5 | namespace ReactiveGit.Demo 6 | { 7 | public partial class App 8 | { 9 | protected override void OnStartup(StartupEventArgs e) 10 | { 11 | base.OnStartup(e); 12 | 13 | var view = new ShellView(); 14 | var viewModel = new ShellViewModel(); 15 | 16 | view.ViewModel = viewModel; 17 | 18 | view.Show(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ReleaseNotes.md: -------------------------------------------------------------------------------- 1 | ### New in 0.0.4 (Released 2014/10/14) 2 | * clone messages improved to match up with Git behaviour 3 | * clone no longer displays checkout file paths 4 | * `IObservableRepository.Inner` is available for when you need to access the 5 | underlying LibGit2Sharp repository 6 | 7 | ### New in 0.0.3 (Released 2014/10/12) 8 | * a proper build process, just like a real OSS project 9 | * now targets LibGit2Sharp v0.19 10 | 11 | **Breaking changes:** 12 | - The `Credentials` `ctor` have been deprecated upstream in favour of 13 | `CredentialsHandler` delegates. -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /ReactiveGit.Demo/ViewModels/BranchViewModel.cs: -------------------------------------------------------------------------------- 1 | using ReactiveUI; 2 | 3 | namespace ReactiveGit.Demo.ViewModels 4 | { 5 | public class BranchViewModel : ReactiveObject 6 | { 7 | string name; 8 | public string Name 9 | { 10 | get { return name; } 11 | set { this.RaiseAndSetIfChanged(ref name, value); } 12 | } 13 | 14 | string canonicalName; 15 | public string CanonicalName 16 | { 17 | get { return canonicalName; } 18 | set { this.RaiseAndSetIfChanged(ref canonicalName, value); } 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /ReactiveGit/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("ReactiveGit")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyCopyright("Copyright © 2014")] 12 | [assembly: AssemblyTrademark("")] 13 | [assembly: AssemblyCulture("")] 14 | 15 | // The following GUID is for the ID of the typelib if this project is exposed to COM 16 | [assembly: Guid("bf0b74cb-1f13-4276-9a43-dafed977b102")] -------------------------------------------------------------------------------- /ReactiveGit.Demo/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ReactiveGit.Demo/ObservableFolderPicker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reactive.Linq; 3 | using System.Windows.Forms; 4 | 5 | namespace ReactiveGit.Demo 6 | { 7 | public class ObservableFolderPicker 8 | { 9 | public static IObservable SelectFolder() 10 | { 11 | return Observable.Defer(() => 12 | { 13 | var fileDialog = new FolderBrowserDialog 14 | { 15 | RootFolder = Environment.SpecialFolder.MyDocuments, 16 | ShowNewFolderButton = true 17 | }; 18 | 19 | var result = fileDialog.ShowDialog(); 20 | 21 | if (result == DialogResult.OK) 22 | { 23 | return Observable.Return(fileDialog.SelectedPath); 24 | } 25 | 26 | return Observable.Throw(new InvalidOperationException()); 27 | }); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ReactiveGit.Tests/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /nuspec/ReactiveGit.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ReactiveGit 5 | 0.0.1 6 | Brendan Forster 7 | Brendan Forster 8 | https://github.com/shiftkey/ReactiveGit/blob/master/LICENSE.md 9 | https://github.com/shiftkey/ReactiveGit 10 | 11 | false 12 | A wrapper for libgit2sharp to make git operations asynchronous 13 | First preview 14 | Copyright 2014 15 | Git libgit2 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /nuspec/ReactiveGit.Source.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ReactiveGit.Source 5 | 0.0.1 6 | Brendan Forster 7 | Brendan Forster 8 | https://github.com/shiftkey/ReactiveGit/blob/master/LICENSE.md 9 | https://github.com/shiftkey/ReactiveGit 10 | 11 | false 12 | The source code for wrapping libgit2sharp in asynchrony - unless you're building LibGit2Sharp from source, this isn't the package you want 13 | First preview 14 | Copyright 2014 15 | Git libgit2 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ReactiveGit.Demo/Views/ShellView.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |