@@ -309,127 +309,80 @@ public void RemoveChildrenBranchFilters(string pattern)
309309
310310 public string BuildHistoriesFilter ( )
311311 {
312+ var includedRefs = new List < string > ( ) ;
312313 var excludedBranches = new List < string > ( ) ;
313314 var excludedRemotes = new List < string > ( ) ;
314315 var excludedTags = new List < string > ( ) ;
315- var includedBranches = new List < string > ( ) ;
316- var includedRemotes = new List < string > ( ) ;
317- var includedTags = new List < string > ( ) ;
318316 foreach ( var filter in HistoriesFilters )
319317 {
320318 if ( filter . Type == FilterType . LocalBranch )
321319 {
322- var name = filter . Pattern . Substring ( 11 ) ;
323- var b = $ "{ name . Substring ( 0 , name . Length - 1 ) } [{ name [ ^ 1 ] } ]";
324-
325320 if ( filter . Mode == FilterMode . Included )
326- includedBranches . Add ( b ) ;
321+ includedRefs . Add ( filter . Pattern ) ;
327322 else if ( filter . Mode == FilterMode . Excluded )
328- excludedBranches . Add ( b ) ;
323+ excludedBranches . Add ( $ "--exclude= \" { filter . Pattern . Substring ( 11 ) } \" --decorate-refs-exclude= \" { filter . Pattern } \" " ) ;
329324 }
330325 else if ( filter . Type == FilterType . LocalBranchFolder )
331326 {
332327 if ( filter . Mode == FilterMode . Included )
333- includedBranches . Add ( $ "{ filter . Pattern . Substring ( 11 ) } /*") ;
328+ includedRefs . Add ( $ "--branches= { filter . Pattern . Substring ( 11 ) } /*") ;
334329 else if ( filter . Mode == FilterMode . Excluded )
335- excludedBranches . Add ( $ "{ filter . Pattern . Substring ( 11 ) } /*") ;
330+ excludedBranches . Add ( $ "--exclude= \" { filter . Pattern . Substring ( 11 ) } /*\" --decorate-refs-exclude= \" { filter . Pattern } /* \" ") ;
336331 }
337332 else if ( filter . Type == FilterType . RemoteBranch )
338333 {
339- var name = filter . Pattern . Substring ( 13 ) ;
340- var r = $ "{ name . Substring ( 0 , name . Length - 1 ) } [{ name [ ^ 1 ] } ]";
341-
342334 if ( filter . Mode == FilterMode . Included )
343- includedRemotes . Add ( r ) ;
335+ includedRefs . Add ( filter . Pattern ) ;
344336 else if ( filter . Mode == FilterMode . Excluded )
345- excludedRemotes . Add ( r ) ;
337+ excludedRemotes . Add ( $ "--exclude= \" { filter . Pattern . Substring ( 13 ) } \" --decorate-refs-exclude= \" { filter . Pattern } \" " ) ;
346338 }
347339 else if ( filter . Type == FilterType . RemoteBranchFolder )
348340 {
349341 if ( filter . Mode == FilterMode . Included )
350- includedRemotes . Add ( $ "{ filter . Pattern . Substring ( 13 ) } /*") ;
342+ includedRefs . Add ( $ "--remotes= { filter . Pattern . Substring ( 13 ) } /*") ;
351343 else if ( filter . Mode == FilterMode . Excluded )
352- excludedRemotes . Add ( $ "{ filter . Pattern . Substring ( 13 ) } /*") ;
344+ excludedRemotes . Add ( $ "--exclude= \" { filter . Pattern . Substring ( 13 ) } /*\" --decorate-refs-exclude= \" { filter . Pattern } /* \" ") ;
353345 }
354346 else if ( filter . Type == FilterType . Tag )
355347 {
356- var name = filter . Pattern ;
357- var t = $ "{ name . Substring ( 0 , name . Length - 1 ) } [{ name [ ^ 1 ] } ]";
358-
359348 if ( filter . Mode == FilterMode . Included )
360- includedTags . Add ( t ) ;
349+ includedRefs . Add ( $ "refs/tags/ { filter . Pattern } " ) ;
361350 else if ( filter . Mode == FilterMode . Excluded )
362- excludedTags . Add ( t ) ;
351+ excludedTags . Add ( $ "--exclude= \" { filter . Pattern } \" --decorate-refs-exclude= \" refs/tags/ { filter . Pattern } \" " ) ;
363352 }
364353 }
365354
366- bool hasIncluded = includedBranches . Count > 0 || includedRemotes . Count > 0 || includedTags . Count > 0 ;
367- bool hasExcluded = excludedBranches . Count > 0 || excludedRemotes . Count > 0 || excludedTags . Count > 0 ;
368-
369355 var builder = new StringBuilder ( ) ;
370- if ( hasIncluded )
356+ if ( includedRefs . Count > 0 )
371357 {
372- foreach ( var b in includedBranches )
358+ foreach ( var r in includedRefs )
373359 {
374- builder . Append ( "--branches=" ) ;
375- builder . Append ( b ) ;
376- builder . Append ( ' ' ) ;
377- }
378-
379- foreach ( var r in includedRemotes )
380- {
381- builder . Append ( "--remotes=" ) ;
382360 builder . Append ( r ) ;
383361 builder . Append ( ' ' ) ;
384362 }
385-
386- foreach ( var t in includedTags )
387- {
388- builder . Append ( "--tags=" ) ;
389- builder . Append ( t ) ;
390- builder . Append ( ' ' ) ;
391- }
392363 }
393- else if ( hasExcluded )
364+ else if ( excludedBranches . Count + excludedRemotes . Count + excludedTags . Count > 0 )
394365 {
395- if ( excludedBranches . Count > 0 )
366+ foreach ( var b in excludedBranches )
396367 {
397- foreach ( var b in excludedBranches )
398- {
399- builder . Append ( "--exclude=" ) ;
400- builder . Append ( b ) ;
401- builder . Append ( " --decorate-refs-exclude=refs/heads/" ) ;
402- builder . Append ( b ) ;
403- builder . Append ( ' ' ) ;
404- }
368+ builder . Append ( b ) ;
369+ builder . Append ( ' ' ) ;
405370 }
406371
407372 builder . Append ( "--exclude=HEA[D] --branches " ) ;
408373
409- if ( excludedRemotes . Count > 0 )
374+ foreach ( var r in excludedRemotes )
410375 {
411- foreach ( var r in excludedRemotes )
412- {
413- builder . Append ( "--exclude=" ) ;
414- builder . Append ( r ) ;
415- builder . Append ( " --decorate-refs-exclude=refs/remotes/" ) ;
416- builder . Append ( r ) ;
417- builder . Append ( ' ' ) ;
418- }
376+ builder . Append ( r ) ;
377+ builder . Append ( ' ' ) ;
419378 }
420379
421380 builder . Append ( "--exclude=origin/HEA[D] --remotes " ) ;
422381
423- if ( excludedTags . Count > 0 )
382+ foreach ( var t in excludedTags )
424383 {
425- foreach ( var t in excludedTags )
426- {
427- builder . Append ( "--exclude=" ) ;
428- builder . Append ( t ) ;
429- builder . Append ( " --decorate-refs-exclude=refs/tags/" ) ;
430- builder . Append ( t ) ;
431- builder . Append ( ' ' ) ;
432- }
384+ builder . Append ( t ) ;
385+ builder . Append ( ' ' ) ;
433386 }
434387
435388 builder . Append ( "--tags " ) ;
0 commit comments