2626
2727#import " ProjectCommitsViewController.h"
2828#import " MRPRDetailViewController.h"
29+ #import " CommitFilesViewController.h"
2930
3031#import " UnReadManager.h"
3132
@@ -155,7 +156,7 @@ + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(An
155156 NSString *ppRegexStr = @" /u/([^/]+)/pp/([0-9]+)$" ;
156157 NSString *topicRegexStr = @" /u/([^/]+)/p/([^/]+)/topic/(\\ d+)" ;
157158 NSString *taskRegexStr = @" /u/([^/]+)/p/([^/]+)/task/(\\ d+)" ;
158- NSString *mergeRegexStr = @" /u/([^/]+)/p/([^/]+)/git/(merge|pull)/(\\ d+)" ;
159+ NSString *gitMRPRCommitRegexStr = @" /u/([^/]+)/p/([^/]+)/git/(merge|pull|commit )/(\\ d+)" ;
159160 NSString *conversionRegexStr = @" /user/messages/history/([^/]+)$" ;
160161 NSString *projectRegexStr = @" /u/([^/]+)/p/([^/]+)" ;
161162 NSArray *matchedCaptures = nil ;
@@ -178,20 +179,36 @@ + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(An
178179 vc.curTweet = [Tweet tweetWithGlobalKey: user_global_key andPPID: pp_id];
179180 analyseVC = vc;
180181 }
181- }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex: mergeRegexStr ]).count > 0 ){
182+ }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex: gitMRPRCommitRegexStr ]).count > 0 ){
182183 // MR
183184 NSString *path = [linkStr stringByReplacingOccurrencesOfString: @" https://coding.net" withString: @" " ];
184-
185- if ([presentingVC isKindOfClass: [MRPRDetailViewController class ]]) {
186- MRPRDetailViewController *vc = (MRPRDetailViewController *)presentingVC;
187- if ([vc.curMRPR.path isEqualToString: path]) {
188- [vc refresh ];
189- analyseVCIsNew = NO ;
190- analyseVC = vc;
185+
186+ if ([matchedCaptures[3 ] isEqualToString: @" commit" ]) {
187+ if ([presentingVC isKindOfClass: [CommitFilesViewController class ]]) {
188+ CommitFilesViewController *vc = (CommitFilesViewController *)presentingVC;
189+ if ([vc.commitId isEqualToString: matchedCaptures[3 ]] &&
190+ [vc.projectName isEqualToString: matchedCaptures[2 ]] &&
191+ [vc.ownerGK isEqualToString: matchedCaptures[1 ]]) {
192+ [vc refresh ];
193+ analyseVCIsNew = NO ;
194+ analyseVC = vc;
195+ }
196+ }
197+ if (!analyseVC) {
198+ analyseVC = [CommitFilesViewController vcWithPath: path];
199+ }
200+ }else {
201+ if ([presentingVC isKindOfClass: [MRPRDetailViewController class ]]) {
202+ MRPRDetailViewController *vc = (MRPRDetailViewController *)presentingVC;
203+ if ([vc.curMRPR.path isEqualToString: path]) {
204+ [vc refresh ];
205+ analyseVCIsNew = NO ;
206+ analyseVC = vc;
207+ }
208+ }
209+ if (!analyseVC) {
210+ analyseVC = [MRPRDetailViewController vcWithPath: path];
191211 }
192- }
193- if (!analyseVC) {
194- analyseVC = [MRPRDetailViewController vcWithPath: path];
195212 }
196213 }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex: topicRegexStr]).count > 0 ){
197214 // 讨论
0 commit comments