// Copyright (C) 2018 Artur Shepilko
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page creator-vcs-fossil.html
    \previouspage creator-reference.html

    \ingroup creator-reference-vcs

    \title Fossil

    \brief Additional Fossil functions.

    Fossil is an open source distributed version control system, designed
    and developed by the creator of SQLite. A stand-alone Fossil executable
    has a source control management engine, web interface, issue tracker,
    wiki, and built-in web server. Fossil is available for Linux, Windows,
    and \macos.

    \note Enable the Fossil plugin to use it.

    To use Fossil from \QC, you must install and configure it, as described in
    the following sections.

    \section1 Configuring Fossil

    \list 1
        \li Download the \l{http://fossil-scm.org}{Fossil SCM client} and
            install the \c fossil executable file in your \c PATH.

        \li Create or designate a directory to store local Fossil repositories
            and remote clones. For example: \c ~/fossils/qt.

        \li Select \preferences >
            \uicontrol {Version Control} > \uicontrol Fossil, and set the
            designated directory in the \uicontrol {Default path} field.

            \image {qtcreator-preferences-vcs-fossil.webp} {Fossil tab in Version Control preferences}
    \endlist

    To create a local Fossil repository, select \uicontrol Tools >
    \uicontrol Fossil > \uicontrol {Create Repository}.

    To clone a remote Fossil repository, select \uicontrol File >
    \uicontrol {New Project} > \uicontrol {Import Project} >
    \uicontrol {Fossil Clone}.

    \section1 Additional Fossil functions

    In addition to the standard version control system functions described in
    \l {Use common VCS functions}, the \uicontrol Fossil submenu has
    the following items.

    \table
        \header
            \li Menu Item
            \li Description
        \row
            \li \uicontrol Pull
            \li Pull changes from the remote repository.
        \row
            \li \uicontrol Push
            \li Push committed changes to the remote repository.
        \row
            \li \uicontrol Update
            \li Change the version of the current checkout. Any uncommitted
                changes are retained and applied to the new checkout.
        \row
            \li \uicontrol Settings
            \li Configure the settings of the local repository.
    \endtable

    \section1 Fossil preferences

    To set Fossil preferences, select \preferences >
    \uicontrol {Version Control} > \uicontrol Fossil.

    \table
        \header
            \li Preference
            \li Description
        \row
            \li \uicontrol {Command}
            \li Specifies the path to the command-line client executable.
        \row
            \li \uicontrol {Default path}
            \li Sets the path to the directory to store local repositories
                by default.
        \row
            \li \uicontrol {Default user}
            \li Specifies an existing user who becomes the author of changes
                made to the repository.
        \row
            \li \uicontrol {SSL/TLS identity}
            \li Sets the SSL/TLS client identity key to use for authentication
                if the server requests it.
        \row
            \li \uicontrol {Log count}
            \li Sets the maximum number of lines the log can have.
        \row
            \li \uicontrol {Log width}
            \li Sets the width of log entry lines to 20 or above. The value 0
                shows a single line per entry.
        \row
            \li \uicontrol {Timeout}
            \li Sets a timeout for version control operations.
        \row
            \li \uicontrol {Disable auto sync}
            \li Disables automatic pull before a commit or update and automatic
                push after a commit or tag or branch creation.
    \endtable

    \sa {Enable and disable plugins}, {Set up version control systems},
    {Use common VCS functions}, {Version control systems}
*/
