@@ -7,11 +7,9 @@ public class QueryCommits : Command
77 {
88 public QueryCommits ( string repo , string limits , bool needFindHead = true )
99 {
10- _endOfBodyToken = $ "----- END OF BODY { Guid . NewGuid ( ) } -----";
11-
1210 WorkingDirectory = repo ;
1311 Context = repo ;
14- Args = $ "log --date-order --no-show-signature --decorate=full --pretty=format:\" %H%n%P%n%D%n%aN±%aE%n%at%n%cN±%cE%n%ct%n%B%n { _endOfBodyToken } \" " + limits ;
12+ Args = $ "log --date-order --no-show-signature --decorate=full --pretty=format:%H%n%P%n%D%n%aN±%aE%n%at%n%cN±%cE%n%ct%n%s " + limits ;
1513 _findFirstMerged = needFindHead ;
1614 }
1715
@@ -24,7 +22,6 @@ public QueryCommits(string repo, string limits, bool needFindHead = true)
2422 var nextPartIdx = 0 ;
2523 var start = 0 ;
2624 var end = rs . StdOut . IndexOf ( '\n ' , start ) ;
27- var max = rs . StdOut . Length ;
2825 while ( end > 0 )
2926 {
3027 var line = rs . StdOut . Substring ( start , end - start ) ;
@@ -51,24 +48,17 @@ public QueryCommits(string repo, string limits, bool needFindHead = true)
5148 break ;
5249 case 6 :
5350 _current . CommitterTime = ulong . Parse ( line ) ;
54- start = end + 1 ;
55- end = rs . StdOut . IndexOf ( _endOfBodyToken , start , StringComparison . Ordinal ) ;
56- if ( end > 0 )
57- {
58- if ( end > start )
59- _current . Body = rs . StdOut . Substring ( start , end - start ) . TrimEnd ( ) ;
60-
61- start = end + _endOfBodyToken . Length + 1 ;
62- end = start >= max ? - 1 : rs . StdOut . IndexOf ( '\n ' , start ) ;
63- }
64-
65- nextPartIdx = 0 ;
66- continue ;
51+ break ;
52+ case 7 :
53+ _current . Subject = line ;
54+ break ;
6755 default :
6856 break ;
6957 }
7058
7159 nextPartIdx ++ ;
60+ if ( nextPartIdx == 8 ) nextPartIdx = 0 ;
61+
7262 start = end + 1 ;
7363 end = rs . StdOut . IndexOf ( '\n ' , start ) ;
7464 }
@@ -157,7 +147,7 @@ private void ParseDecorators(string data)
157147 if ( l . Type != r . Type )
158148 return ( int ) l . Type - ( int ) r . Type ;
159149 else
160- return l . Name . CompareTo ( r . Name ) ;
150+ return string . Compare ( l . Name , r . Name , StringComparison . Ordinal ) ;
161151 } ) ;
162152
163153 if ( _current . IsMerged && ! _isHeadFounded )
@@ -187,7 +177,6 @@ private void MarkFirstMerged()
187177 }
188178 }
189179
190- private string _endOfBodyToken = string . Empty ;
191180 private List < Models . Commit > _commits = new List < Models . Commit > ( ) ;
192181 private Models . Commit _current = null ;
193182 private bool _findFirstMerged = false ;
0 commit comments