@@ -29,71 +29,81 @@ public Task Push(IRepository repository, string branchName, string remoteName)
2929 Guard . ArgumentNotEmptyString ( branchName , nameof ( branchName ) ) ;
3030 Guard . ArgumentNotEmptyString ( remoteName , nameof ( remoteName ) ) ;
3131
32- if ( repository . Head ? . Commits != null && repository . Head . Commits . Any ( ) )
32+ return Task . Factory . StartNew ( ( ) =>
3333 {
34- var remote = repository . Network . Remotes [ remoteName ] ;
35- repository . Network . Push ( remote , "HEAD" , @"refs/heads/" + branchName , pushOptions ) ;
36- }
37-
38- return Task . FromResult < object > ( null ) ;
34+ if ( repository . Head ? . Commits != null && repository . Head . Commits . Any ( ) )
35+ {
36+ var remote = repository . Network . Remotes [ remoteName ] ;
37+ repository . Network . Push ( remote , "HEAD" , @"refs/heads/" + branchName , pushOptions ) ;
38+ }
39+ } ) ;
3940 }
4041
4142 public Task Fetch ( IRepository repository , string remoteName )
4243 {
4344 Guard . ArgumentNotEmptyString ( remoteName , nameof ( remoteName ) ) ;
4445
45- var remote = repository . Network . Remotes [ remoteName ] ;
46- repository . Network . Fetch ( remote , fetchOptions ) ;
47-
48- return Task . FromResult < object > ( null ) ;
46+ return Task . Factory . StartNew ( ( ) =>
47+ {
48+ var remote = repository . Network . Remotes [ remoteName ] ;
49+ repository . Network . Fetch ( remote , fetchOptions ) ;
50+ } ) ;
4951 }
5052
5153 public Task Fetch ( IRepository repository , string remoteName , params string [ ] refspecs )
5254 {
5355 Guard . ArgumentNotEmptyString ( remoteName , nameof ( remoteName ) ) ;
5456
55- var remote = repository . Network . Remotes [ remoteName ] ;
56- repository . Network . Fetch ( remote , refspecs , fetchOptions ) ;
57-
58- return Task . FromResult < object > ( null ) ;
57+ return Task . Factory . StartNew ( ( ) =>
58+ {
59+ var remote = repository . Network . Remotes [ remoteName ] ;
60+ repository . Network . Fetch ( remote , refspecs , fetchOptions ) ;
61+ } ) ;
5962 }
6063
6164 public Task SetRemote ( IRepository repository , string remoteName , Uri url )
6265 {
6366 Guard . ArgumentNotEmptyString ( remoteName , nameof ( remoteName ) ) ;
6467
65- repository . Config . Set ( "remote." + remoteName + ".url" , url . ToString ( ) ) ;
66- repository . Config . Set ( "remote." + remoteName + ".fetch" , "+refs/heads/*:refs/remotes/" + remoteName + "/*" ) ;
68+ return Task . Factory . StartNew ( ( ) =>
69+ {
6770
68- return Task . FromResult < object > ( null ) ;
71+ repository . Config . Set ( "remote." + remoteName + ".url" , url . ToString ( ) ) ;
72+ repository . Config . Set ( "remote." + remoteName + ".fetch" , "+refs/heads/*:refs/remotes/" + remoteName + "/*" ) ;
73+ } ) ;
6974 }
7075
7176 public Task SetTrackingBranch ( IRepository repository , string branchName , string remoteName )
7277 {
7378 Guard . ArgumentNotEmptyString ( branchName , nameof ( branchName ) ) ;
7479 Guard . ArgumentNotEmptyString ( remoteName , nameof ( remoteName ) ) ;
7580
76- var remoteBranchName = IsCanonical ( remoteName ) ? remoteName : "refs/remotes/" + remoteName + "/" + branchName ;
77- var remoteBranch = repository . Branches [ remoteBranchName ] ;
78- // if it's null, it's because nothing was pushed
79- if ( remoteBranch != null )
81+ return Task . Factory . StartNew ( ( ) =>
8082 {
81- var localBranchName = IsCanonical ( branchName ) ? branchName : "refs/heads/" + branchName ;
82- var localBranch = repository . Branches [ localBranchName ] ;
83- repository . Branches . Update ( localBranch , b => b . TrackedBranch = remoteBranch . CanonicalName ) ;
84- }
85-
86- return Task . FromResult < object > ( null ) ;
83+ var remoteBranchName = IsCanonical ( remoteName ) ? remoteName : "refs/remotes/" + remoteName + "/" + branchName ;
84+ var remoteBranch = repository . Branches [ remoteBranchName ] ;
85+ // if it's null, it's because nothing was pushed
86+ if ( remoteBranch != null )
87+ {
88+ var localBranchName = IsCanonical ( branchName ) ? branchName : "refs/heads/" + branchName ;
89+ var localBranch = repository . Branches [ localBranchName ] ;
90+ repository . Branches . Update ( localBranch , b => b . TrackedBranch = remoteBranch . CanonicalName ) ;
91+ }
92+ } ) ;
8793 }
8894
8995 public Task < Remote > GetHttpRemote ( IRepository repo , string remote )
9096 {
91- var uri = GitService . GitServiceHelper . GetRemoteUri ( repo , remote ) ;
92- var remoteName = uri . IsHypertextTransferProtocol ? remote : remote + "-http" ;
93- var ret = repo . Network . Remotes [ remoteName ] ;
94- if ( ret == null )
95- ret = repo . Network . Remotes . Add ( remoteName , UriString . ToUriString ( uri . ToRepositoryUrl ( ) ) ) ;
96- return Task . FromResult ( ret ) ;
97+ return Task . Factory . StartNew ( ( ) =>
98+ {
99+
100+ var uri = GitService . GitServiceHelper . GetRemoteUri ( repo , remote ) ;
101+ var remoteName = uri . IsHypertextTransferProtocol ? remote : remote + "-http" ;
102+ var ret = repo . Network . Remotes [ remoteName ] ;
103+ if ( ret == null )
104+ ret = repo . Network . Remotes . Add ( remoteName , UriString . ToUriString ( uri . ToRepositoryUrl ( ) ) ) ;
105+ return ret ;
106+ } ) ;
97107 }
98108
99109 static bool IsCanonical ( string s )
0 commit comments