22,955 bytes added, 
13:42, 15 July 2016 <noinclude>{{caution|This template, via its [[Template:repo link/doc related|subtemplates]], is used by many pages.  Therefore modifications will propagate throughout the FlightGear wiki and have a large effect.  Changes should be carefully tested on a [[Template:repo link/sandbox|/sandbox]] subpage or as a user subpage before being implemented here.}}</noinclude><!--
-->{{#if: {{{cmd|}}}<!--                                            The optional prepended CLI command and options. -->
     | {{strip whitespace|{{{cmd}}}}} <nowiki></nowiki><!--         The command.
  -->{{#if: {{{opt|}}} | {{{opt}}} <nowiki></nowiki>}}<!--          The options. -->
   }}<!--
-->{{#ifeq: {{{full|}}} | 1 | |[}}<!--                              To link or not to link?  (default = yes).
-->{{#switch: {{{site|{{project infrastructure/code}}}}}
| s
| sf
| sourceforge = <!--
-->{{{protocol|https}}}://<!--                                      URL protocol (default = https).
-->{{#switch: {{{type|git web}}} <!--                               The user login name, if supplied. -->
     | git | svn = {{#if: {{{login|}}} | {{{login}}}@}}
   }}<!--
-->{{#switch: {{{type|git web}}} <!--                               The type of URL (default = git web).
-->  | git web = sourceforge.net
     | git = git.code.sf.net
     | svn web = sourceforge.net
     | svn = svn.code.sf.net
   }}/<!--
-->{{#if: {{{user|}}} <!--                                          Project or user? -->
     | u/{{{user}}}
     | p/{{{proj|flightgear}}}
   }}/<!--
-->{{{repo|flightgear}}}/<!--                                       The version control repository.
-->{{#switch: {{{type|git web}}} <!--                               Git vs. SVN repository (default = git). -->
     | git 
     | git web =
       {{#switch: {{{type|git web}}}
         | git = <!--                                               This URL stops here. -->
         | git web = {{#switch: {{{view|}}}
           | rss =
           | #default =
           ci/<!--                                                  The commit, tag, or branch (defaulting to next).
        -->{{{commit|{{#if: {{{tag|}}}
                       | {{{tag}}}
                       | {{{branch|next}}}
                     }}}}}/
         }}<!--
      -->{{#switch: {{{view|}}} <!--                                The different views. -->
           | tree = tree/
           | log = log/?path{{=}}
           | rss = feed/
           | commit = 
           | #default =<!--                                         Set the view based on the user supplied parameters.
        -->{{#if: {{{path|}}}
             | tree/
             | {{#if: {{{commit|}}}
                 |
                 | tree/
               }}
           }}
         }}<!--
      -->{{#switch: {{{view|}}}
           | rss = 
           | commit = 
           | #default =<!--
        -->{{#if: {{{path|}}} <!--                                    Only show the path and line number if the path is supplied. -->
             | {{{path|}}}<!--                                        The file path.
          -->{{#if: {{{line|}}} | #l{{{line}}} }}<!--             The optional line number. -->
           }}
         }}<!--
      -->{{#ifeq: {{{view|}}} | raw
           | ?format=raw
         }}
       }} <!--
    -->{{#if: {{{text|}}}
         | {{{text}}}<!--                                           A text description for the link. -->
         | {{#ifeq: {{{full|}}} | 1 <!--                            Construct text for the link. -->
             | <!--                                                 No text. -->
             | {{#if: {{{pre|}}}
                 | {{{pre}}}<!--                                    A prefix to the link label. -->
                 | {{#if: {{{simplepath|}}}
                     | <!--                                         No project, repository or branch. -->
                     | {{{user|{{{proj|flightgear}}}}}}/<!--        The user or project name.
                    -->{{{repo|flightgear}}}<!--                    The repository name.
                    -->{{#ifeq: {{{view|}}} | rss | <!--            The repository commit, tag, or branch (if view != rss). -->
                         | /{{{commit|{{{tag|{{{branch|next}}}}}}}}}
                       }}
                   }}
               }}<!--
            -->{{#switch: {{{view|tree}}}
                 | rss = 
                 | #default =
                 {{#if: {{{path|}}} <!--                            The file or directory path. -->
                   | {{#if: {{{simplepath|}}} | | /}}{{{path}}}
                 }}<!--
              -->{{#if: {{{line|}}} | #l{{{line}}}}}<!--        The optional line number. -->
               }}<!--
            -->{{#if: {{{pre|}}} <!--                               Add the commit or branch info for the prefixed text. -->
                 | {{#if: {{{commit|}}}
                     |<nowiki></nowiki> (commit {{{commit}}})
                     | {{#if: {{{tag|}}}
                         |<nowiki></nowiki> (tag {{{tag}}})
                         | {{#if: {{{branch|}}}
                             |<nowiki></nowiki> (branch {{{branch}}})
                           }}
                       }}
                   }}
               }}<!--
            -->{{#switch: {{{view|}}} <!--                          The view description. -->
                 | tree = 
                 | log = <nowiki></nowiki> log view
                 | commit = <nowiki></nowiki> commit view
                 | rss = <nowiki></nowiki> RSS feed
                 | #default =<!--                                   Set the view based on the user supplied parameters.
              -->{{#if: {{{path|}}}
                   | 
                   | {{#if: {{{commit|}}}
                       |<nowiki></nowiki> commit view
                     }}
                 }}
               }}
           }}
       }}
     | svn 
     | svn web =
       {{#switch: {{{type|}}}
         | svn = <!--                                               Skip the commit and view. -->
         | svn web = {{#switch: {{{view|}}}
           | rss =
           | #default =
           {{{commit|HEAD}}}/<!--                                   The revision number or HEAD.
        -->{{#switch: {{{view|}}} <!--                              The different views. -->
             | tree = tree/
             | log = log/?path{{=}}
             | rss = 
             | commit = 
             | #default =<!--                                       Set the view based on the user supplied parameters.
          -->{{#if: {{{tag|{{{branch|{{{path|}}}}}}}}}
               | tree/
               | {{#if: {{{commit|}}}
                   |
                   | tree/
                 }}
             }}
           }}
         }}
       }}<!--
    -->{{#switch: {{{view|}}}
         | commit = 
         | rss = feed/
         | #default =<!--
      -->{{#switch: {{{type|}}}
           | svn = <!--
        -->{{{tag|{{{branch|trunk}}}}}}<!--                         The tag or branch (default = trunk).
        -->{{#if: {{{path|}}} | /{{{path}}} }}<!--                  The file path.
        -->{{#if: {{{commit|}}} | @r{{{commit}}} }}<!--             The optional revision number. -->
           | svn web = <!--
        -->{{#if: {{{tag|{{{branch|{{{path|}}}}}}}}} <!--           Only show the tag, branch, path, and line number if a tag, branch or path is supplied. -->
             | {{{tag|{{{branch|trunk}}}}}}<!--                     The base path or branch (default = trunk).
          -->{{#if: {{{path|}}}
               | /{{{path}}}<!--                                    The file path.
            -->{{#if: {{{line|}}} | #l{{{line}}} }}<!--         The optional line number, but only if the path is supplied. -->
             }}
             | {{#if: {{{commit|}}} | | trunk}}<!--                 Minimally show the trunk if no commit is given. -->
           }}
         }}
       }} <!--
    -->{{#if: {{{text|}}}
         | {{{text}}}<!--                                           A text description for the link. -->
         | {{#ifeq: {{{full|}}} | 1 <!--                            Construct text for the link. -->
             | <!--                                                 No text. -->
             | {{#if: {{{pre|}}}
                 | {{{pre}}}<!--                                    A prefix to the link label. -->
                 | {{#if: {{{simplepath|}}}
                     | <!--                                         No project, repository or branch. -->
                     | {{{user|{{{proj|flightgear}}}}}}/<!--        The user or project name.
                    -->{{{repo|flightgear}}}<!--                    The repository name.
                    -->{{#switch: {{{view|}}}<!--                   The repository branch. -->
                         | rss =
                         | commit =
                         | #default = <!--
                      -->{{#if: {{{tag|{{{branch|{{{path|}}}}}}}}}
                           | /{{{tag|{{{branch|trunk}}}}}}
                         }}
                       }}
                   }}
               }}<!--
            -->{{#switch: {{{view|}}}
                 | rss = 
                 | #default =
                 {{#if: {{{path|}}} <!--                            The file or directory path. -->
                   | {{#if: {{{simplepath|}}} | | /}}{{{path}}}
                 }}<!--
              -->{{#if: {{{line|}}} | #l{{{line}}}}}<!--        The optional line number.
              -->{{#if: {{{commit|}}} | @r{{{commit}}}}} <!--       The commit. -->
               }}<!--
            -->{{#switch: {{{view|}}} <!--                          The view description. -->
                 | tree = 
                 | log = <nowiki></nowiki> log view
                 | commit = <nowiki></nowiki> commit view
                 | rss = <nowiki></nowiki> RSS feed
                 | #default =<!--                                   Set the view based on the user supplied parameters.
              -->{{#if: {{{tag|{{{branch|{{{path|}}}}}}}}}
                   | 
                   | {{#if: {{{commit|}}}
                       |<nowiki></nowiki> commit view
                     }}
                 }}
               }}
           }}
       }}
   }}
| gh
| gith
| github = <!--
-->{{{protocol|https}}}://<!--                                      URL protocol (default = https).
-->github.com<!--                                                   The URL.
-->{{#if: {{{user|{{{proj|}}}}}} | {{#if: {{{repo|}}}<!--           Continue with the URL construction, only if the project or repository is given. -->
     | {{#if: {{{user|}}} <!--                                      Project or user? -->
         | /{{{user}}}
         | {{#if: {{{proj|}}} | /{{{proj|}}}}}
       }}<!--
    -->{{#if: {{{repo|}}} | /{{{repo|}}}}}<!--                      The version control repository.
    -->{{#switch: {{{type|git web}}} <!--                           The URL type. -->
         | git = .git<!--                                           Append '.git' to the base repository URL. -->
         | git web = <!--
      -->{{#if: {{{view|{{{commit|{{{tag|{{{branch|{{{path|}}}}}}}}}}}}}}}
           | /<!--
        -->{{{view|tree}}}/<!--                                     The repository view.
        -->{{{commit|{{{tag|{{{branch|master}}}}}}}}}<!--           The branch or commit.
        -->{{#if: {{{path|}}} | /{{{path}}}}}<!--                   The file or directory path.
        -->{{#if: {{{line|}}} | #L{{{line}}} }} <!--            The optional line number(s). -->
         }}
         | zip = /archive/<!--                                      The base zip file URL.
        -->{{{commit|{{{tag|{{{branch|master}}}}}}}}}.zip<!--       Download for a specific commit, tag, or branch (defaulting to master). -->
       }}
   }}}} <!--
-->{{#if: {{{text|}}}
     | {{{text}}}<!--                                               The text description for the link. -->
     | {{#ifeq: {{{full|}}} | 1
         | <!--                                                     No text. -->
         | {{#if: {{{user|{{{proj|}}}}}}
             | {{#if: {{{repo|}}}
                 | {{#if: {{{pre|}}}
                     | {{{pre}}}<!--                                A prefix to the link label. -->
                     | {{#if: {{{simplepath|}}}
                         | <!--                                     No project, repository or branch. -->
                         | github/<!--                              Site advertising.
                        -->{{{user|{{{proj|}}}}}}<!--               The user or project name.
                        -->/{{{repo|}}}<!--                         The repository name.
                        -->{{#if: {{{view|{{{commit|{{{tag|{{{branch|}}}}}}}}}}}}
                             | /{{{commit|{{{tag|{{{branch|master}}}}}}}}}<!-- The repository commit, tag or branch.-->
                           }}
                       }}
                   }}<!--
                -->{{#switch: {{{type|git web}}} <!--               The URL type. -->
                     | git web =
                       {{#if: {{{path|}}} | /{{{path}}}}}<!--       The file or directory path.
                    -->{{#if: {{{line|}}} | #L{{{line}}}}} <!-- The optional line number(s).
                    -->{{#switch: {{{view|tree}}} <!--              The view description. -->
                         | blob =
                         | blame = <nowiki></nowiki> blame view
                         | commit = <nowiki></nowiki> commit view
                         | commits = <nowiki></nowiki> history view
                         | raw = <nowiki></nowiki> raw view
                         | tree =
                       }}
                     | zip = <nowiki></nowiki> zip file<!--         The link description. -->
                   }}
               }}
             | GitHub website
           }}
       }}
   }}
| gl
| gitl
| gitlab = <!--
-->{{{protocol|https}}}://<!--                                      URL protocol (default = https).
-->gitlab.com<!--                                                   The URL.
-->{{#if: {{{user|{{{proj|}}}}}} | {{#if: {{{repo|}}}<!--           Continue with the URL construction, only if the project or repository is given. -->
     | {{#if: {{{user|}}} <!--                                      Project or user? -->
         | /{{{user}}}
         | /{{{proj|}}}
       }}<!--
    -->{{#if: {{{repo|}}} | /{{{repo|}}}}}<!--                      The version control repository.
    -->{{#switch: {{{type|git web}}} <!--                           The URL type. -->
         | git = .git<!--                                           Append '.git' to the base repository URL. -->
         | git web = <!--
      -->{{#if: {{{view|{{{commit|{{{tag|{{{branch|{{{path|}}}}}}}}}}}}}}}
           | /<!--
        -->{{{view|blob}}}/<!--                                     The repository view.
        -->{{{commit|{{{tag|{{{branch|master}}}}}}}}}<!--           The branch or commit.
        -->{{#if: {{{path|}}} | /{{{path}}}}}<!--                   The file or directory path.
        -->{{#if: {{{line|}}} | #L{{{line}}} }} <!--            The optional line number(s). -->
         }}
         | zip = /repository/archive.zip<!--                        The base zip file URL.
        -->{{#if: {{{commit|{{{tag|{{{branch|master}}}}}}}}}
             | ?ref={{{commit|{{{tag|{{{branch|master}}}}}}}}}<!--  Download for a specific commit, tag, or branch (defaulting to master). -->
           }}
       }}
   }}}} <!--
-->{{#if: {{{text|}}}
     | {{{text}}}<!--                                               The text description for the link. -->
     | {{#ifeq: {{{full|}}} | 1
         | <!--                                                     No text. -->
         | {{#if: {{{user|{{{proj|}}}}}}
             | {{#if: {{{repo|}}}
                 | {{#if: {{{pre|}}}
                     | {{{pre}}}<!--                                A prefix to the link label. -->
                     | {{#if: {{{simplepath|}}}
                         | <!--                                     No project, repository or branch. -->
                         | gitlab/<!--                              Site advertising.
                        -->{{{user|{{{proj|}}}}}}/<!--              The user or project name.
                        -->{{{repo|}}}/<!--                         The repository name.
                        -->{{{commit|{{{tag|{{{branch|master}}}}}}}}}<!-- The commit, tag, or branch.-->
                       }}
                   }}<!--
                -->{{#switch: {{{type|git web}}} <!--               The URL type. -->
                     | git web =
                       {{#if: {{{path|}}} | /{{{path}}}}}<!--       The file or directory path.
                    -->{{#if: {{{line|}}} | #L{{{line}}}}} <!-- The optional line number(s).
                    -->{{#switch: {{{view|tree}}} <!--              TODO:  The view description. -->
                         | tree =
                       }}
                     | zip = <nowiki></nowiki> zip file<!--         The link description. -->
                   }}
               }}
             | GitLab website
           }}
       }}
   }}
| g
| go
| gito
| gitorious = <!--
-->{{{protocol|https}}}://<!--                                      URL protocol (default = https).
-->gitorious.org<!--                                                The URL (stop here if no project or repository is given).
-->{{#if: {{{proj|}}} | {{#if: {{{repo|}}}
     | {{#if: {{{proj|}}} | /{{{proj}}}}}<!--                       The project.
  -->{{#if: {{{repo|}}} | /{{{repo}}}}}<!--                         The version control repository.
  -->{{#switch: {{{type|git web}}} <!--                             Web interface or base URL. -->
       | git = .git<!--                                             Append '.git' to the base repository URL. -->
       | git web = ?<!--
    -->p={{{proj|fg}}}<!--                                          The project and repository names, with '.git' appended.
    -->:{{{repo|flightgear}}}<!--
    -->.git<!--
    -->;a={{#if: {{{view|}}} <!--                                   The repository view mode. -->
                | {{#switch: {{{view|}}}
                    | raw = blob_plain
                    | #default = {{{view|summary}}}
                  }}
                | {{#if: {{{path|}}} | blob
                    | {{#if: {{{commit|{{{mr|}}}}}}
                        | commit
                        | {{#if: {{{branch|{{{tag|}}}}}}
                            | shortlog
                            | summary
                          }}
                      }}
                  }}
               }}<!--
    -->{{#if: {{{path|}}} | {{;}}f={{{path|}}}}}<!--                The file or directory path.
    -->{{#if: {{{commit|{{{tag|{{{branch|{{{mr|}}}}}}}}}}}} <!--    The commit, tag, branch, or merge request query string. -->
        | {{#if: {{{view|}}}
            | {{#switch: {{{view|}}}
                | blob | raw | tree = {{;}}hb=
                | #default = {{;}}h=
              }}
            | {{#if: {{{path|}}}
                | {{;}}hb=
                | {{;}}h=
              }}
          }}
       }}<!--
    -->{{#if: {{{mr|}}}
         | refs/merge-requests/{{{mr}}} <!--                        The internal git reference for the merge request. -->
         | {{#if: {{{commit|}}}
             | {{{commit}}} <!--                                    The commit hash. -->
             | {{#if: {{{tag|}}}<!--                                The internal git reference for the tag. -->
                 | refs/tags/{{{tag}}}
                 | {{#if: {{{branch|}}}<!--                         The internal git reference for the branch. -->
                     | refs/heads/{{{branch}}}
                   }}
               }}
           }}
       }}<!--
    -->{{#if: {{{line|}}}  |#l{{{line}}}}} <!--                 The optional line number. -->
     }}
   }}}} <!--
-->{{#if: {{{text|}}}
     | {{{text}}}<!--                                               The text description for the link. -->
     | {{#ifeq: {{{full|}}} | 1
         | <!--                                                     No text. -->
         | {{#if: {{{proj|}}}
             | {{#if: {{{repo|}}}
                 | {{#if: {{{pre|}}}
                     | {{{pre}}}<!--                                A prefix to the link label. -->
                     | {{#if: {{{simplepath|}}}
                         | <!--                                     No project, repository or branch. -->
                         | gitorious/<!--                           Site advertising.
                        -->{{{proj|}}}/<!--                         The project name.
                        -->{{{repo|}}}/<!--                         The repository name.
                        -->{{#if: {{{mr|}}}
                             | merge-requests/{{{mr}}}<!--          The merge request.-->
                             | {{{commit|{{{tag|{{{branch|HEAD}}}}}}}}}<!-- Or the commit, tag or branch.-->
                           }}
                       }}
                   }}<!--
                -->{{#if: {{{path|}}} | /{{{path}}}}}<!--           The file or directory path.
                -->{{#if: {{{line|}}} | #l{{{line}}}}} <!--     The optional line number. -->
               }}
             | Gitorious website
           }}
       }}
   }}
| #default = <!--
-->{{{protocol|https}}}://<!--                                      URL protocol (default = https).
-->{{#if: {{{login|}}} | {{{login}}}@}}<!--                         The user login name, if supplied.
-->{{{site|flightgear.org}}}/<!--                                   Use the 'site' parameter as the domain name part of the URL.
-->{{#if: {{{user|}}} <!--                                          Project or user? -->
     | {{{user}}}
     | {{{proj|}}}
   }}<!--
-->{{#if: {{{repo|}}} | /{{{repo}}} }}<!--                          The version control repository.
-->{{#switch: {{{type|git web}}} <!--                               Git vs. SVN repository (default = git). -->
     | git =
     | git web = <big style="color:red">Generic git web interface is not implemented for {{tl|repo link}}</big>
     | svn = /{{{branch|trunk}}}<!--
  -->{{#if: {{{path|}}} | /{{{path}}}}}
     | svn web = <big style="color:red">Generic svn web interface is not implemented for {{tl|repo link}}</big>
   }}
}}<!--
-->{{#ifeq: {{{full|}}} | 1 | |]}}<!--                              To link or not to link?  (default = yes).
-->{{#if: {{{post|}}} | <nowiki></nowiki> {{{post}}}}}<!--          Appended text.
--><noinclude>
{{repo link/doc}}
</noinclude>