public GitRepository(string directory) { _gitDirectory = Repository.Discover(directory); _savedState = new GitHeadState(); _statusRepository = GetRepository(); this.workingDirectory = _statusRepository.Info.WorkingDirectory; _repositoryPath = _statusRepository.Info.Path; _objectPath = _repositoryPath + "objects\\"; //using (var repository = GetRepository()) //{ // this.workingDirectory = repository.Info.WorkingDirectory; // repositoryPath = repository.Info.Path; //} _cachedBranchOperation = CurrentOperation.None; //_changesetManager = new GitChangesetManager(); //_lastTipId = repository.Head.Tip.sha; Refresh(); _gitEventObservable = Observable.FromEventPattern(ev => _gitfileEvent += ev, ev => _gitfileEvent -= ev) .Throttle(TimeSpan.FromMilliseconds(2000)); _gitEventObservable.Subscribe(x => Task.Run(async() => await DecodeGitEvents())); _fileChangedEventObservable = Observable.FromEventPattern(ev => _fileEvent += ev, ev => _fileEvent -= ev) .Throttle(TimeSpan.FromMilliseconds(250)); _fileChangedEventObservable.Subscribe(x => Task.Run(async() => await FileChangedEvent())); }
public GitRepository(string directory) { _gitDirectory = Repository.Discover(directory); _savedState = new GitHeadState(); _statusRepository = GetRepository(); this.workingDirectory = _statusRepository.Info.WorkingDirectory; _repositoryPath = _statusRepository.Info.Path; _objectPath = _repositoryPath + "objects\\"; _cachedBranchOperation = CurrentOperation.None; Refresh(); _gitEventObservable = Observable.FromEventPattern(ev => _gitfileEvent += ev, ev => _gitfileEvent -= ev) .Throttle(TimeSpan.FromMilliseconds(2000)); _gitEventObservable.Subscribe(x => Task.Run(async () => await DecodeGitEvents())); _fileChangedEventObservable = Observable.FromEventPattern(ev => _fileEvent += ev, ev => _fileEvent -= ev) .Throttle(TimeSpan.FromMilliseconds(250)); _fileChangedEventObservable.Subscribe(x => Task.Run(async () => await FileChangedEvent())); }