anchor.diff:  #endif
                       LocalNuGet(source,None)
                   else
  -                    if source.Contains("/v3/") || source.EndsWith("index.json") then
  -                        NuGetV3 { Url = source; Authentication = auth }
  -                    else
  -                        NuGetV2 { Url = source; Authentication = auth }
  -
  +                    match protocolVersion with
  +                    | Some NugetProtocolVersion.ProtocolVersion2 -> NuGetV2 { Url = source; ProtocolVersion = NugetProtocolVersion.ProtocolVersion2; Authentication = auth }
  +                    | Some NugetProtocolVersion.ProtocolVersion3 -> NuGetV3 { Url = source; ProtocolVersion = NugetProtocolVersion.ProtocolVersion3; Authentication = auth }
  +                    | None -> NuGetV3 { Url = source; ProtocolVersion = NugetProtocolVersion.ProtocolVersion3; Authentication = auth }
               | _ ->  match System.Uri.TryCreate(source, System.UriKind.Relative) with
                       | true, uri -> LocalNuGet(source,None)
                       | _ -> failwithf "unable to parse package source: %s" source
  
positive.code:                 parts.[1].Replace("\"","").TrimEnd([| '/' |])
  
          let feed = normalizeFeedUrl source
          PackageSource.Parse(feed, parseAuth(line, feed))
  
      static member Parse(source,auth) =
          match tryParseWindowsStyleNetworkPath source with
  
negative.code:     | MyGet
      | UnknownNuGetServer
  
  type NugetProtocolVersion =
      | ProtocolVersion2
      | ProtocolVersion3
  
  [<CustomComparison;CustomEquality>]
  type NuGetSource =
      { Url : string
        ProtocolVersion: NugetProtocolVersion
        Authentication : AuthProvider }
      member x.BasicAuth isRetry =
          x.Authentication.Retrieve isRetry
  