From d7abe6391c8934d907c3e2b0170abf8f2f4411cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cezary=20Pi=C4=85tek?= Date: Mon, 7 Nov 2016 23:14:58 +0100 Subject: [PATCH] Add active pattern for repository item type --- src/CodeTopologyBuilder/svnlog.fs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/CodeTopologyBuilder/svnlog.fs b/src/CodeTopologyBuilder/svnlog.fs index 0b68425..6038d18 100644 --- a/src/CodeTopologyBuilder/svnlog.fs +++ b/src/CodeTopologyBuilder/svnlog.fs @@ -1,4 +1,5 @@ -module svnlog +[] +module svnlog open FSharp.Data open System.Xml.Linq @@ -20,6 +21,8 @@ type private MoveMap = Dictionary type private Removals()= let fileRemovals = MoveMap() let dirRemovals = MoveMap() + let (|Dir|File|) (path:svnData.Path)= + if path.Kind = "dir" then Dir else File let mapDirPath (path:string)= match dirRemovals.Keys |> Seq.tryFind (fun x -> path.StartsWith(x)) with @@ -42,11 +45,9 @@ type private Removals()= for c in paths |> Seq.filter(fun x -> Option.isSome x.CopyfromPath) do let copyFrom = Option.get c.CopyfromPath if paths |> Seq.exists (fun x -> x.Action = "D" && x.Value = copyFrom) then - if c.Kind = "dir" then - addMove dirRemovals c.Value copyFrom - else - addMove fileRemovals c.Value copyFrom - + match c with + | Dir -> addMove dirRemovals c.Value copyFrom + | File -> addMove fileRemovals c.Value copyFrom member this.mapPaths (paths: svnData.Path [])= paths |> Array.map mapFilePath