diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..c752995
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+
+# You can add one username per supported platform and one custom link
+open_collective: gitextensions
+custom: https://github.com/gitextensions/gitextensions/wiki
diff --git a/.gitignore b/.gitignore
index 378eac2..5ce5d35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,10 @@
build
+source/_build/
+*.orig
+tx.exe
+GitExtensions.settings.backup
+.vscode/
+source/locale/.doctrees/
+/source/__pycache__/
+/source/extensions/__pycache__/
+*.pyc
diff --git a/.readthedocs.yml b/.readthedocs.yml
new file mode 100644
index 0000000..947bcaa
--- /dev/null
+++ b/.readthedocs.yml
@@ -0,0 +1,22 @@
+# .readthedocs.yaml
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the version of Python and other tools you might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.11"
+
+# Build documentation in the docs/ directory with Sphinx
+sphinx:
+ configuration: source/conf.py
+
+# We recommend specifying your dependencies to enable reproducible builds:
+# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
+python:
+ install:
+ - requirements: source/requirements.txt
diff --git a/GitExtensions.settings b/GitExtensions.settings
new file mode 100644
index 0000000..76df6f2
--- /dev/null
+++ b/GitExtensions.settings
@@ -0,0 +1,45 @@
+
+
+
+
+ RevisionLinkDefs
+
+
+ <?xml version="1.0" encoding="utf-16"?>
+<ArrayOfGitExtLinkDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <GitExtLinkDef>
+ <SearchInParts>
+ <RevisionPart>Message</RevisionPart>
+ <RevisionPart>LocalBranches</RevisionPart>
+ <RevisionPart>RemoteBranches</RevisionPart>
+ </SearchInParts>
+ <LinkFormats>
+ <GitExtLinkFormat>
+ <Caption>Issue {0}</Caption>
+ <Format>https://github.com/gitextensions/gitextensionsdoc/issues/{0}</Format>
+ </GitExtLinkFormat>
+ </LinkFormats>
+ <Name>GitHub - issues</Name>
+ <SearchPattern>(\s*(,|and)?\s*#\d+)+</SearchPattern>
+ <NestedSearchPattern>(\d+)+</NestedSearchPattern>
+ <Enabled>true</Enabled>
+ </GitExtLinkDef>
+ <GitExtLinkDef>
+ <SearchInParts>
+ <RevisionPart>Message</RevisionPart>
+ </SearchInParts>
+ <LinkFormats>
+ <GitExtLinkFormat>
+ <Caption>View on GitHub</Caption>
+ <Format>https://github.com/gitextensions/gitextensionsdoc/commit/%COMMIT_HASH%</Format>
+ </GitExtLinkFormat>
+ </LinkFormats>
+ <Name>GitHub - commit</Name>
+ <SearchPattern>.*</SearchPattern>
+ <NestedSearchPattern />
+ <Enabled>true</Enabled>
+ </GitExtLinkDef>
+</ArrayOfGitExtLinkDef>
+
+
+
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 0e74310..ac663d9 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) sou
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
help:
@echo "Please use \`make ' where is one of"
@@ -33,7 +33,6 @@ help:
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
- @echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@@ -42,7 +41,7 @@ clean:
-rm -rf $(BUILDDIR)/*
html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ $(SPHINXBUILD) -W -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
@@ -131,11 +130,6 @@ info:
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
- @echo
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
diff --git a/make-html_docker.cmd b/make-html_docker.cmd
new file mode 100644
index 0000000..961598c
--- /dev/null
+++ b/make-html_docker.cmd
@@ -0,0 +1 @@
+docker run --rm -v %CD%:/docs sphinxdoc/sphinx sphinx-build -b html -d build/doctrees source build/html
\ No newline at end of file
diff --git a/make.cmd b/make.cmd
index 0ef312b..1fd3989 100644
--- a/make.cmd
+++ b/make.cmd
@@ -31,7 +31,6 @@ if "%1" == "help" (
echo. text to make text files
echo. man to make manual pages
echo. texinfo to make Texinfo files
- echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if enabled
@@ -153,14 +152,6 @@ if "%1" == "texinfo" (
goto end
)
-if "%1" == "gettext" (
- %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
- goto end
-)
-
if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
diff --git a/progress.md b/progress.md
deleted file mode 100644
index 110003d..0000000
--- a/progress.md
+++ /dev/null
@@ -1,62 +0,0 @@
-Progress
-========
-
-- [x] 1 Git Extensions
- - [x] 1.1 Features
- - [x] 1.2 Video tutorials
-- [x] 2 Getting started
- - [x] 2.1 Install
- - [x] 2.2 Settings
- - [x] 2.3 Start Page
- - [x] 2.4 Clone existing repository
- - [x] 2.5 Create new repository
-- [x] 3 Browse repository
- - [x] 3.1 View commit log
- - [x] 3.2 Search history
- - [x] 3.3 Singe file history
- - [x] 3.4 Blame
-- [x] 4 Commit
- - [x] 4.1 Commit changes
- - [x] 4.2 Cherry pick commit
- - [x] 4.3 Revert commit
- - [x] 4.4 Stash changes
-- [x] 5 Tag
- - [x] 5.1 Create tag
- - [x] 5.2 Delete tag
-- [x] 6 Branches
- - [x] 6.1 Create branch
- - [x] 6.2 Checkout branch
- - [x] 6.3 Merge branches
- - [x] 6.4 Rebase branch
- - [x] 6.5 Delete branch
-- [x] 7 Patches
- - [x] 7.1 Create patch
- - [x] 7.2 Apply patches
-- [x] 8 Remote feature
- - [x] 8.1 Manage remote repositories
- - [x] 8.2 Create SSH key
- - [x] 8.2.1 PuTTY and github
- - [x] 8.2.2 OpenSSH and github
- - [x] 8.3 Pull changes
- - [x] 8.4 Push changes
-- [x] 9 Merge conflicts
- - [x] 9.1 Handle merge conflicts
-- [x] 10 Notes
-- [x] 11 Submodules
- - [x] 11.1 Manage submodules
- - [x] 11.2 Add submodule
- - [x] 11.3 Remove submodule
-- [x] 12 Maintenance
- - [x] 12.1 Compress Git database
- - [x] 12.2 Recover lost objects
- - [x] 12.3 Fix user names
- - [x] 12.4 Ignore files
-- [x] 13 Translations
- - [x] 13.1 Change language
- - [x] 13.2 Translate Git Extensions
-- [x] 14 Integration
- - [x] 14.1 Visual Studio
- - [x] 14.2 Windows Explorer
-- [x] 15 Command line
- - [x] 15.1 Git Extensions command line
-- [x] Git Cheat Sheet
diff --git a/readme.md b/readme.md
index d708d1e..f540f2e 100644
--- a/readme.md
+++ b/readme.md
@@ -1,41 +1,65 @@
-Git Extensions Manual
-=====================
+# Git Extensions Manual
+
This repository contains the new Git extensions Manual. Feel free to help us improve this manual by sending pull requests
or by opening issues.
-View Online
------------
-The current documentation can be viewed here: https://gitextensions.readthedocs.org/en/latest/
+Refer to the Wiki here: for details on how to update the documentation.
+
+## View Online
+
+The current documentation can be viewed here:
-PDF and others format can be downloaded here: https://readthedocs.org/projects/gitextensions/downloads/
+PDF and other formats can be downloaded here:
-**Note:** Only the HTML is "supported" (i.e: on the display point of view). Other format might have layout issue
-but the content remains the same for all format, wether or not you build it locally (provided your local clone is
+**Note:** Only the HTML format is "supported" (i.e. from the display point of view). Other formats might have layout issues
+but the content remains the same for all formats, whether or not you build it locally (provided your local clone is
up to date).
-Build
------
+## Build
+
+To generate the documentation, you need to have Sphinx installed:
+The following installs and build the GE html documentation for any Python package with PIP included:
+
+- pip install -U sphinx
+- sphinx-build -b html -d build/doctrees source build/html
+
+If you have docker installed, you could also generate the documentation using the command in a `cmd` prompt (or run the file `make-html_docker.cmd`):
+
+```
+docker run --rm -v %CD%:/docs sphinxdoc/sphinx sphinx-build -b html -d build/doctrees source build/html
+```
### HTML
+
Simply run `make-html.cmd`. You can also use `make-singlehtml.cmd` to generate a single HTML
file. The `make_and_start_Browser.cmd` is an alias of `make-html.cmd` that will open in your
default browser the documentation main index.
### HTML Help Files
-**Warning:** This format is not completly supported (i.e: you can generate it but we don't
-guarantee an as good display quality as for HTML).
-Download HTML Help Workshop (http://www.microsoft.com/en-us/download/details.aspx?id=21138).
+**Warning:** This format is not completely supported (i.e. you can generate it but we don't
+guarantee as good a display quality as for HTML).
+
+Download HTML Help Workshop ().
-To build the file, use `makeHTMLHelp.cmd`
+To build the file, use `make-HTMLHelp.cmd`
### PDF
-**Warning:** This format is not completly supported (i.e: you can generate it but we don't
-guarantee an as good display quality as for HTML).
+
+**Warning:** This format is not completely supported (i.e. you can generate it but we don't
+guarantee as good a display quality as for HTML).
To use the PDF builder, you'll need to install:
-* rst2pdf `easy_install rst2pdf`
-* pil `easy_install pil`
+- rst2pdf `easy_install rst2pdf`
+- pil `easy_install pil`
Also add `,'rst2pdf.pdfbuilder'` to the source/conf.py file at the line 28. Then run `make.cmd pdf`.
+
+## Version update
+
+- Set version in source/conf.py
+- Create release branch release/x.y (this is the default from the GE About menu for released versions, 'master' for development builds).
+- When releasing final, push 'latest' branch to release/x.y commit (this branch is the default when browsing ).
+- Edit versions in (admin privileges needed). Keep relevant versions active.
+- Trigger a build for changed versions
diff --git a/source/branches.rst b/source/branches.rst
index c9784de..a3b98da 100644
--- a/source/branches.rst
+++ b/source/branches.rst
@@ -1,42 +1,47 @@
+.. _branches:
+
Branches
========
-.. image:: /images/branch.png
+.. image:: /images/branches/branch.png
:align: right
-Branches are used to commit changes separate from other commits. It is very common to create a branch when you
-start working on a feature and you are not sure if this feature will be finished in time for the next release. The
-image on the right illustrates a branch created on top of commit B.
-
-In Git branches are created very often. Creating a branch is very easy to do and it is recommended to create a branch
-very often. In fact, when you make a commit to a cloned repository you start a new branch. I will explain this in the
-pull chapter.
+Branches are used to commit changes separate from other commits. It is very common to create a new branch when you
+start working on a feature to keep the work done on that feature separate from other work. When the feature is
+complete the branch can be merged or rebased as you choose such that the commits for the feature either remain as a
+parallel branch or appear as a continuous single line of development as if the branch had never existed in the first
+place. The image on the right illustrates a branch created on top of commit B.
-You can check on what branch you are working in the toolbar.
+You can see the name of your current branch in a combo box in the toolbar. You can switch to another branch by
+choosing from the combo box list. In the commit log the current branch has an arrow head to the left of its name. If
+you are not currently on a branch because you have checked out a specific commit but not any particular branch then
+Git Extensions will show ``(no branch)`` in place of a branch name in the toolbar. This is called "Detached HEAD
+mode". In Git you can refer to your current branch or commit by the special reference ``HEAD`` in place of the
+branch name or commit reference.
-.. image:: /images/branch_name.png
+.. image:: /images/branches/branch_toolbar.png
Create branch
-------------
-In Git Extensions there are multiple ways to create a new branch. In the image below I create a new branch from the
+In Git Extensions there are multiple ways to create a new branch. In the image below I create a new branch from the
context menu in the commit log. This will create a new branch on the revision that is selected.
-.. image:: /images/new_branch.png
+.. image:: /images/branches/new_branch.png
-I will create a new branch called ``Refactor``. In this branch I can do whatever I want without considering others.
-In the ``Create branch`` dialog there is a checkbox you can check if you want to checkout this branch immediate after
-the branch is created.
+I will create a new branch called ``feature/my_branch``. In this branch I can do whatever I want without affecting others.
+The default in Git Extensions is to check out a new branch after it is created. If you want to create a new branch
+but remain on your current branch, uncheck the ``Checkout after create`` checkbox in the ``Create branch`` dialog.
-.. image:: /images/create_branch_dialog.png
+.. image:: /images/branches/create_branch_dialog.png
-When the branch is created you will see the new branch ``Refactor`` in the commit log. If you chose to checkout this
-branch the next commit will be committed to the new branch.
+When the branch is created you will see the new branch ``feature/my_branch`` in the commit log. If you chose to checkout this
+branch the next commit will be committed to the new branch.
-.. image:: /images/refactor_branch.png
+.. image:: /images/branches/refactor_branch.png
-Creating branches in Git requires only 41 bytes of space in the repository. Creating a new branch is very easy and is
-very fast. The complete work flow of Git is optimized for branching and merging.
+Creating branches in Git requires only 41 bytes of space in the repository. Creating a new branch is very easy and
+fast. The complete work flow of Git is optimized for branching and merging.
Orphan branches
^^^^^^^^^^^^^^^
@@ -51,82 +56,151 @@ If you uncheck the last option then the working dir and index will not be touche
Checkout branch
---------------
-You can switch from the current branch to another branch using the checkout command. Checkout a branch sets the current
-branch and updates all sources in the working directory. Uncommitted changes in the working directory can be overwritten,
-make sure your working directory is clean.
+You can switch from the current branch to another branch using the checkout command. Checking out a branch sets the current
+branch and updates all of the source files in the working directory. Uncommitted changes in the working directory can be
+overwritten so it is best practice to make sure your working directory is clean by either committing or stashing any current
+changes before checking out a branch. If you do not clean your working directory then, in the ``Checkout branch`` dialog, you
+can choose between four options for your local uncommitted changes:
-.. image:: /images/checkout_branch.png
++------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ``Don't change`` | Local changes will be retained if there are not conflicting changes from the branch you are checking out. |
++------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ``Merge`` | Performs a three-way merge between your current branch, your local changes and the branch you are checking out. |
++------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ``Stash`` | Your local changes are stashed and the new branch is checked out. You can retrieve your changes on the new branch with stash-pop. |
++------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ``Reset`` | Your local changes are discarded and the new branch is checked out. Use caution with this option as Git has no record of uncommitted changes so they cannot be retrieved. |
++------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. image:: /images/branches/checkout_branch.png
Merge branches
--------------
-In the image below there are two branches, ``[Refactor]`` and ``[master]``. We can merge the commits from the master branch
-into the Refactor. If we do this, the Refactor branch will be up to date with the master branch, but not the other way around.
-As long as we are working on the Refactor branch we cannot tough the master branch itself. We can merge the sources of
+In the image below there are two branches, ``[feature/refactor]`` and ``[master]``. We can merge the commits from the master branch
+into the feature/refactor branch. If we do this, the feature/refactor branch will be up to date with the master branch, but not the other way around.
+As long as we are working on the feature/refactor branch we cannot touch the master branch itself. We can merge the sources of
master into our branch, but cannot make any change to the master branch.
-.. image:: /images/merge1.png
+.. image:: /images/branches/merge1.png
+
+To merge the feature/refactor branch into the master branch, we first need to switch to the master branch.
+
+.. image:: /images/branches/merge2.png
+
+Once we are on the master branch, select the feature/refactor branch and select merge. Alternatively choose ``Merge branches`` from the ``Commands`` menu and select the feature/refactor branch.
+
+.. image:: /images/branches/merge_context_menu.png
+
+In the merge dialog you can verify which branch you are working on, as well as set advanced merge options (see :ref:`Advanced Merge Options`). Select the branch to merge with then click the ``Merge`` button.
+
+.. image:: /images/branches/merge_dialog.png
+
+After the merge the commit log will show the new commit containing the merge. Notice that the feature/refactor branch is not changed
+by this merge. If you want to continue working on the feature/refactor branch you can merge the feature/refactor branch with master. You can
+instead delete the feature/refactor branch if it is not used anymore.
+
+ .. image:: /images/branches/merge3.png
+
+ For more information about merge conflicts and further options, see :ref:`merge_conflicts`.
+
+.. _Advanced Merge Options:
+
+Advanced Merge Options
+^^^^^^^^^^^^^^^^^^^^^^
+
+The `Show advanced options` checkbox will show the following options when activated:
-To merge the Refactor branch into the master branch, we need to switch to the master branch first.
+* Use non-default merge strategy, with a drop-down field for selecting the alternate merge strategy. The strategies are:
-.. image:: /images/merge2.png
+ * **resolve**
-Once we are on the master branch we can choose merge by choosing ``Merge branches`` from the ``Commands`` menu. In the merge
-dialog you can check the branch you are working on. After selected the branch to merge with, click the ``Merge`` button.
+ * This can only resolve two heads (i.e. the current branch and another branch you pulled from) using a 3-way merge algorithm. It tries to carefully detect criss-cross merge ambiguities and is considered generally safe and fast.
-.. image:: /images/merge_dialog.png
+ * **recursive**
-After the merge the commit log will show the new commit containing the merge. Notice that the Refactor branch is not changed
-by this merge. If you want to continue working on the Refactor branch you can merge the Refactor branch with master. You could
-also delete the Refactor branch if it is not used anymore.
+ * This can only resolve two heads using a 3-way merge algorithm. When there is more than one common ancestor that can be used for 3-way merge, it creates a merged tree of the common ancestors and uses that as the reference tree for the 3-way merge. Additionally this can detect and handle merges involving renames. This is the default merge strategy when pulling or merging one branch.
-.. image:: /images/merge3.png
+ * **octopus**
-.. note::
+ * This resolves cases with more than two heads, but refuses to do a complex merge that needs manual resolution. It is primarily meant to be used for bundling topic branch heads together. This is the default merge strategy when pulling or merging more than one branch.
- When you need to merge with on unnamed branch you can use a tag to give it a temporary name.
+ * **ours**
+
+ * This resolves any number of heads, but the resulting tree of the merge is always that of the current branch head, effectively ignoring all changes from all other branches. It is meant to be used to supersede old development history of side branches.
+
+ * **subtree**
+
+ * This is a modified recursive strategy. When merging trees A and B, if B corresponds to a subtree of A, B is first adjusted to match the tree structure of A, instead of reading the trees at the same level. This adjustment is also done to the common ancestor tree.
+
+* Squash commits
+* Allow unrelated histories
+* Add log messages, with an input field for specifying number of log messages to add
+* Specify merge message, with an input field for specifying a custom merge message
Rebase branch
-------------
-The rebase command is the most complex command in Git. The rebase command is very similar to the merge command. Both rebase
-and merge are used to get a branch up-to-date. The main difference is that rebase can be used to keep the history linear
+The rebase command is very similar to the merge command. Both rebase
+and merge are used to get a branch up-to-date. The main difference is that rebase can be used to keep the history linear
contrary to merges.
-.. image:: /images/rebase1.png
+.. image:: /images/branches/merge1.png
+
+Select the commit where you want to to rebase the current branch.
+
+.. image:: /images/branches/rebase_context_menu.png
+
+A rebase of feature/refactor on top of master will perform the following actions:
-A rebase of Refactor on top of master will perform the following actions:
+* The branch feature/refactor will be moved to the master branch
+* The commits in the previous feature/refactor branch will be recommitted in the moved feature/refactor branch
-* All commits specific to the Refactor branch will be stashed in a temporary location
-* The branch Refactor will be removed
-* The branch Refactor will be recreated on the master branch
-* All commits will be recommitted in the new Refactor branch
+ .. note::
-During a rebase merge conflicts can occur. You need to solve the merge conflicts for each commit that is rebased. The
-rebase function in Git Extensions will guide you through all steps needed for a successful rebase.
+ During a rebase merge conflicts can occur. You need to solve the merge conflicts for each commit that is rebased. The
+ rebase function in Git Extensions will guide you through all steps needed for a successful rebase. See :ref:`merge_conflicts` for more information.
-.. image:: /images/rebase_dialog.png
+.. image:: /images/branches/rebase_dialog.png
-The image below shows the commit log after the rebase. Notice that the history is changed and is seems like the commits on
-the Refactor branch are created after the commits on the master branch.
+The image below shows the commit log after the rebase. Notice that the history is changed and it seems like the commits on
+the feature/refactor branch are created after the commits on the master branch.
-.. image:: /images/rebase2.png
+.. image:: /images/branches/rebase2.png
.. warning::
- Because this function rewrites history you should only use this on branches that are not published to other repositories
- yet. When you rebase a branch that is already pushed it will be harder to pull or push to that remote. If you want to get
+ Because this function rewrites history you should only use this on branches that are not published to other repositories
+ yet. When you rebase a branch that is already pushed it will be harder to pull or push to that remote. If you want to get
a branch up-to-date that is already published you should merge.
+Interactive rebase
+------------------
+
+It is possible to modify the order, merge commits etc when committing.
+
+See :ref:`modify_history` for more information.
+
+Squash
+------
+
+Git has no native squash operation, it can be done with various combinations of rebase and reset.
+This is described in the `Git Extensions wiki `_.
+
+See :ref:`modify_history` and `Git documentation `_ for more information.
+
Delete branch
-------------
-It is very common to create a lot of branches. You can delete branches when they are not needed anymore and you do not want
-to keep the work done in that branch. When you delete a branch that is not yet merged, all commits will be lost. When you
-delete a branch that is already merged with another branch, the merged commits will not be lost because they are also part
-of another branch.
+Since it is common to create many branches, it is often necessary to delete branches. Most commonly you will need to delete
+branches on which work has finished and their contents are merged into master or your main branch. You can also delete
+unmerged branches when they are not needed anymore and you do not want to keep the work done in that branch.
+
+When you delete a branch that is not yet merged, all of the commits that are in only the deleted branch will be lost.
+When you delete a branch that is already merged with another branch, the merged commits will not be lost because they are
+also part of another branch.
-You can delete a branch using ``Delete branch`` in ``Commands`` menu. If you want to delete a branch that is not merged into
-another branch, you need to check the ``Force delete`` checkbox.
+You can delete a branch using ``Delete branch`` from the ``Commands`` menu. If you want to delete a branch that is not merged into
+your current branch (``HEAD`` in Git), you need to check the ``Force delete`` checkbox.
-.. image:: /images/delet_branch.png
+.. image:: /images/branches/delete_branch.png
diff --git a/source/browse_repository.rst b/source/browse_repository.rst
index e6d0ac7..c0b3928 100644
--- a/source/browse_repository.rst
+++ b/source/browse_repository.rst
@@ -1,60 +1,165 @@
+.. _browse-repository:
+
Browse Repository
=================
-You can browse a repository by starting Git Extensions and select the repository to open. The main window contains
-the commit log. You could also open the ‘Browse’ window from the shell extensions and from the Visual Studio IDE.
+You can browse a repository by starting Git Extensions and select the repository to open. The main window contains
+the revision graph (commit log). You could also open the ‘Browse’ window from :ref:`windows-explorer` and from :ref:`visual_studio`.
+
+The Browse window contains of several parts:
+
+* `Main toolbar`_
+* `Revision graph`_
+* `Tabs`_
+* `Left panel`_
-View commit log
----------------
+The `Left panel`_, `Tabs`_ and the toolbar can be hidden, as well as showing the `Commit`_ tab as a panel in the revision graph.
-The full commit history can be browsed. There is a graph that shows branches and merges. You can show the difference
-between two revision by selection them using ctrl-click.
+.. _browse-repository-main-toolbar:
-.. image:: /images/commit_diff_view.png
+Main toolbar
+------------
-In the context menu of the commit log you can enable or disable the revision graph. You can also choose to only show the
-current branch instead of showing all branches. The other options will be discussed later.
+The main toolbar in Browse contains contains menus for other commands like
+:ref:`commit`, :ref:`stash` and :ref:`maintenance`.
-.. image:: /images/commit_contextual_menu.png
+.. _browse-repository-revision-graph:
-Search history
+Revision graph
--------------
-The history can be searched using regular expressions are basic search terms. The quick filter in the toolbar searches in
-the commit message, the author and the committer.
+The full commit history can be browsed. There is a graph that shows branches and merges. You can show the difference
+between any two revisions by selecting them using ctrl-click.
+
+.. image:: /images/browse/commit_diff_view.png
+
+The context menu for a commit can both execute Git commands and change the appearance for the form.
+
+.. image:: /images/browse/commit_contextual_menu.png
+
+Search
+^^^^^^
+
+You can find text in the commit messages or jump to a specific commit in the current commit history shown in Git
+Extensions.
+
+Quick search in history
+"""""""""""""""""""""""
+
+You can find a commit in the commit history that is shown in Git Extensions by searching for text in the commit message,
+branch label or tag. This is a quick search function. Simply click into the commit history to give that pane focus and
+start typing. Git Extensions will show your search term in the top left corner and will immediately jump to the next
+commit with matching text. You can search for the next or previous commit with matching text using ``Alt-Down Arrow`` or
+``Alt-Up Arrow``.
+
+In ``Settings``, ``Git Extensions`` you can change the timeout for typing the text for the quick search.
+
+Navigation
+^^^^^^^^^^
+Go to a specific commit
+"""""""""""""""""""""""
+
+You can jump to a particular commit in the commit history if you know the SHA, tag or branch. In fact you can use any
+expression valid for git-rev-parse. Select ``Navigate``, ``Go to commit`` or press ``Ctrl-Shift-G`` to open the ``Go
+to commit`` window. Enter an SHA or other term to be passed to git-rev-parse into the box at the top and click ``Go``,
+or select a branch or tag from one of the two combo boxes below.
+
+Filter
+^^^^^^
+
+You can also filter the commit history so that fewer commits are shown.
+
+Filter history
+""""""""""""""
+
+The history can be filtered using regular expressions and basic filter terms. Filtering will reduce the number of commits
+that are shown in the Git Extensions commit history. The quick filter in the toolbar filters by the commit message, the
+author and/or the committer.
+
+Advanced: Also ``Branches`` and ``Filter`` (with ``Commit message`` set) text boxes accepts git-log arguments if the
+first argument starts with ``--``. Separate the arguments with spaces.
+
+.. image:: /images/browse/quick_filter.png
+
+In the toolbar or context menu of the commit log you can open the advanced filter dialog. The advanced filter dialog allows you to
+filter for more specific commits.
+
+.. image:: /images/browse/advance_filter_dialog-menu.png
+
+When a filter is set, the icon for the advanced filter is changed and you see the current filter as a tooltip for the button.
+To remove the filter either remove the filter in the toolbar and press enter or remove the filter in the advanced filter dialog.
+
+.. image:: /images/browse/advance_filter_dialog.png
+
+.. _browse-repository-reflog:
+
+Reflog
+""""""
+
+By default, Git will not show any commits that are not reachable and do not have any references, such as a branch or a tag.
+See `git reflog `_.
+Such commits will be purged when Git runs maintenance.
+By enabling ``Reflog`` via the toolbar button or in the ``View`` menu these commits will be shown too.
+
+.. _browse-repository-tabs:
+
+Tabs
+----
+
+For settings and further description, see :ref:`settings-tabs`.
+
+Commit
+^^^^^^
+
+Commit information and message as well as branch and tag information for the selected commit.
+This tab can be moved to the revision grid.
+
+.. _browse-repository-tabs-diff:
+
+Diff
+^^^^
+
+See also
+:ref:`settings-general-show-file-differences-for-all-parents-in-browse-dialog` and
+:ref:`settings-general-show-all-available-difftools`
+
+The file viewer will by default show the diff, but may also show Blame for the selected file.
+
+.. _browse-repository-tabs-file-tree:
-.. image:: /images/quick_filter.png
+File tree
+^^^^^^^^^
-In the context menu of the commit log you can open the advanced filter dialog. The advanced filter dialog allows you to
-search for more specific commits. To remove the filter either remove the filter in the toolbar and press enter or remove the
-filter in the advanced filter dialog.
+Show the file tree for the commit. (For worktree, only files tracked by Git are listed.)
-.. image:: /images/advance_filter_dialog.png
+The file list can be filtered for contained text and for file names using regular expressions.
-Singe file history
-------------------
+The file viewer will by default show the file contents, but may also show Blame for the selected file.
+(Blame does not include uncommitted changes, not even if an artificial commit "Working dir" or "Index" is selected.)
-To display the single file history, right click on a file name in the ``File tree`` or in the ``Diff`` tab and select ``blame``.
+You could search a file in the file tree using the default keyboard shortcut `Ctrl + Shift + F` (configurable in :ref:`settings-hotkeys`).
-.. image:: /images/context_menu_blame.png
+.. image:: /images/browse/find_in_file_tree.png
-The single file history viewer shows all revisions of a single file. You can view the content of the file in after each
-commit in the ``View`` tab.
+GPG
+^^^
-.. image:: /images/file_history.png
+Show the GPG key for signed commits.
-You can view the difference report from the commit in the ``Diff`` tab.
+Console
+^^^^^^^
-.. note::
- Added lines are marked with a ``+``, removed lines are marked with a ``–``.
+Show Git terminal.
-.. image:: /images/file_history_diff.png
+Build report
+^^^^^^^^^^^^
-Blame
------
+Optional, only shown if the build server plugin is configured for the repo and if it has found a build for the selected commit.
+:ref:`settings-build-server-integration-show-build-result-page`
-There is a blame function in the file history browser. It shows the last person editing a single line.
+.. _browse-repository-left-panel:
-.. image:: /images/blame.png
+Left panel
+----------
-Double clicking on a code line shows the full commit introducing the change.
+Show local and remote branches, git remotes, tags, submodules and stashes.
\ No newline at end of file
diff --git a/source/command_line.rst b/source/command_line.rst
index fd76c20..2c0fcfb 100644
--- a/source/command_line.rst
+++ b/source/command_line.rst
@@ -4,9 +4,11 @@ Command line
Git Extensions command line
---------------------------
-Most features can be started from the command line. It is recommended to add ``gitex.cmd`` to the path
+Most features can be started from the command line. It is recommended to add ``gitex.cmd`` to the path
when using from the command line. It is typically stored in the ``C:\Program Files (x86)\GitExtensions`` folder.
-.. image:: /images/command_line_usage.png
+.. figure:: /images/command_line/command_line_usage.png
-.. image:: /images/command_line.png
+..
+
+.. figure:: /images/command_line/command_line.png
diff --git a/source/commit.rst b/source/commit.rst
index 2e0ad23..a3cee55 100644
--- a/source/commit.rst
+++ b/source/commit.rst
@@ -1,7 +1,9 @@
+.. _commit:
+
Commit
======
-A commit is a set of changes with some extra information. Every commit contains the follow information:
+A commit is a set of changes with some extra information. Every commit contains the following information:
* Changes
* Committer name and email
@@ -9,18 +11,18 @@ A commit is a set of changes with some extra information. Every commit contains
* Commit message
* Cryptographically strong SHA1 hash
-Each commit creates a new revision of the source. Revisions are not tracked per file; each change creates a new
-revision of the complete source. Unlike most traditional source control management systems, revisions are not named
-using a revision number. Each revision is named using a SHA1, a 41 long characters cryptographically strong hash.
+Each commit creates a new revision of the source. Revisions are not tracked per file; each change creates a new
+revision of the complete source. Unlike most traditional source control management systems, revisions are not named
+using a revision number. Each revision is named using a SHA1, a 40 long characters cryptographically strong hash.
Commit changes
--------------
-Changes can be committed to the local repository. Unlike most other source control management systems you do not need to
-checkout files before you start editing. You can just start editing files, and review all the changes you made in the commit
-dialog later. When you open de commit dialog, all changes are listed in the top-left.
+Changes can be committed to the local repository. Unlike centralised source control management systems you do not need to
+checkout files before you start editing. You can just start editing files, and review all the changes you made in the commit
+dialog later. When you open the commit dialog, all changes are listed in the top-left.
-.. image:: /images/commit_dialog.png
+.. image:: /images/commit/commit_dialog.png
There are three kinds of changes:
@@ -33,68 +35,110 @@ There are three kinds of changes:
|Deleted | This file has been deleted. |
+----------+----------------------------------------------------------------------------------------------------------------+
-When you rename or move a file Git will notice that this file has been moved, but currently Git Extensions does not show
-this in the commit dialog. Occasionally you will need to undo the file change. This can be done in the context menu of any
-unstaged file.
-
-.. image:: /images/reset_changes.png
+When you rename or move a file Git will notice that this file has been moved and notice in index pane (not in working directory).
-During your initial commit there are probably lots of files you do not want to be tracked. You can ignore these files by not
-staging them, but they will show every time. You could also add them to the .gitignore file of you repository. Files that are
-in the ``.gitignore`` file will not show up in the commit dialog again. You can open the ``.gitignore`` editor from the menu
+During your initial commit there are probably lots of files you do not want to be tracked. You can ignore these files by not
+staging them, but they will show every time. You can instead add them to the ``.gitignore`` file of your repository. Files that are
+in the ``.gitignore`` file will not show up in the commit dialog again. You can open the ``.gitignore`` editor from the menu
``Working dir changes`` by selecting ``Edit ignored files``.
-.. image:: /images/show_untracked.png
+.. image:: /images/commit/commit_menu_edit_ignored.png
-You need to stage the changes you want to commit by pressing the ‘Stage selected files’ button. You also need to stage deleted
-files because you stage the change and not the file. When all the changes you want to commit are staged, enter a commit message
-and press the commit button.
+Making a commit is a two step procedure:
-.. image:: /images/commit_dialog_commit.png
+* Adding to index (staging) the changes to be committed, which saves a snapshot of the changes into the Git "index".
+* Committing those staged changes, which records the staged changes and other information into the repository.
-It is also possible to add files to you last commit using the ``Amend to last commit`` button. This can be very useful when you
-forgot some changes. This function rewrites history; it deletes the last commit and commits it again including the added
-changes. Make sure you only use ``Amend to last commit`` when the commit is not yet published to other developers.
+You do not have to commit immediately after staging changes. You can close the commit dialog, make further changes to the
+files in the working dir, then re-open the commit dialog to stage further changes and commit. Changes that you have staged
+previously will still be staged when you re-open the dialog.
-There is a build in spelling checker that checks the commit message. Incorrect spelled words are underlined with a red wave line.
-By right-clicking on the misspelled word you can choose the correct spelling or one of the other options.
+Staging changes
+^^^^^^^^^^^^^^^
-.. image:: /images/commit_dialog_spellchecker.png
+The changes that you have made to your working directory are not automatically included in a commit. You must choose
+which of the changed files, or individual changes from within those files, will be included in the commit by "staging" the
+changes in Git Extensions. Staging changes in Git Extensions is the same as using ``git add`` on the Git command line.
-Git Extensions installs a number of dictionaries by default. You can choose another language in the context menu of the
-spelling checker or in the settings dialog. To add a new spelling dictionary add the dictionary file to the ``Dictionaries``
-folder inside the Git Extensions installation folder.
+You can stage the changes you want to commit by selecting the files in the top-left or "Unstaged changes" pane and pressing
+the ``Stage`` button or pressing the ``S`` key. The file entries will move to the lower left or "Staged changes" pane. You
+need to stage deleted files because you stage the change and not the file. If you have staged changes from a file and you
+wish to exclude those changes from the commit, select the entry in the staged changes pane and press the ``Unstage``
+button or press the ``U`` key.
+
+If the file that is selected in either the unstaged or staged changes pane is text format, Git Extensions will show a
+Git "diff" view in the right side pane of the window.
+
+Staging selected lines
+^^^^^^^^^^^^^^^^^^^^^^
+
+You do not have to commit all of the changes in a text format file in one commit. You can select and stage individual lines
+from within a file such that only the chosen lines will be included in your next commit; the remaining changes in the file
+will appear as unstaged changes for the next commit.
+
+In the diff view on the right, select the line or lines that you want to stage then right-click and choose ``Stage selected
+line(s)`` or press the ``S`` key. The file will now appear in both the staged changes and unstaged changes panes on the left
+since now there are both staged and unstaged changes in the same file. The change that was selected will disappear from the
+diff view on the right because the diff view is showing only the unstaged changes.
+
+To see the line changes that have been staged select the entry for the file in the staged changes pane. To unstage selected
+changed lines from a file, select that file in the staged changes pane, then select the line or lines in the diff view, right
+-click, and choose ``Unstage selected line(s)`` or press the ``U`` key.
+
+.. note::
-.. image:: /images/commit_dialog_language.png
+ If you select an entire line including the end-of-line character then staging or unstaging that line will include
+ both the selected line and the next line. To select a single line to stage or unstage you may simply click onto the line
+ without selecting any particular characters.
-Cherry pick commit
-------------------
+ Staging and unstaging individual lines from a file does not change the file itself. It is simply choosing which
+ changes from within that file will be included in the next commit.
-A commit can be recommitted by using the cherry pick function. This can be very useful when you want to make the same change
-on multiple branches.
+Undoing or resetting changes
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. image:: /images/cherry_pick.png
+You can undo or reset changes to files from the commit dialog. You can only do this from the top-left or "Unstaged changes"
+pane. If you have already staged the changes then you must first unstage them as described above. To reset the changes in a
+file, select the file in the unstaged changes pane, right-click and choose ``Reset file or directory changes`` or press the
+``R`` key.
-Revert commit
--------------
+.. image:: /images/commit/commit_reset_changes.png
+
+You can reset individual changed lines in a similar way to staging and unstaging individual lines, which are described above.
+To reset an individual line, select the line or lines in the diff view on the right then right-click and choose ``Reset
+selected lines`` or press the ``R`` key.
+
+.. warning:: Resetting changes modifies the file, discarding either all of the changes or the changes on the selected lines.
+
+Making the commit
+^^^^^^^^^^^^^^^^^
+
+When all the changes you want to commit are staged, enter a commit message into the lower-right pane and press the commit button.
+
+.. image:: /images/commit/commit_dialog_commit.png
+
+There is a built-in spelling checker that checks the commit message. Incorrectly spelled words are underlined with a wavey red line.
+Right-click on the misspelled word to choose the correct spelling or choose one of the other options.
+
+Git Extensions installs a number of dictionaries by default. You can choose another language in the context menu of the
+spelling checker or in the settings dialog. To add a new spelling dictionary add the dictionary file to the ``Dictionaries``
+folder inside the Git Extensions installation folder.
-A commit cannot be deleted once it is published. If you need to undo the changes made in a commit, you need to create a new
-commit that undoes the changes. This is called a revert commit.
+.. image:: /images/commit/commit_dialog_spellchecker.png
-.. image:: /images/revert_commit.png
+Amend commit
+------------
-Stash changes
--------------
+It is also possible to add changes to your last commit by checking the ``Amend Commit`` checkbox. This can be very useful when you
+forgot some changes. This function rewrites history; it deletes the last commit and commits it again including the added
+changes.
-If there are local changes that you do not want to commit yet and not want to throw away either, you can temporarily stash
-them. This is useful when working on a feature and you need to start working on something else for a few hours. You can
-stash changes away and then reapply them to your working dir again later. Stashes are typically used for very short periods.
+See also :ref:`modify_history`, especially if you have published the changes to a remote repository already.
-.. image:: /images/stash_dialog.png
+Amend also enables the following options:
-You can create multiple stashes if needed. Stashes are shown in the commit log with the text ``[stash]``.
+ - By checking the ``Reset Author`` checkbox the author and date of the commit will also be overwritten.
-.. image:: /images/commit_log_stash.png
+ - `Reset soft`: Perform a soft reset to the previous commit; leaves working directory and index untouched
-The stash is especially useful when pulling remote changes into a dirty working directory. If you want a more permanent
-stash, you should create a branch.
+.. image:: /images/commit/commit_amend_reset_author.png
diff --git a/source/conf.py b/source/conf.py
index f8a4988..004cebc 100644
--- a/source/conf.py
+++ b/source/conf.py
@@ -1,4 +1,4 @@
-# -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
#
# GitExtensionsDoc documentation build configuration file, created by
# sphinx-quickstart on Fri Jan 11 18:04:32 2013.
@@ -16,7 +16,7 @@
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
+sys.path.insert(0, os.path.abspath('./extensions'))
# -- General configuration -----------------------------------------------------
@@ -25,7 +25,7 @@
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.todo']
+extensions = ['sphinx.ext.todo', 'settings-ext']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -41,20 +41,21 @@
# General information about the project.
project = u'GitExtensions'
-copyright = u'2013, GitExtensions'
+copyright = u'2008-2024, GitExtensions'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = '2.44'
+#Note: Does not seem to be used so 'full' version is OK
+version = '5.2'
# The full version, including alpha/beta/rc tags.
-release = '2.44'
+release = '5.2'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
-#language = None
+language = 'en'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
@@ -110,12 +111,12 @@
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
-#html_logo = None
+html_logo = 'git-extensions-logo-128px.png'
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
-#html_favicon = None
+html_favicon = 'git-extensions-logo.ico'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
@@ -340,4 +341,4 @@
pdf_use_numbered_links = False
# Background images fitting mode
-pdf_fit_background_mode = 'scale'
+pdf_fit_background_mode = 'scale'
\ No newline at end of file
diff --git a/source/dashboard.rst b/source/dashboard.rst
new file mode 100644
index 0000000..30b029e
--- /dev/null
+++ b/source/dashboard.rst
@@ -0,0 +1,111 @@
+.. _dashboard:
+
+Dashboard
+=========
+
+The Dashboard contains the most common tasks, recently opened repositories and categories (favourites).
+Categories can be added, grouped in the repository context menu.
+
+.. image:: /images/dashboard/start_page.png
+
+Recent Repositories can be moved to favourites using the repository context menu. Choose ``Categories / Add new`` to create a new category
+and add the repository to it, or you can add the repository to an existing category (e.g. 'Currents' as shown below).
+
+.. image:: /images/dashboard/move_to_category.png
+
+To open an existing repository, simply click the link to the repository, or
+select Open repository (from where you can select a repository to open from your local file system).
+
+To create a new repository, one of the following options under Common Actions can be selected.
+
+Create new repository
+---------------------
+
+When you do not want to work on an existing project, you can create your own repository using this option.
+
+.. image:: /images/dashboard/new_repository.png
+
+Select a directory where the repository is to be created. You can choose to create a Personal repository or a Central repository.
+
+A personal repository looks the same as a normal working directory but has a directory named ``.git`` at the root level
+containing the version history. This is the most common repository.
+
+Central repositories only contain the version history. Because a central repository has no working directory you cannot
+checkout a revision in a central repository. It is also impossible to merge or pull changes in a central repository. This
+repository type can be used as a public repository where developers can push changes to or pull changes from.
+
+Open repository
+----------------
+
+Opens a Git repo already existing on the file system.
+
+.. image:: /images/dashboard/open_repo.png
+
+Clone repository
+----------------
+
+You can clone an existing repository using this option.
+
+.. image:: /images/dashboard/clone.png
+
+The repository you want to clone could be on a network share or could be a repository that is accessed through an internet
+or intranet connection. Depending on the protocol (http or ssh) you might need to load a SSH key into PuTTY. You also need to specify where
+the cloned repository will be created and the initial branch that is checked out. If the cloned repository contains submodules, then these
+can be initialized using their default settings if required.
+
+There are two different types of repositories you can create when making a clone. A personal repository contains the complete
+history and also contains a working copy of the source tree. A central (bare) repository is used as a public repository where
+developers push the changes they want to share with others to. A central repository contains the complete history but does not
+have a working directory like personal repositories.
+
+Clone Github repository
+-----------------------
+
+See :doc:`github`.
+
+Organizing your repositories with categories
+--------------------------------------------
+
+Over time, the list of repositories you deal with can grow long. As it does, it can become difficult to
+find a repository you are looking for in the "Recent repositories" list when you have opened many other
+repositories since you opened the one you are looking for. To help find repositories quickly, you can
+group your repositories into categories that will display in alphabetical order on the Dashboard.
+
+Create new category
+^^^^^^^^^^^^^^^^^^^
+
+While the Dashboard is being displayed (after application start-up), you create a new repository category
+by doing the following:
+
+- right click the repository you want to group into a category,
+- select "Categories",
+- select "Add new..." from the resulting submenu,
+- type the name of the new category,
+- click the [OK] button.
+
+The originally-right-clicked repository will now additionally appear in your new category (repository group),
+where you can quickly find it again later no matter where it appears in the "Recent repositories" list.
+
+Rename a category
+^^^^^^^^^^^^^^^^^
+
+If you later decide you want a category to have a different name:
+
+- click the "Actions" menu to the right of that category,
+- select "Rename category",
+- edit the current name to the new name you want,
+- click the [OK] button.
+
+Your category will now show its new name, and be sorted among the other categories accordingly.
+
+Delete a category
+^^^^^^^^^^^^^^^^^
+
+When you no longer need a category:
+
+- click the "Actions" menu to the right of that category,
+- select "Delete category",
+- read the warning displayed (deleting a category cannot be undone),
+- click the [Yes] button to delete it, or [No] to preserve it.
+
+If you clicked [Yes], the selected category will no longer be displayed on the Dashboard.
diff --git a/source/extensions/settings-ext.py b/source/extensions/settings-ext.py
new file mode 100644
index 0000000..c3a4d10
--- /dev/null
+++ b/source/extensions/settings-ext.py
@@ -0,0 +1,148 @@
+# -*- coding: utf-8 -*-
+"""
+ settings directives
+ ~~~~~~~~~~~~~~~~~~~
+
+ Handlers for directives used to describe settings.
+
+"""
+
+import re
+
+from docutils import nodes
+from docutils.parsers.rst import Directive, directives, roles
+
+from sphinx import addnodes
+
+class SettingBaseDirective(Directive):
+
+ option_spec = {'id': directives.unchanged}
+ has_content = True
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = True
+
+ def compute_target_id(self):
+ """
+ returns absolut anchor id for this directive
+ """
+
+ if 'id' in self.options:
+ targetid = self.options['id']
+ else:
+ targetid = nodes.make_id(self.arguments[0].lower())
+
+ if 'setting_group' in self.env.temp_data and len(self.env.temp_data['setting_group']) > 0:
+ targetid = self.env.temp_data['setting_group'][-1] + '-' + targetid
+
+ return targetid
+
+ def add_label(self, targetid, label):
+
+ labels = self.env.domaindata['std']['labels']
+ anonlabels = self.env.domaindata['std']['anonlabels']
+ docname = self.env.docname
+ labelid = 'settings-' + targetid
+
+ anonlabels[labelid] = docname, targetid
+ labels[labelid] = docname, targetid, label
+
+class SettingsPage(SettingBaseDirective):
+
+ objtype = 'settingpage' # type: unicode
+
+ def run(self):
+ # type: () -> List[nodes.Node]
+ """
+ """
+ self.env = self.state.document.settings.env # type: BuildEnvironment
+
+ targetid = self.compute_target_id()
+ caption = self.arguments[0]
+
+ node = nodes.section()
+ node.document = self.state.document
+ node['ids']=[targetid]
+ node['names']=[caption]
+ # 'desctype' is a backwards compatible attribute
+ node['objtype'] = node['desctype'] = self.objtype
+
+ titlenode = nodes.title(targetid, caption)
+ node += titlenode
+ self.add_label(targetid, caption)
+
+ if not 'setting_group' in self.env.temp_data:
+ self.env.temp_data['setting_group'] = []
+ self.env.temp_data['setting_group'].append(targetid)
+ self.state.nested_parse(self.content, self.content_offset, node)
+ self.env.temp_data['setting_group'].pop()
+ return [node]
+
+
+class SettingDescription(SettingBaseDirective):
+ """
+ Directive to describe a setting.
+ """
+
+ # types of doc fields that this directive handles, see sphinx.util.docfields
+ objtype = 'setting' # type: unicode
+
+ def run(self):
+ # type: () -> List[nodes.Node]
+ """
+ """
+ self.env = self.state.document.settings.env # type: BuildEnvironment
+
+ node = addnodes.desc()
+ node.document = self.state.document
+ # 'desctype' is a backwards compatible attribute
+ node['objtype'] = node['desctype'] = self.objtype
+
+ targetid = self.compute_target_id()
+ caption = self.arguments[0]
+ signode = addnodes.desc_signature(targetid, '')
+ signode['names'].append(caption)
+ signode['ids'].append(targetid)
+ signode['first'] = 1
+ targetnode = nodes.target('', '', ids=[targetid], names=[caption])
+ signode += targetnode
+ signode += addnodes.desc_name(caption, caption)
+ node.append(signode)
+ contentnode = addnodes.desc_content()
+ node.append(contentnode)
+ self.add_label(targetid, caption)
+ if not 'setting_group' in self.env.temp_data:
+ self.env.temp_data['setting_group'] = []
+ self.env.temp_data['setting_group'].append(targetid)
+ self.state.nested_parse(self.content, self.content_offset, contentnode)
+ self.env.temp_data['setting_group'].pop()
+ return [node]
+
+
+class SettingsGroup(SettingDescription):
+ """
+ Directive to describe a setting group.
+ """
+
+ objtype = 'settinggroup' # type: unicode
+
+class SettingButton(SettingDescription):
+ """
+ Directive to describe a setting button.
+ """
+
+ objtype = 'settingbutton' # type: unicode
+
+
+def setup(app):
+ # type: (Sphinx) -> Dict[unicode, Any]
+ directives.register_directive('setting', SettingDescription)
+ directives.register_directive('settingsgroup', SettingsGroup)
+ directives.register_directive('settingspage', SettingsPage)
+ directives.register_directive('settingbutton', SettingButton)
+
+ return {
+ 'version': '1.0',
+ 'parallel_read_safe': True,
+ 'parallel_write_safe': False,
+ }
\ No newline at end of file
diff --git a/source/file_history.rst b/source/file_history.rst
new file mode 100644
index 0000000..a4a8915
--- /dev/null
+++ b/source/file_history.rst
@@ -0,0 +1,51 @@
+.. _file-history:
+
+File history
+============
+
+``File history`` is a separate form to view the history of a file or folder.
+Since Git Extensions 4.0 this functionality is included in :ref:`browse-repository`
+but can be activated by :ref:`settings-general-show-file-history-in-the-main-window`.
+This form is deprecated and may be removed in future releases.
+
+To display the single file history, right click on a file name in
+:ref:`browse-repository-tabs-file-tree` or :ref:`browse-repository-tabs-diff` tab
+and select ``File history`` or ``Blame``.
+
+The single file history viewer shows all revisions of a single file or submodules.
+
+.. image:: /images/file_history/context_menu_blame.png
+
+Commit
+------
+
+The ``Commit`` tab contains the information about the commit, including the other files in the commit.
+
+.. image:: /images/file_history/file_history_commit.png
+
+Diff
+----
+
+You can view the difference report from the commit in the ``Diff`` tab.
+
+.. image:: /images/file_history/file_history_diff.png
+
+.. note::
+
+ Added lines are marked with a ``+``, removed lines are marked with a ``–``.
+
+View
+----
+
+You can view the content of the file in after each commit in the ``View`` tab.
+
+.. image:: /images/file_history/file_history_view.png
+
+Blame
+-----
+
+There is a blame function in the file history browser. The commit for the selected line is displayed.
+
+.. image:: /images/file_history/file_history_blame.png
+
+Double clicking on a code line shows the full commit introducing the change.
diff --git a/source/files/settings/GitExtensions.settings b/source/files/settings/GitExtensions.settings
new file mode 100644
index 0000000..0ef5039
--- /dev/null
+++ b/source/files/settings/GitExtensions.settings
@@ -0,0 +1,80 @@
+
+
+
+
+ RevisionLinkDefs
+
+
+ <?xml version="1.0" encoding="utf-16"?>
+<ArrayOfGitExtLinkDef>
+ <GitExtLinkDef>
+ <Enabled>true</Enabled>
+ <LinkFormats>
+ <GitExtLinkFormat>
+ <Caption>Issue {4}</Caption>
+ <Format>http{1}://{2}/{3}/issues/{4}</Format>
+ </GitExtLinkFormat>
+ </LinkFormats>
+ <Name>1 GitHub - issues</Name>
+ <NestedSearchPattern>\d+</NestedSearchPattern>
+ <RemoteSearchInParts>
+ <RemotePart>URL</RemotePart>
+ </RemoteSearchInParts>
+ <RemoteSearchPattern>(?i)^(git@|http(s?)://)([^:/]+)[:/](.*)\.git$</RemoteSearchPattern>
+ <SearchInParts>
+ <RevisionPart>Message</RevisionPart>
+ <RevisionPart>LocalBranches</RevisionPart>
+ <RevisionPart>RemoteBranches</RevisionPart>
+ </SearchInParts>
+ <SearchPattern>(?i)(?<!pull request |pr[ _]?)(#|(((feat(ure)?)|fix)[/_-]))\d+</SearchPattern>
+ <UseRemotesPattern>upstream|origin</UseRemotesPattern>
+ <UseOnlyFirstRemote>false</UseOnlyFirstRemote>
+ </GitExtLinkDef>
+ <GitExtLinkDef>
+ <Enabled>true</Enabled>
+ <LinkFormats>
+ <GitExtLinkFormat>
+ <Caption>PR {4}</Caption>
+ <Format>http{1}://{2}/{3}/pull/{4}</Format>
+ </GitExtLinkFormat>
+ </LinkFormats>
+ <Name>2 GitHub - PR</Name>
+ <NestedSearchPattern>\d+</NestedSearchPattern>
+ <RemoteSearchInParts>
+ <RemotePart>URL</RemotePart>
+ </RemoteSearchInParts>
+ <RemoteSearchPattern>(?i)^(git@|http(s?)://)([^:/]+)[:/](.*)\.git$</RemoteSearchPattern>
+ <SearchInParts>
+ <RevisionPart>Message</RevisionPart>
+ <RevisionPart>LocalBranches</RevisionPart>
+ <RevisionPart>RemoteBranches</RevisionPart>
+ </SearchInParts>
+ <SearchPattern>(?i)(pull request |pr[ _]?)#?\d+</SearchPattern>
+ <UseRemotesPattern>upstream|origin</UseRemotesPattern>
+ <UseOnlyFirstRemote>true</UseOnlyFirstRemote>
+ </GitExtLinkDef>
+ <GitExtLinkDef>
+ <Enabled>true</Enabled>
+ <LinkFormats>
+ <GitExtLinkFormat>
+ <Caption>view on {2}</Caption>
+ <Format>http{1}://{2}/{3}/commit/%COMMIT_HASH%</Format>
+ </GitExtLinkFormat>
+ </LinkFormats>
+ <Name>3 GitHub - commit</Name>
+ <NestedSearchPattern />
+ <RemoteSearchInParts>
+ <RemotePart>URL</RemotePart>
+ </RemoteSearchInParts>
+ <RemoteSearchPattern>(?i)^(git@|http(s?)://)([^:/]+)[:/](.*)\.git$</RemoteSearchPattern>
+ <SearchInParts>
+ <RevisionPart>Message</RevisionPart>
+ </SearchInParts>
+ <SearchPattern>.*</SearchPattern>
+ <UseRemotesPattern>upstream|origin</UseRemotesPattern>
+ <UseOnlyFirstRemote>true</UseOnlyFirstRemote>
+ </GitExtLinkDef>
+</ArrayOfGitExtLinkDef>
+
+
+
\ No newline at end of file
diff --git a/source/getting_started.rst b/source/getting_started.rst
deleted file mode 100644
index ed2a0ab..0000000
--- a/source/getting_started.rst
+++ /dev/null
@@ -1,266 +0,0 @@
-Getting Started
-===============
-
-This section is primarily written for Windows users. There is an extra section
-about installing Git Extensions on Linux.
-
-Installation
-------------
-
-There is a single click installer that installs MSysGit, kdif3 and Git Extensions. The installer will detect
-if 32bit and/or 64bit versions should be installed.
-The installer can be found `here `_.
-
-.. figure:: /images/install/install1.png
-
-.. figure:: /images/install/install2.png
-
- Git Extensions depends heavily on MSysGit. When MSysGit is not installed install this first. Kdiff3 is
- optional, but is advised as a merge tool.
-
-.. figure:: /images/install/install3.png
-
-.. figure:: /images/install/install4.png
-
- Choose the options to install.
-
-.. figure:: /images/install/install5.png
-
- Choose the SSH client to use. PuTTY is the default because it has better windows integration.
-
-.. figure:: /images/install/install6.png
-
-Installation (Linux)
---------------------
-You can watch this video as a starting point: `Install Git Extensions on Ubuntu 11.04 `_
-
-For further help go to https://groups.google.com/forum/?fromgroups=#!forum/gitextensions
-
-Installation (Mac)
-------------------
-
-First we need to make sure you have latest mono version on your Mac. This section will cover installation of mono 2.10.11 over a Mac.
-
-1) Download mono latest version, you can always check for this here http://www.go-mono.com/mono-downloads/download.html
-2) After you completed the download, you will see a .dmg file. Double click it to open the package.
-3) Inside the .dmg file you will have MonoFramework-{version}.pkg. Double click to start the installation process.
-4) Follow the wizard until it's completion.
-5) If everything went ok, you should open your terminal and check mono version::
-
- $ mono --version
- Mono JIT compiler version 2.10.11 (mono-2-10/2baeee2 Wed Jan 16 16:40:16 EST 2013)
- Copyright (C) 2002-2012 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
- TLS: normal
- SIGSEGV: normal
- Notification: kqueue
- Architecture: x86
- Disabled: none
- Misc: softdebug
- LLVM: yes(2.9svn-mono)
- GC: Included Boehm (with typed GC)
-
-6) Now download GitExtensions latest version from https://code.google.com/p/gitextensions/downloads/list. Remember to select the appropriate package otherwise you could have problems.
-7) Browse into the folder where you extracted the package and just run mono command, like the example below::
-
- $ mono GitExtensions.exe
-
-This is the minimal setup you need in order to run GitExtensions.
-
-Settings
---------
-
-All settings will be verified when Git Extensions is started for the first time. If Git Extensions requires
-any settings to be changed the settings dialog will be shown. All incorrect settings will be marked red. You
-can ask Git Extensions to try to fix the setting for you by clicking on it.
-
-.. image:: /images/settings/checklist.png
-
-All settings that are specific to Git Extensions will be stored in a file either in the user's application data path or with the program.
-The location is dependant on the IsPortable setting in the GitExtensions.exe.config file that is with the program.
-are used by Git are stored in the configuration files of Git. The global settings are stored in a file called
-``.gitconfig`` in the user directory. The local settings are stored in the .git\config file of the repository.
-
-.. image:: /images/settings/git.png
-
-
-The 'Git' tab contains the settings needed to access git repositories. The database will be accessed using external
-tools. For Windows usually msysgit or cygwin are used. Git Extensions will try to configure these settings automatically.
-
-+-----------------------------------------+--------------------------------------------------------------------------+
-|Command to run git (git.cmd or git.exe) | Needed for Git Extensions to run Git commands. Set the full command |
-| | used to run git (msysgit or cygwin). |
-+-----------------------------------------+--------------------------------------------------------------------------+
-|Path to Linux tools | A few linux tools are used by Git Extensions. When msysgit is installed, |
-| | these tools are located in the bin directory of msysgit. |
-+-----------------------------------------+--------------------------------------------------------------------------+
-
-The global configuration file used by git will be put in the home directory. On some systems the home directory is not set
-or is pointed to a network drive. Git Extensions will try to detect the optimal setting for your environment. When there is
-already a global git configuration file, this location will be used. If you need to relocate the home directory for git,
-change this setting. Otherwise leave this setting on default.
-
-.. image:: /images/settings/git_extensions.png
-
-The ‘Git Extension’ tab contains all settings needed for Git Extension to run properly. The path to git.cmd and git.exe can
-be set here. This is only needed when these are not in the system path.
-
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Show stash count on status bar in browse window | When you use the stash a lot, it can be useful to show the number of |
-| | stashed items on the toolbar. This option causes serious slowdowns in large|
-| | repositories and is turned off by default. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Use FileSystemWatcher to check if index is changed | Using the FileSystemWatcher to check index state improves the performance |
-| | is some cases. Turn this off if you experience refresh problems in commit |
-| | log. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Show current working dir changes in revision graph | When enabled, two extra revisions are added to the revision graph. The |
-| | first shows the current working directory status. The second shows the |
-| | staged files. This option can cause slowdowns when browsing large |
-| | repositories. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Limit number of commits that will be loaded in | Git Extensions uses lazy loading to load the commit log. Lower this number |
-|list at start-up. | to increase the start-up speed. Increase the number for faster scrolling. |
-| | Turn of revision graph for optimal result! |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Close process dialog automatically when process is | When a process is finished, clause the process dialog automatically. Leave |
-|succeeded | this option off if you want to see the result of processes. When a process |
-| | has been failed, the dialog will keep open.When a process is finished, |
-| | clause the process dialog automatically. Leave this option off if you want |
-| | to see the result of processes. When a process has been failed, the dialog |
-| | will keep open. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Show Git command line dialog when executing process| Git Extensions uses command line tools to access the git database. In some |
-| | environments it might be useful to see the command line dialog when a |
-| | process is executed. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Follow renames in file history | Try to follow file renames in the file history. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Revision graph quicksearch timeout [ms] | The timeout used for the quicksearch feature in the revision graph. The |
-| | quicksearch will be enabled when you start typing and the revision graph is|
-| | focussed. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Smtp server for sending patches | Smtp server to use for sending patches. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-
-.. image:: /images/settings/appearance.png
-
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Show relative date instead of full date | Show relative date, e.g. 2 weeks ago, instead of full date. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Get author image from gravatar.com | Whether or not retrieve the user avatar from gravatar. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Image size | The display size of the user avatar. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Cache images | Long duration will do less resquest but will take more time to update |
-| | envutual user's avatar changes. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Clear image cache | Clear the cached avatars. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Fonts | Change the used font. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Language | Choose the language for the Git Extensions interface. |
-+---------------------------------------------------+----------------------------------------------------------------------------+
-|Dictionary for spelling checker | Choose the dictionary to use for the spelling checker in the commit dialog.|
-+---------------------------------------------------+----------------------------------------------------------------------------+
-
-.. image:: /images/settings/colors.png
-
-In the color tab the following items can be set:
-
-+-----------------------+-------------------------------------------------------------------------------------------+
-|Revision graph colors | The colors that are used in the revision graph. |
-+-----------------------+-------------------------------------------------------------------------------------------+
-|Difference view colors | The colors that are used to mark changes. |
-+-----------------------+-------------------------------------------------------------------------------------------+
-|Application Icon | The color of the application icon. This is useful for recognising various open instances. |
-+-----------------------+-------------------------------------------------------------------------------------------+
-
-.. image:: /images/settings/start_page.png
-
-The items on the Start Page can be edited. In this tab you can add and remove categories. Per category you can either configure
-a RSS feed or add repositories. The order can be changed using the context menus in the Start Page.
-
-.. image:: /images/settings/global_settings.png
-
-In the ``Global settings`` tab some global Git settings can be set.
-
-+------------------+-------------------------------------------------------------------------------------------------------+
-|User name | User name shown in commits and patches. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|User email | User email shown in commits and patches. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Editor | Editor that git.exe opens (e.g. for editing commit message). This is not used by Git Extensions, only |
-| | when you call git.exe from the command line. By default Git will use the command line text editor vi. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Mergetool | Merge tool used to solve merge conflicts. Git Extensions will search for common merge tools on your |
-| | system. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Path to mergetool | Path to merge tool. Git Extensions will search for common merge tools on your system. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Mergetool command | Command that Git uses to call the merge tool. Git Extensions will try to set this automatic when a |
-| | merge tool is chosen. This setting can be left empty when Git supports the mergetool (e.g. kdiff3). |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|DiffTool | DiffTool that is used. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Path to DiffTool | The path to the difftool. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|DiffToolCommand | Command that Git uses to start the DiffTool. This setting should only be filled when Git doesn't |
-| | support the mergetool. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Line endings | Choose how git should handle line endings. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-|Encoding | Choose the encoding you want GitExtensions to use. |
-+------------------+-------------------------------------------------------------------------------------------------------+
-
-.. image:: /images/settings/ssh.png
-
-In the tab ``SSH`` you can configure the SSH client you want Git to use. Git Extensions is optimized for PuTTY. Git Extensions
-will show command line dialogs if you do not use PuTTY and user input is required. Git Extensions can load SSH keys for PuTTY
-when needed.
-
-Start Page
-----------
-
-The start page contains the most common tasks, recently opened repositories and favourites. The left side of the start page
-is static. The other items can be edited.
-
-.. image:: /images/start_page.png
-
-Repositories can be moved to favourites using the context menu. Choose edit to add new repositories to any category.
-
-.. image:: /images/move_to_category.png
-
-Clone existing repository
--------------------------
-
-You can clone an existing repository using the ``Clone`` menu option. You can choose the repository type to clone to. For
-personal use you need to choose ``Personal repository``. For a central or public repository, choose ``Central repository``. A
-central repository does not have a working directory.
-
-.. image:: /images/clone.png
-
-The repository you want to clone could be on a network share or could be a repository that is accessed through an internet
-or intranet connection. Depending on the protocol (http or ssh) you might need to load a SSH key into PuTTY.
-
-There are two different types of repositories you can create when making a clone. A personal repository contains the complete
-history and also contains a working copy of the source tree. A central repository is used as a public repository where
-developers push there changes they want to share with others to. A central repository contains the complete history but to not
-have a working directory like personal repositories.
-
-Create new repository
----------------------
-
-When you do not want to work on an existing project, you can create your own repository. Choose the menu option
-``Init new repository`` to create a new repository.
-
-.. image:: /images/new_repository.png
-
-You can choose to create a Personal repository or a Central repository.
-
-A personal repository looks the same as a normal working directory but has a directory named ``.git`` on root level
-containing the version history. This is the most common repository.
-
-Central repositories only contain the version history. Because a central repository has no working directory you cannot
-checkout a revision in a central repository. It is also impossible to merge or pull changes in a central repository. This
-repository type can be used as a public repository where developers can push changes to or pull changes from.
-
diff --git a/source/git-extensions-logo-128px.png b/source/git-extensions-logo-128px.png
new file mode 100644
index 0000000..e8e380e
Binary files /dev/null and b/source/git-extensions-logo-128px.png differ
diff --git a/source/git-extensions-logo.ico b/source/git-extensions-logo.ico
new file mode 100644
index 0000000..fd5808f
Binary files /dev/null and b/source/git-extensions-logo.ico differ
diff --git a/source/git_extensions.rst b/source/git_extensions.rst
index d7ba153..8bd7dc1 100644
--- a/source/git_extensions.rst
+++ b/source/git_extensions.rst
@@ -1,31 +1,48 @@
Git Extensions
==============
-Git Extensions is a toolkit aimed at making working with Git under Windows more intuitive
-(note that Git Extensions is also available on Linux and Macintosh OS X using Mono). The shell
-extension will integrate in Windows Explorer and presents a context menu on files and directories.
-There is also a Visual Studio plug-in to use Git from the Visual Studio IDE. The source code of Git
-Extensions is located here: https://github.com/gitextensions/gitextensions
+Git Extensions is a toolkit aimed at making working with Git under Windows more intuitive.
+The shell
+extension will integrate in Windows Explorer and presents a context menu on files and directories.
+There is also a Visual Studio extension to use Git from the Visual Studio IDE.
Features
--------
-* Windows Explorer integration for Git
-* Visual Studio (2005/2008/2010/2012) plug-in for Git
* Feature rich user interface for Git
-* Single installer installs Git, Git Extensions and the merge tool KDiff3
* 32bit and 64bit support
-* Runs under Linux or Mac OS X using `Mono `_
+* Windows Explorer integration for Git
+* Visual Studio extension (2015-2022)
+
+Specific in 2.5x releases:
+
+* Visual Studio (2010 - 2015) add-in
+* Runs under Linux or Mac OS X using `Mono `_
+* Basic SVN functionality
+
+For description of 2.x specific features, see the `2.x documentation <../release-2.51/git_extensions.html>`_
Video tutorials
---------------
-There are video tutorials for some basic functions on YouTube.
+There are video tutorials for some basic functions on YouTube (made for older Git Extensions versions).
+
+#. `Clone `_
+#. `Commit changes `_
+#. `Push changes `_
+#. `Pull changes `_
+#. `Handle merge conflicts `_
+
+Links
+-----
+
+See the following links for the Git Extensions download page, source code and documentation.
-#. `Clone `_
-#. `Commit changes `_
-#. `Push changes `_
-#. `Pull changes `_
-#. `Handle merge conflicts `_
-#. `Install Git Extensions on Ubuntu 11.04 `_
+* Download page: https://github.com/gitextensions/gitextensions/releases
+* Source Code: https://github.com/gitextensions/gitextensions
+* Source Code Issue tracker: https://github.com/gitextensions/gitextensions/issues
+* Documentation: https://github.com/gitextensions/GitExtensionsDoc
+* Documentation Issue tracker: https://github.com/gitextensions/GitExtensionsDoc/issues
+* Wiki: https://github.com/gitextensions/gitextensions/wiki
+Please feel free to raise any issues with Git Extensions or its documentation at the appropriate Issue tracker link as shown above.
diff --git a/source/github.rst b/source/github.rst
new file mode 100644
index 0000000..40731b8
--- /dev/null
+++ b/source/github.rst
@@ -0,0 +1,48 @@
+.. _github:
+
+GitHub
+======
+
+Git Extensions has specific integration with GitHub that adds a GitHub menu item in the main toolbar.
+
+.. image:: /images/github/github_menu.png
+
+Clone Github repository
+-----------------------
+
+This option allows you to
+
+1) Fork a repository on GitHub so it is created in your personal space on GitHub.
+2) Clone any repositories on your personal space on GitHub so that it becomes a local repository on your machine.
+
+You can see your own personal repositories on GitHub, and also search for repositories using the ``Search for repositories`` tab.
+
+.. image:: /images/github/github_clone.png
+
+View pull requests
+------------------
+
+View current pull requests for the active remotes hosted on GitHub,
+including the diff and comments.
+
+.. image:: /images/github/github_view_pr.png
+
+Create pull requests
+--------------------
+
+Create a pull request to an active remote.
+
+Note: Many GitHub repos has templates that should be used when creating PR,
+if so this form should not be used.
+
+.. image:: /images/github/github_create_pr.png
+
+Add upstream remote
+-------------------
+
+Add the repo the current repo was forked from as `upstream`.
+
+Settings
+--------
+
+See :ref:`plugins` to configure access.
diff --git a/source/images/account_settings.png b/source/images/account_settings.png
deleted file mode 100644
index 02115b5..0000000
Binary files a/source/images/account_settings.png and /dev/null differ
diff --git a/source/images/add_note_context_menu.png b/source/images/add_note_context_menu.png
deleted file mode 100644
index e86c2ea..0000000
Binary files a/source/images/add_note_context_menu.png and /dev/null differ
diff --git a/source/images/add_submodules.png b/source/images/add_submodules.png
deleted file mode 100644
index 5a41a79..0000000
Binary files a/source/images/add_submodules.png and /dev/null differ
diff --git a/source/images/advance_filter_dialog.png b/source/images/advance_filter_dialog.png
deleted file mode 100644
index 4492ed1..0000000
Binary files a/source/images/advance_filter_dialog.png and /dev/null differ
diff --git a/source/images/apply_patche.png b/source/images/apply_patche.png
deleted file mode 100644
index 089ee84..0000000
Binary files a/source/images/apply_patche.png and /dev/null differ
diff --git a/source/images/blame.png b/source/images/blame.png
deleted file mode 100644
index e52be7a..0000000
Binary files a/source/images/blame.png and /dev/null differ
diff --git a/source/images/branch_name.png b/source/images/branch_name.png
deleted file mode 100644
index a0c9d71..0000000
Binary files a/source/images/branch_name.png and /dev/null differ
diff --git a/source/images/branch.png b/source/images/branches/branch.png
similarity index 100%
rename from source/images/branch.png
rename to source/images/branches/branch.png
diff --git a/source/images/branches/branch_toolbar.png b/source/images/branches/branch_toolbar.png
new file mode 100644
index 0000000..8f96cad
Binary files /dev/null and b/source/images/branches/branch_toolbar.png differ
diff --git a/source/images/branches/checkout_branch.png b/source/images/branches/checkout_branch.png
new file mode 100644
index 0000000..af161d0
Binary files /dev/null and b/source/images/branches/checkout_branch.png differ
diff --git a/source/images/branches/create_branch_dialog.png b/source/images/branches/create_branch_dialog.png
new file mode 100644
index 0000000..e33890a
Binary files /dev/null and b/source/images/branches/create_branch_dialog.png differ
diff --git a/source/images/branches/delete_branch.png b/source/images/branches/delete_branch.png
new file mode 100644
index 0000000..82501c8
Binary files /dev/null and b/source/images/branches/delete_branch.png differ
diff --git a/source/images/branches/merge1.png b/source/images/branches/merge1.png
new file mode 100644
index 0000000..19d9ab6
Binary files /dev/null and b/source/images/branches/merge1.png differ
diff --git a/source/images/branches/merge2.png b/source/images/branches/merge2.png
new file mode 100644
index 0000000..78bbf62
Binary files /dev/null and b/source/images/branches/merge2.png differ
diff --git a/source/images/branches/merge3.png b/source/images/branches/merge3.png
new file mode 100644
index 0000000..929108c
Binary files /dev/null and b/source/images/branches/merge3.png differ
diff --git a/source/images/branches/merge_context_menu.png b/source/images/branches/merge_context_menu.png
new file mode 100644
index 0000000..62b8b39
Binary files /dev/null and b/source/images/branches/merge_context_menu.png differ
diff --git a/source/images/branches/merge_dialog.png b/source/images/branches/merge_dialog.png
new file mode 100644
index 0000000..ff99818
Binary files /dev/null and b/source/images/branches/merge_dialog.png differ
diff --git a/source/images/branches/new_branch.png b/source/images/branches/new_branch.png
new file mode 100644
index 0000000..1998bfe
Binary files /dev/null and b/source/images/branches/new_branch.png differ
diff --git a/source/images/branches/rebase2.png b/source/images/branches/rebase2.png
new file mode 100644
index 0000000..0b4c4f5
Binary files /dev/null and b/source/images/branches/rebase2.png differ
diff --git a/source/images/branches/rebase_context_menu.png b/source/images/branches/rebase_context_menu.png
new file mode 100644
index 0000000..f678520
Binary files /dev/null and b/source/images/branches/rebase_context_menu.png differ
diff --git a/source/images/branches/rebase_dialog.png b/source/images/branches/rebase_dialog.png
new file mode 100644
index 0000000..1c04831
Binary files /dev/null and b/source/images/branches/rebase_dialog.png differ
diff --git a/source/images/branches/refactor_branch.png b/source/images/branches/refactor_branch.png
new file mode 100644
index 0000000..72a51d9
Binary files /dev/null and b/source/images/branches/refactor_branch.png differ
diff --git a/source/images/browse/advance_filter_dialog-menu.png b/source/images/browse/advance_filter_dialog-menu.png
new file mode 100644
index 0000000..3b9180c
Binary files /dev/null and b/source/images/browse/advance_filter_dialog-menu.png differ
diff --git a/source/images/browse/advance_filter_dialog.png b/source/images/browse/advance_filter_dialog.png
new file mode 100644
index 0000000..0888af3
Binary files /dev/null and b/source/images/browse/advance_filter_dialog.png differ
diff --git a/source/images/browse/commit_contextual_menu.png b/source/images/browse/commit_contextual_menu.png
new file mode 100644
index 0000000..76099be
Binary files /dev/null and b/source/images/browse/commit_contextual_menu.png differ
diff --git a/source/images/browse/commit_diff_view.png b/source/images/browse/commit_diff_view.png
new file mode 100644
index 0000000..b39add1
Binary files /dev/null and b/source/images/browse/commit_diff_view.png differ
diff --git a/source/images/browse/find_in_file_tree.png b/source/images/browse/find_in_file_tree.png
new file mode 100644
index 0000000..1d2fcff
Binary files /dev/null and b/source/images/browse/find_in_file_tree.png differ
diff --git a/source/images/browse/quick_filter.png b/source/images/browse/quick_filter.png
new file mode 100644
index 0000000..46f69a6
Binary files /dev/null and b/source/images/browse/quick_filter.png differ
diff --git a/source/images/checkout_branch.png b/source/images/checkout_branch.png
deleted file mode 100644
index 571cb02..0000000
Binary files a/source/images/checkout_branch.png and /dev/null differ
diff --git a/source/images/cherry_pick.png b/source/images/cherry_pick.png
deleted file mode 100644
index 9870dfb..0000000
Binary files a/source/images/cherry_pick.png and /dev/null differ
diff --git a/source/images/choose_language.png b/source/images/choose_language.png
deleted file mode 100644
index 95d14f7..0000000
Binary files a/source/images/choose_language.png and /dev/null differ
diff --git a/source/images/clone.png b/source/images/clone.png
deleted file mode 100644
index 468a139..0000000
Binary files a/source/images/clone.png and /dev/null differ
diff --git a/source/images/command_line.png b/source/images/command_line.png
deleted file mode 100644
index afad2fc..0000000
Binary files a/source/images/command_line.png and /dev/null differ
diff --git a/source/images/command_line/command_line.png b/source/images/command_line/command_line.png
new file mode 100644
index 0000000..0f2d664
Binary files /dev/null and b/source/images/command_line/command_line.png differ
diff --git a/source/images/command_line/command_line_usage.png b/source/images/command_line/command_line_usage.png
new file mode 100644
index 0000000..cd587b4
Binary files /dev/null and b/source/images/command_line/command_line_usage.png differ
diff --git a/source/images/command_line_usage.png b/source/images/command_line_usage.png
deleted file mode 100644
index d418dc9..0000000
Binary files a/source/images/command_line_usage.png and /dev/null differ
diff --git a/source/images/commit/commit_amend_reset_author.png b/source/images/commit/commit_amend_reset_author.png
new file mode 100644
index 0000000..69ca102
Binary files /dev/null and b/source/images/commit/commit_amend_reset_author.png differ
diff --git a/source/images/commit/commit_dialog.png b/source/images/commit/commit_dialog.png
new file mode 100644
index 0000000..29c93ba
Binary files /dev/null and b/source/images/commit/commit_dialog.png differ
diff --git a/source/images/commit/commit_dialog_commit.png b/source/images/commit/commit_dialog_commit.png
new file mode 100644
index 0000000..13936e0
Binary files /dev/null and b/source/images/commit/commit_dialog_commit.png differ
diff --git a/source/images/commit/commit_dialog_spellchecker.png b/source/images/commit/commit_dialog_spellchecker.png
new file mode 100644
index 0000000..821b808
Binary files /dev/null and b/source/images/commit/commit_dialog_spellchecker.png differ
diff --git a/source/images/commit/commit_menu_edit_ignored.png b/source/images/commit/commit_menu_edit_ignored.png
new file mode 100644
index 0000000..d8c9df2
Binary files /dev/null and b/source/images/commit/commit_menu_edit_ignored.png differ
diff --git a/source/images/commit/commit_reset_changes.png b/source/images/commit/commit_reset_changes.png
new file mode 100644
index 0000000..1f13c04
Binary files /dev/null and b/source/images/commit/commit_reset_changes.png differ
diff --git a/source/images/commit_contextual_menu.png b/source/images/commit_contextual_menu.png
deleted file mode 100644
index 842b744..0000000
Binary files a/source/images/commit_contextual_menu.png and /dev/null differ
diff --git a/source/images/commit_dialog.png b/source/images/commit_dialog.png
deleted file mode 100644
index b194b7e..0000000
Binary files a/source/images/commit_dialog.png and /dev/null differ
diff --git a/source/images/commit_dialog_commit.png b/source/images/commit_dialog_commit.png
deleted file mode 100644
index caf521f..0000000
Binary files a/source/images/commit_dialog_commit.png and /dev/null differ
diff --git a/source/images/commit_dialog_language.png b/source/images/commit_dialog_language.png
deleted file mode 100644
index fee8d94..0000000
Binary files a/source/images/commit_dialog_language.png and /dev/null differ
diff --git a/source/images/commit_dialog_spellchecker.png b/source/images/commit_dialog_spellchecker.png
deleted file mode 100644
index 48818ec..0000000
Binary files a/source/images/commit_dialog_spellchecker.png and /dev/null differ
diff --git a/source/images/commit_diff_view.png b/source/images/commit_diff_view.png
deleted file mode 100644
index 99bbaf1..0000000
Binary files a/source/images/commit_diff_view.png and /dev/null differ
diff --git a/source/images/commit_log_stash.png b/source/images/commit_log_stash.png
deleted file mode 100644
index 5c38c7a..0000000
Binary files a/source/images/commit_log_stash.png and /dev/null differ
diff --git a/source/images/compress_database.png b/source/images/compress_database.png
deleted file mode 100644
index 3a0700b..0000000
Binary files a/source/images/compress_database.png and /dev/null differ
diff --git a/source/images/context_menu_blame.png b/source/images/context_menu_blame.png
deleted file mode 100644
index a71a970..0000000
Binary files a/source/images/context_menu_blame.png and /dev/null differ
diff --git a/source/images/create_branch_dialog.png b/source/images/create_branch_dialog.png
deleted file mode 100644
index c8ee76b..0000000
Binary files a/source/images/create_branch_dialog.png and /dev/null differ
diff --git a/source/images/dashboard/clone.png b/source/images/dashboard/clone.png
new file mode 100644
index 0000000..3b13880
Binary files /dev/null and b/source/images/dashboard/clone.png differ
diff --git a/source/images/dashboard/move_to_category.png b/source/images/dashboard/move_to_category.png
new file mode 100644
index 0000000..8c26c86
Binary files /dev/null and b/source/images/dashboard/move_to_category.png differ
diff --git a/source/images/dashboard/new_repository.png b/source/images/dashboard/new_repository.png
new file mode 100644
index 0000000..8d31e21
Binary files /dev/null and b/source/images/dashboard/new_repository.png differ
diff --git a/source/images/dashboard/open_repo.png b/source/images/dashboard/open_repo.png
new file mode 100644
index 0000000..771a541
Binary files /dev/null and b/source/images/dashboard/open_repo.png differ
diff --git a/source/images/dashboard/start_page.png b/source/images/dashboard/start_page.png
new file mode 100644
index 0000000..1585d77
Binary files /dev/null and b/source/images/dashboard/start_page.png differ
diff --git a/source/images/delet_branch.png b/source/images/delet_branch.png
deleted file mode 100644
index 625e778..0000000
Binary files a/source/images/delet_branch.png and /dev/null differ
diff --git a/source/images/delete_tag.png b/source/images/delete_tag.png
deleted file mode 100644
index c8a89dd..0000000
Binary files a/source/images/delete_tag.png and /dev/null differ
diff --git a/source/images/development/GitExt_Menu_Structure_v2_43.png b/source/images/development/GitExt_Menu_Structure_v2_43.png
deleted file mode 100644
index 67b1435..0000000
Binary files a/source/images/development/GitExt_Menu_Structure_v2_43.png and /dev/null differ
diff --git a/source/images/file_history.png b/source/images/file_history.png
deleted file mode 100644
index 9085bdb..0000000
Binary files a/source/images/file_history.png and /dev/null differ
diff --git a/source/images/file_history/context_menu_blame.png b/source/images/file_history/context_menu_blame.png
new file mode 100644
index 0000000..a677fb4
Binary files /dev/null and b/source/images/file_history/context_menu_blame.png differ
diff --git a/source/images/file_history/file_history_blame.png b/source/images/file_history/file_history_blame.png
new file mode 100644
index 0000000..228c72f
Binary files /dev/null and b/source/images/file_history/file_history_blame.png differ
diff --git a/source/images/file_history/file_history_commit.png b/source/images/file_history/file_history_commit.png
new file mode 100644
index 0000000..d538453
Binary files /dev/null and b/source/images/file_history/file_history_commit.png differ
diff --git a/source/images/file_history/file_history_diff.png b/source/images/file_history/file_history_diff.png
new file mode 100644
index 0000000..0ba3cff
Binary files /dev/null and b/source/images/file_history/file_history_diff.png differ
diff --git a/source/images/file_history/file_history_view.png b/source/images/file_history/file_history_view.png
new file mode 100644
index 0000000..cb5c2bb
Binary files /dev/null and b/source/images/file_history/file_history_view.png differ
diff --git a/source/images/file_history_diff.png b/source/images/file_history_diff.png
deleted file mode 100644
index 48920fa..0000000
Binary files a/source/images/file_history_diff.png and /dev/null differ
diff --git a/source/images/generate_or_import_key.png b/source/images/generate_or_import_key.png
deleted file mode 100644
index 09e7bb6..0000000
Binary files a/source/images/generate_or_import_key.png and /dev/null differ
diff --git a/source/images/git_bash_toolbar.png b/source/images/git_bash_toolbar.png
deleted file mode 100644
index 56d8eca..0000000
Binary files a/source/images/git_bash_toolbar.png and /dev/null differ
diff --git a/source/images/github/github_clone.png b/source/images/github/github_clone.png
new file mode 100644
index 0000000..5baf8d5
Binary files /dev/null and b/source/images/github/github_clone.png differ
diff --git a/source/images/github/github_create_pr.png b/source/images/github/github_create_pr.png
new file mode 100644
index 0000000..4e854b7
Binary files /dev/null and b/source/images/github/github_create_pr.png differ
diff --git a/source/images/github/github_menu.png b/source/images/github/github_menu.png
new file mode 100644
index 0000000..5ea5dca
Binary files /dev/null and b/source/images/github/github_menu.png differ
diff --git a/source/images/github/github_view_pr.png b/source/images/github/github_view_pr.png
new file mode 100644
index 0000000..7bc0a45
Binary files /dev/null and b/source/images/github/github_view_pr.png differ
diff --git a/source/images/github_openssh.png b/source/images/github_openssh.png
deleted file mode 100644
index 75d7974..0000000
Binary files a/source/images/github_openssh.png and /dev/null differ
diff --git a/source/images/github_ssh.png b/source/images/github_ssh.png
deleted file mode 100644
index 9d3d665..0000000
Binary files a/source/images/github_ssh.png and /dev/null differ
diff --git a/source/images/gitignore.png b/source/images/gitignore.png
deleted file mode 100644
index ddbeeda..0000000
Binary files a/source/images/gitignore.png and /dev/null differ
diff --git a/source/images/install/destination.png b/source/images/install/destination.png
new file mode 100644
index 0000000..a16e283
Binary files /dev/null and b/source/images/install/destination.png differ
diff --git a/source/images/install/git_missing.png b/source/images/install/git_missing.png
new file mode 100644
index 0000000..98dc693
Binary files /dev/null and b/source/images/install/git_missing.png differ
diff --git a/source/images/install/install1.png b/source/images/install/install1.png
deleted file mode 100644
index 1f46f03..0000000
Binary files a/source/images/install/install1.png and /dev/null differ
diff --git a/source/images/install/install2.png b/source/images/install/install2.png
deleted file mode 100644
index c66ee9b..0000000
Binary files a/source/images/install/install2.png and /dev/null differ
diff --git a/source/images/install/install3.png b/source/images/install/install3.png
deleted file mode 100644
index c47ac9c..0000000
Binary files a/source/images/install/install3.png and /dev/null differ
diff --git a/source/images/install/install4.png b/source/images/install/install4.png
deleted file mode 100644
index bf31b63..0000000
Binary files a/source/images/install/install4.png and /dev/null differ
diff --git a/source/images/install/install5.png b/source/images/install/install5.png
deleted file mode 100644
index 582fd6f..0000000
Binary files a/source/images/install/install5.png and /dev/null differ
diff --git a/source/images/install/install6.png b/source/images/install/install6.png
deleted file mode 100644
index c5735af..0000000
Binary files a/source/images/install/install6.png and /dev/null differ
diff --git a/source/images/install/language.png b/source/images/install/language.png
new file mode 100644
index 0000000..0cd3c8e
Binary files /dev/null and b/source/images/install/language.png differ
diff --git a/source/images/install/options.png b/source/images/install/options.png
new file mode 100644
index 0000000..a0488b3
Binary files /dev/null and b/source/images/install/options.png differ
diff --git a/source/images/install/ready.png b/source/images/install/ready.png
new file mode 100644
index 0000000..56d4be2
Binary files /dev/null and b/source/images/install/ready.png differ
diff --git a/source/images/install/scope.png b/source/images/install/scope.png
new file mode 100644
index 0000000..d44efe6
Binary files /dev/null and b/source/images/install/scope.png differ
diff --git a/source/images/install/ssh.png b/source/images/install/ssh.png
new file mode 100644
index 0000000..5612dc0
Binary files /dev/null and b/source/images/install/ssh.png differ
diff --git a/source/images/install/telemetry.png b/source/images/install/telemetry.png
new file mode 100644
index 0000000..85c1c2a
Binary files /dev/null and b/source/images/install/telemetry.png differ
diff --git a/source/images/install/welcome.png b/source/images/install/welcome.png
new file mode 100644
index 0000000..761ba11
Binary files /dev/null and b/source/images/install/welcome.png differ
diff --git a/source/images/lost_found.png b/source/images/lost_found.png
deleted file mode 100644
index 64ce7c0..0000000
Binary files a/source/images/lost_found.png and /dev/null differ
diff --git a/source/images/mail_map.png b/source/images/mail_map.png
deleted file mode 100644
index 1dda08e..0000000
Binary files a/source/images/mail_map.png and /dev/null differ
diff --git a/source/images/maintenance/compress_database.png b/source/images/maintenance/compress_database.png
new file mode 100644
index 0000000..675b33d
Binary files /dev/null and b/source/images/maintenance/compress_database.png differ
diff --git a/source/images/maintenance/gitignore.png b/source/images/maintenance/gitignore.png
new file mode 100644
index 0000000..933b1ce
Binary files /dev/null and b/source/images/maintenance/gitignore.png differ
diff --git a/source/images/maintenance/mail_map.png b/source/images/maintenance/mail_map.png
new file mode 100644
index 0000000..20b233b
Binary files /dev/null and b/source/images/maintenance/mail_map.png differ
diff --git a/source/images/maintenance/recover_objects.png b/source/images/maintenance/recover_objects.png
new file mode 100644
index 0000000..53676b7
Binary files /dev/null and b/source/images/maintenance/recover_objects.png differ
diff --git a/source/images/maintenance/reflog_revision.png b/source/images/maintenance/reflog_revision.png
new file mode 100644
index 0000000..699d76f
Binary files /dev/null and b/source/images/maintenance/reflog_revision.png differ
diff --git a/source/images/maintenance/reflog_show.png b/source/images/maintenance/reflog_show.png
new file mode 100644
index 0000000..70a01d2
Binary files /dev/null and b/source/images/maintenance/reflog_show.png differ
diff --git a/source/images/maintenance/verify_database.png b/source/images/maintenance/verify_database.png
new file mode 100644
index 0000000..5383cd0
Binary files /dev/null and b/source/images/maintenance/verify_database.png differ
diff --git a/source/images/manage_remote_repositories.png b/source/images/manage_remote_repositories.png
deleted file mode 100644
index 57682ef..0000000
Binary files a/source/images/manage_remote_repositories.png and /dev/null differ
diff --git a/source/images/merge1.png b/source/images/merge1.png
deleted file mode 100644
index cf06d1e..0000000
Binary files a/source/images/merge1.png and /dev/null differ
diff --git a/source/images/merge2.png b/source/images/merge2.png
deleted file mode 100644
index c54a13e..0000000
Binary files a/source/images/merge2.png and /dev/null differ
diff --git a/source/images/merge3.png b/source/images/merge3.png
deleted file mode 100644
index c543e4a..0000000
Binary files a/source/images/merge3.png and /dev/null differ
diff --git a/source/images/merge_conflicts.png b/source/images/merge_conflicts.png
deleted file mode 100644
index c122bbf..0000000
Binary files a/source/images/merge_conflicts.png and /dev/null differ
diff --git a/source/images/merge_dialog.png b/source/images/merge_dialog.png
deleted file mode 100644
index b5b3f53..0000000
Binary files a/source/images/merge_dialog.png and /dev/null differ
diff --git a/source/images/modify_history/amend_commit.png b/source/images/modify_history/amend_commit.png
new file mode 100644
index 0000000..6dd938f
Binary files /dev/null and b/source/images/modify_history/amend_commit.png differ
diff --git a/source/images/modify_history/cherry_pick.png b/source/images/modify_history/cherry_pick.png
new file mode 100644
index 0000000..0003d31
Binary files /dev/null and b/source/images/modify_history/cherry_pick.png differ
diff --git a/source/images/modify_history/cherry_pick_context_menu.png b/source/images/modify_history/cherry_pick_context_menu.png
new file mode 100644
index 0000000..577246e
Binary files /dev/null and b/source/images/modify_history/cherry_pick_context_menu.png differ
diff --git a/source/images/modify_history/merge_conflicts.png b/source/images/modify_history/merge_conflicts.png
new file mode 100644
index 0000000..ac90f70
Binary files /dev/null and b/source/images/modify_history/merge_conflicts.png differ
diff --git a/source/images/modify_history/perforce_p4merge.png b/source/images/modify_history/perforce_p4merge.png
new file mode 100644
index 0000000..78bb1c4
Binary files /dev/null and b/source/images/modify_history/perforce_p4merge.png differ
diff --git a/source/images/modify_history/rebase_interactive.png b/source/images/modify_history/rebase_interactive.png
new file mode 100644
index 0000000..34114b5
Binary files /dev/null and b/source/images/modify_history/rebase_interactive.png differ
diff --git a/source/images/modify_history/rebase_interactive_autosquash.png b/source/images/modify_history/rebase_interactive_autosquash.png
new file mode 100644
index 0000000..0995d83
Binary files /dev/null and b/source/images/modify_history/rebase_interactive_autosquash.png differ
diff --git a/source/images/modify_history/rebase_interactive_create_fixup_commit.png b/source/images/modify_history/rebase_interactive_create_fixup_commit.png
new file mode 100644
index 0000000..f8ba526
Binary files /dev/null and b/source/images/modify_history/rebase_interactive_create_fixup_commit.png differ
diff --git a/source/images/modify_history/rebase_interactive_fixup_commit.png b/source/images/modify_history/rebase_interactive_fixup_commit.png
new file mode 100644
index 0000000..973c9a1
Binary files /dev/null and b/source/images/modify_history/rebase_interactive_fixup_commit.png differ
diff --git a/source/images/modify_history/rebase_onto.png b/source/images/modify_history/rebase_onto.png
new file mode 100644
index 0000000..faf619c
Binary files /dev/null and b/source/images/modify_history/rebase_onto.png differ
diff --git a/source/images/modify_history/rebase_onto_commit_selection.png b/source/images/modify_history/rebase_onto_commit_selection.png
new file mode 100644
index 0000000..a6289bc
Binary files /dev/null and b/source/images/modify_history/rebase_onto_commit_selection.png differ
diff --git a/source/images/modify_history/rebase_onto_commit_selection_from_revision_grid.png b/source/images/modify_history/rebase_onto_commit_selection_from_revision_grid.png
new file mode 100644
index 0000000..26e003c
Binary files /dev/null and b/source/images/modify_history/rebase_onto_commit_selection_from_revision_grid.png differ
diff --git a/source/images/modify_history/resolve_merge_conflicts.png b/source/images/modify_history/resolve_merge_conflicts.png
new file mode 100644
index 0000000..a51b1a4
Binary files /dev/null and b/source/images/modify_history/resolve_merge_conflicts.png differ
diff --git a/source/images/modify_history/resolve_merge_conflicts_menu.png b/source/images/modify_history/resolve_merge_conflicts_menu.png
new file mode 100644
index 0000000..ba82668
Binary files /dev/null and b/source/images/modify_history/resolve_merge_conflicts_menu.png differ
diff --git a/source/images/modify_history/revert_commit_context_menu.png b/source/images/modify_history/revert_commit_context_menu.png
new file mode 100644
index 0000000..f24643e
Binary files /dev/null and b/source/images/modify_history/revert_commit_context_menu.png differ
diff --git a/source/images/modify_history/revert_commit_dialog.png b/source/images/modify_history/revert_commit_dialog.png
new file mode 100644
index 0000000..9ed3695
Binary files /dev/null and b/source/images/modify_history/revert_commit_dialog.png differ
diff --git a/source/images/move_to_category.png b/source/images/move_to_category.png
deleted file mode 100644
index ac19ff0..0000000
Binary files a/source/images/move_to_category.png and /dev/null differ
diff --git a/source/images/new_branch.png b/source/images/new_branch.png
deleted file mode 100644
index 60096c2..0000000
Binary files a/source/images/new_branch.png and /dev/null differ
diff --git a/source/images/new_repository.png b/source/images/new_repository.png
deleted file mode 100644
index 5f4f034..0000000
Binary files a/source/images/new_repository.png and /dev/null differ
diff --git a/source/images/new_tag.png b/source/images/new_tag.png
deleted file mode 100644
index 14c1501..0000000
Binary files a/source/images/new_tag.png and /dev/null differ
diff --git a/source/images/note_editor.png b/source/images/note_editor.png
deleted file mode 100644
index bf77cea..0000000
Binary files a/source/images/note_editor.png and /dev/null differ
diff --git a/source/images/notes/add_note_context_menu.png b/source/images/notes/add_note_context_menu.png
new file mode 100644
index 0000000..39ee30a
Binary files /dev/null and b/source/images/notes/add_note_context_menu.png differ
diff --git a/source/images/notes/note_editor.png b/source/images/notes/note_editor.png
new file mode 100644
index 0000000..29c67b2
Binary files /dev/null and b/source/images/notes/note_editor.png differ
diff --git a/source/images/patche_dialog.png b/source/images/patche_dialog.png
deleted file mode 100644
index 3fd54db..0000000
Binary files a/source/images/patche_dialog.png and /dev/null differ
diff --git a/source/images/patche_dialog_result.png b/source/images/patche_dialog_result.png
deleted file mode 100644
index 89c4d43..0000000
Binary files a/source/images/patche_dialog_result.png and /dev/null differ
diff --git a/source/images/patches/apply_patche.png b/source/images/patches/apply_patche.png
new file mode 100644
index 0000000..0c61473
Binary files /dev/null and b/source/images/patches/apply_patche.png differ
diff --git a/source/images/patche.png b/source/images/patches/patche.png
similarity index 100%
rename from source/images/patche.png
rename to source/images/patches/patche.png
diff --git a/source/images/patches/patche_dialog.png b/source/images/patches/patche_dialog.png
new file mode 100644
index 0000000..56290f8
Binary files /dev/null and b/source/images/patches/patche_dialog.png differ
diff --git a/source/images/patches/patche_dialog_result.png b/source/images/patches/patche_dialog_result.png
new file mode 100644
index 0000000..d6315b6
Binary files /dev/null and b/source/images/patches/patche_dialog_result.png differ
diff --git a/source/images/perforce_p4merge.png b/source/images/perforce_p4merge.png
deleted file mode 100644
index be84700..0000000
Binary files a/source/images/perforce_p4merge.png and /dev/null differ
diff --git a/source/images/plugins/jira_commit_hint.png b/source/images/plugins/jira_commit_hint.png
new file mode 100644
index 0000000..bb431e4
Binary files /dev/null and b/source/images/plugins/jira_commit_hint.png differ
diff --git a/source/images/pull_dialog.png b/source/images/pull_dialog.png
deleted file mode 100644
index ea38433..0000000
Binary files a/source/images/pull_dialog.png and /dev/null differ
diff --git a/source/images/pull_dialog2.png b/source/images/pull_dialog2.png
deleted file mode 100644
index 1691381..0000000
Binary files a/source/images/pull_dialog2.png and /dev/null differ
diff --git a/source/images/pull_dialog3.png b/source/images/pull_dialog3.png
deleted file mode 100644
index 761ac81..0000000
Binary files a/source/images/pull_dialog3.png and /dev/null differ
diff --git a/source/images/pull_toolbar.png b/source/images/pull_toolbar.png
deleted file mode 100644
index 112b96a..0000000
Binary files a/source/images/pull_toolbar.png and /dev/null differ
diff --git a/source/images/push1.png b/source/images/push1.png
deleted file mode 100644
index 20cefdc..0000000
Binary files a/source/images/push1.png and /dev/null differ
diff --git a/source/images/push_dialog.png b/source/images/push_dialog.png
deleted file mode 100644
index b0f8cac..0000000
Binary files a/source/images/push_dialog.png and /dev/null differ
diff --git a/source/images/push_toolbar.png b/source/images/push_toolbar.png
deleted file mode 100644
index 5308f45..0000000
Binary files a/source/images/push_toolbar.png and /dev/null differ
diff --git a/source/images/putty_agent.png b/source/images/putty_agent.png
deleted file mode 100644
index 2fb1591..0000000
Binary files a/source/images/putty_agent.png and /dev/null differ
diff --git a/source/images/putty_key_generator1.png b/source/images/putty_key_generator1.png
deleted file mode 100644
index ad743a3..0000000
Binary files a/source/images/putty_key_generator1.png and /dev/null differ
diff --git a/source/images/putty_key_generator2.png b/source/images/putty_key_generator2.png
deleted file mode 100644
index 31c0475..0000000
Binary files a/source/images/putty_key_generator2.png and /dev/null differ
diff --git a/source/images/quick_filter.png b/source/images/quick_filter.png
deleted file mode 100644
index 7970df4..0000000
Binary files a/source/images/quick_filter.png and /dev/null differ
diff --git a/source/images/rebase1.png b/source/images/rebase1.png
deleted file mode 100644
index cf06d1e..0000000
Binary files a/source/images/rebase1.png and /dev/null differ
diff --git a/source/images/rebase2.png b/source/images/rebase2.png
deleted file mode 100644
index 377cd92..0000000
Binary files a/source/images/rebase2.png and /dev/null differ
diff --git a/source/images/rebase_dialog.png b/source/images/rebase_dialog.png
deleted file mode 100644
index 3b23be0..0000000
Binary files a/source/images/rebase_dialog.png and /dev/null differ
diff --git a/source/images/recover_objects.png b/source/images/recover_objects.png
deleted file mode 100644
index 7eed7a9..0000000
Binary files a/source/images/recover_objects.png and /dev/null differ
diff --git a/source/images/refactor_branch.png b/source/images/refactor_branch.png
deleted file mode 100644
index fa64f92..0000000
Binary files a/source/images/refactor_branch.png and /dev/null differ
diff --git a/source/images/remote_repositories.png b/source/images/remote_repositories.png
deleted file mode 100644
index 61080d2..0000000
Binary files a/source/images/remote_repositories.png and /dev/null differ
diff --git a/source/images/remote_repositories2.png b/source/images/remote_repositories2.png
deleted file mode 100644
index 9cf4dbb..0000000
Binary files a/source/images/remote_repositories2.png and /dev/null differ
diff --git a/source/images/remotes/generate_or_import_key.png b/source/images/remotes/generate_or_import_key.png
new file mode 100644
index 0000000..fb3f700
Binary files /dev/null and b/source/images/remotes/generate_or_import_key.png differ
diff --git a/source/images/remotes/git_bash_toolbar.png b/source/images/remotes/git_bash_toolbar.png
new file mode 100644
index 0000000..22d3f9d
Binary files /dev/null and b/source/images/remotes/git_bash_toolbar.png differ
diff --git a/source/images/remotes/github_account_settings.png b/source/images/remotes/github_account_settings.png
new file mode 100644
index 0000000..ef1d660
Binary files /dev/null and b/source/images/remotes/github_account_settings.png differ
diff --git a/source/images/remotes/manage_remote_repositories.png b/source/images/remotes/manage_remote_repositories.png
new file mode 100644
index 0000000..5a3de2b
Binary files /dev/null and b/source/images/remotes/manage_remote_repositories.png differ
diff --git a/source/images/remotes/pull_dialog_fetch.png b/source/images/remotes/pull_dialog_fetch.png
new file mode 100644
index 0000000..aaae526
Binary files /dev/null and b/source/images/remotes/pull_dialog_fetch.png differ
diff --git a/source/images/remotes/pull_dialog_merge.png b/source/images/remotes/pull_dialog_merge.png
new file mode 100644
index 0000000..1699108
Binary files /dev/null and b/source/images/remotes/pull_dialog_merge.png differ
diff --git a/source/images/remotes/pull_dialog_rebase.png b/source/images/remotes/pull_dialog_rebase.png
new file mode 100644
index 0000000..94ac9b8
Binary files /dev/null and b/source/images/remotes/pull_dialog_rebase.png differ
diff --git a/source/images/remotes/pull_toolbar.png b/source/images/remotes/pull_toolbar.png
new file mode 100644
index 0000000..fedb2a8
Binary files /dev/null and b/source/images/remotes/pull_toolbar.png differ
diff --git a/source/images/remotes/push1.png b/source/images/remotes/push1.png
new file mode 100644
index 0000000..83c1186
Binary files /dev/null and b/source/images/remotes/push1.png differ
diff --git a/source/images/remotes/push_dialog.png b/source/images/remotes/push_dialog.png
new file mode 100644
index 0000000..be86aa6
Binary files /dev/null and b/source/images/remotes/push_dialog.png differ
diff --git a/source/images/remotes/putty_generate_or_import_key.png b/source/images/remotes/putty_generate_or_import_key.png
new file mode 100644
index 0000000..796eb71
Binary files /dev/null and b/source/images/remotes/putty_generate_or_import_key.png differ
diff --git a/source/images/remotes/putty_key_generator1.png b/source/images/remotes/putty_key_generator1.png
new file mode 100644
index 0000000..6c24e52
Binary files /dev/null and b/source/images/remotes/putty_key_generator1.png differ
diff --git a/source/images/remotes/putty_key_generator2.png b/source/images/remotes/putty_key_generator2.png
new file mode 100644
index 0000000..ebebd35
Binary files /dev/null and b/source/images/remotes/putty_key_generator2.png differ
diff --git a/source/images/remotes/remote_repositories.png b/source/images/remotes/remote_repositories.png
new file mode 100644
index 0000000..c84e856
Binary files /dev/null and b/source/images/remotes/remote_repositories.png differ
diff --git a/source/images/remotes/remote_repositories2.png b/source/images/remotes/remote_repositories2.png
new file mode 100644
index 0000000..b1465b6
Binary files /dev/null and b/source/images/remotes/remote_repositories2.png differ
diff --git a/source/images/remotes/ssh_bash.png b/source/images/remotes/ssh_bash.png
new file mode 100644
index 0000000..8967f5d
Binary files /dev/null and b/source/images/remotes/ssh_bash.png differ
diff --git a/source/images/reset_changes.png b/source/images/reset_changes.png
deleted file mode 100644
index 367f39e..0000000
Binary files a/source/images/reset_changes.png and /dev/null differ
diff --git a/source/images/resolve_merge_conflicts.png b/source/images/resolve_merge_conflicts.png
deleted file mode 100644
index dbddcf5..0000000
Binary files a/source/images/resolve_merge_conflicts.png and /dev/null differ
diff --git a/source/images/revert_commit.png b/source/images/revert_commit.png
deleted file mode 100644
index bed4ca9..0000000
Binary files a/source/images/revert_commit.png and /dev/null differ
diff --git a/source/images/settings/appearance.png b/source/images/settings/appearance.png
deleted file mode 100644
index 94ae04d..0000000
Binary files a/source/images/settings/appearance.png and /dev/null differ
diff --git a/source/images/settings/checklist.png b/source/images/settings/checklist.png
deleted file mode 100644
index 59c3767..0000000
Binary files a/source/images/settings/checklist.png and /dev/null differ
diff --git a/source/images/settings/colors.png b/source/images/settings/colors.png
deleted file mode 100644
index 96bf401..0000000
Binary files a/source/images/settings/colors.png and /dev/null differ
diff --git a/source/images/settings/diff-appearance.png b/source/images/settings/diff-appearance.png
new file mode 100644
index 0000000..8f2934b
Binary files /dev/null and b/source/images/settings/diff-appearance.png differ
diff --git a/source/images/settings/diff-common-base-conflict-icons.png b/source/images/settings/diff-common-base-conflict-icons.png
new file mode 100644
index 0000000..532d536
Binary files /dev/null and b/source/images/settings/diff-common-base-conflict-icons.png differ
diff --git a/source/images/settings/git.png b/source/images/settings/git.png
deleted file mode 100644
index 490ee81..0000000
Binary files a/source/images/settings/git.png and /dev/null differ
diff --git a/source/images/settings/git_extensions.png b/source/images/settings/git_extensions.png
deleted file mode 100644
index 7ce161e..0000000
Binary files a/source/images/settings/git_extensions.png and /dev/null differ
diff --git a/source/images/settings/global_settings.png b/source/images/settings/global_settings.png
deleted file mode 100644
index 2a8f904..0000000
Binary files a/source/images/settings/global_settings.png and /dev/null differ
diff --git a/source/images/settings/range-diff-multiple-select.png b/source/images/settings/range-diff-multiple-select.png
new file mode 100644
index 0000000..825f838
Binary files /dev/null and b/source/images/settings/range-diff-multiple-select.png differ
diff --git a/source/images/settings/range-diff-two-select.png b/source/images/settings/range-diff-two-select.png
new file mode 100644
index 0000000..4c8381d
Binary files /dev/null and b/source/images/settings/range-diff-two-select.png differ
diff --git a/source/images/settings/related_links_location.png b/source/images/settings/related_links_location.png
new file mode 100644
index 0000000..93d166a
Binary files /dev/null and b/source/images/settings/related_links_location.png differ
diff --git a/source/images/settings/rev-details-on-the-right.png b/source/images/settings/rev-details-on-the-right.png
new file mode 100644
index 0000000..87f18be
Binary files /dev/null and b/source/images/settings/rev-details-on-the-right.png differ
diff --git a/source/images/settings/revision_links.png b/source/images/settings/revision_links.png
new file mode 100644
index 0000000..9edfc16
Binary files /dev/null and b/source/images/settings/revision_links.png differ
diff --git a/source/images/settings/settings.png b/source/images/settings/settings.png
new file mode 100644
index 0000000..246c070
Binary files /dev/null and b/source/images/settings/settings.png differ
diff --git a/source/images/settings/show-all-difftools.png b/source/images/settings/show-all-difftools.png
new file mode 100644
index 0000000..352939b
Binary files /dev/null and b/source/images/settings/show-all-difftools.png differ
diff --git a/source/images/settings/ssh.png b/source/images/settings/ssh.png
deleted file mode 100644
index 51f403c..0000000
Binary files a/source/images/settings/ssh.png and /dev/null differ
diff --git a/source/images/settings/start_page.png b/source/images/settings/start_page.png
deleted file mode 100644
index e2a7468..0000000
Binary files a/source/images/settings/start_page.png and /dev/null differ
diff --git a/source/images/show_untracked.png b/source/images/show_untracked.png
deleted file mode 100644
index c22cbb2..0000000
Binary files a/source/images/show_untracked.png and /dev/null differ
diff --git a/source/images/ssh_bash.png b/source/images/ssh_bash.png
deleted file mode 100644
index 7bb2720..0000000
Binary files a/source/images/ssh_bash.png and /dev/null differ
diff --git a/source/images/ssh_folder.png b/source/images/ssh_folder.png
deleted file mode 100644
index f938ff1..0000000
Binary files a/source/images/ssh_folder.png and /dev/null differ
diff --git a/source/images/start_page.png b/source/images/start_page.png
deleted file mode 100644
index 5846cce..0000000
Binary files a/source/images/start_page.png and /dev/null differ
diff --git a/source/images/stash/commit_log_stash.png b/source/images/stash/commit_log_stash.png
new file mode 100644
index 0000000..e8ac38e
Binary files /dev/null and b/source/images/stash/commit_log_stash.png differ
diff --git a/source/images/stash/commit_log_stash2.png b/source/images/stash/commit_log_stash2.png
new file mode 100644
index 0000000..1339a69
Binary files /dev/null and b/source/images/stash/commit_log_stash2.png differ
diff --git a/source/images/stash/stash_dialog.png b/source/images/stash/stash_dialog.png
new file mode 100644
index 0000000..df916b7
Binary files /dev/null and b/source/images/stash/stash_dialog.png differ
diff --git a/source/images/stash/stash_left_panel.png b/source/images/stash/stash_left_panel.png
new file mode 100644
index 0000000..de80826
Binary files /dev/null and b/source/images/stash/stash_left_panel.png differ
diff --git a/source/images/stash_dialog.png b/source/images/stash_dialog.png
deleted file mode 100644
index 6c82120..0000000
Binary files a/source/images/stash_dialog.png and /dev/null differ
diff --git a/source/images/submodules.png b/source/images/submodules.png
deleted file mode 100644
index 6eca436..0000000
Binary files a/source/images/submodules.png and /dev/null differ
diff --git a/source/images/submodules/add_submodules.png b/source/images/submodules/add_submodules.png
new file mode 100644
index 0000000..c448f45
Binary files /dev/null and b/source/images/submodules/add_submodules.png differ
diff --git a/source/images/submodules/submodules.png b/source/images/submodules/submodules.png
new file mode 100644
index 0000000..8b46258
Binary files /dev/null and b/source/images/submodules/submodules.png differ
diff --git a/source/images/submodules/submodules_dialog.png b/source/images/submodules/submodules_dialog.png
new file mode 100644
index 0000000..c96119c
Binary files /dev/null and b/source/images/submodules/submodules_dialog.png differ
diff --git a/source/images/submodules_dialog.png b/source/images/submodules_dialog.png
deleted file mode 100644
index 1c5fb82..0000000
Binary files a/source/images/submodules_dialog.png and /dev/null differ
diff --git a/source/images/tag.png b/source/images/tag.png
deleted file mode 100644
index b061fcb..0000000
Binary files a/source/images/tag.png and /dev/null differ
diff --git a/source/images/tag/delete_tag.png b/source/images/tag/delete_tag.png
new file mode 100644
index 0000000..242c21e
Binary files /dev/null and b/source/images/tag/delete_tag.png differ
diff --git a/source/images/tag/new_tag.png b/source/images/tag/new_tag.png
new file mode 100644
index 0000000..0151537
Binary files /dev/null and b/source/images/tag/new_tag.png differ
diff --git a/source/images/tag/tag.png b/source/images/tag/tag.png
new file mode 100644
index 0000000..9efdeb3
Binary files /dev/null and b/source/images/tag/tag.png differ
diff --git a/source/images/translate.png b/source/images/translate.png
deleted file mode 100644
index 97a3024..0000000
Binary files a/source/images/translate.png and /dev/null differ
diff --git a/source/images/translate_window.png b/source/images/translate_window.png
deleted file mode 100644
index 6e291ca..0000000
Binary files a/source/images/translate_window.png and /dev/null differ
diff --git a/source/images/verify_database.png b/source/images/verify_database.png
deleted file mode 100644
index cdd97bf..0000000
Binary files a/source/images/verify_database.png and /dev/null differ
diff --git a/source/images/visual_studio/browse.png b/source/images/visual_studio/browse.png
deleted file mode 100644
index 4d62373..0000000
Binary files a/source/images/visual_studio/browse.png and /dev/null differ
diff --git a/source/images/visual_studio/commit.png b/source/images/visual_studio/commit.png
deleted file mode 100644
index 36d5b00..0000000
Binary files a/source/images/visual_studio/commit.png and /dev/null differ
diff --git a/source/images/visual_studio/context_menu.png b/source/images/visual_studio/context_menu.png
index 6d29b5c..8b7a2e8 100644
Binary files a/source/images/visual_studio/context_menu.png and b/source/images/visual_studio/context_menu.png differ
diff --git a/source/images/visual_studio/git_menu.png b/source/images/visual_studio/git_menu.png
deleted file mode 100644
index 53bacfa..0000000
Binary files a/source/images/visual_studio/git_menu.png and /dev/null differ
diff --git a/source/images/visual_studio/git_menu_vs2022.png b/source/images/visual_studio/git_menu_vs2022.png
new file mode 100644
index 0000000..5c8b452
Binary files /dev/null and b/source/images/visual_studio/git_menu_vs2022.png differ
diff --git a/source/images/visual_studio/pull.png b/source/images/visual_studio/pull.png
deleted file mode 100644
index 07fe9e9..0000000
Binary files a/source/images/visual_studio/pull.png and /dev/null differ
diff --git a/source/images/visual_studio/push.png b/source/images/visual_studio/push.png
deleted file mode 100644
index 428ec6c..0000000
Binary files a/source/images/visual_studio/push.png and /dev/null differ
diff --git a/source/images/visual_studio/setting_branch.png b/source/images/visual_studio/setting_branch.png
new file mode 100644
index 0000000..5762135
Binary files /dev/null and b/source/images/visual_studio/setting_branch.png differ
diff --git a/source/images/visual_studio/settings.png b/source/images/visual_studio/settings.png
deleted file mode 100644
index 95c3516..0000000
Binary files a/source/images/visual_studio/settings.png and /dev/null differ
diff --git a/source/images/visual_studio/stash.png b/source/images/visual_studio/stash.png
deleted file mode 100644
index 8a66cf8..0000000
Binary files a/source/images/visual_studio/stash.png and /dev/null differ
diff --git a/source/images/visual_studio/toolbar.png b/source/images/visual_studio/toolbar.png
index 795e602..a4e8d10 100644
Binary files a/source/images/visual_studio/toolbar.png and b/source/images/visual_studio/toolbar.png differ
diff --git a/source/images/explorer_integration.png b/source/images/windows_explorer/explorer_integration.png
similarity index 100%
rename from source/images/explorer_integration.png
rename to source/images/windows_explorer/explorer_integration.png
diff --git a/source/images/explorer_integration_new.png b/source/images/windows_explorer/explorer_integration_new.png
similarity index 100%
rename from source/images/explorer_integration_new.png
rename to source/images/windows_explorer/explorer_integration_new.png
diff --git a/source/images/worktrees/worktree_context_menu.png b/source/images/worktrees/worktree_context_menu.png
new file mode 100644
index 0000000..192bae6
Binary files /dev/null and b/source/images/worktrees/worktree_context_menu.png differ
diff --git a/source/images/worktrees/worktree_dialog.png b/source/images/worktrees/worktree_dialog.png
new file mode 100644
index 0000000..9dac0d9
Binary files /dev/null and b/source/images/worktrees/worktree_dialog.png differ
diff --git a/source/index.rst b/source/index.rst
index b18c1ab..69da15e 100644
--- a/source/index.rst
+++ b/source/index.rst
@@ -1,23 +1,31 @@
-GitExtensions Manual
-====================
+Git Extensions |release| Manual
+===============================
.. toctree::
- :maxdepth: 2
-
- git_extensions
- getting_started
- browse_repository
- commit
- tag
- branches
- patches
- remote_feature
- merge_conflicts
- notes
- submodules
- maintenance
- translations
- integration
- command_line
- z_appendix
+ :maxdepth: 4
+ git_extensions
+ install
+ dashboard
+ browse_repository
+ commit
+ branches
+ tag
+ remote_feature
+ submodules
+ worktrees
+ stash
+ modify_history
+ patches
+ notes
+ file_history
+ maintenance
+ settings
+ plugins
+ github
+ translations
+ windows_explorer
+ other_tools
+ command_line
+ manual_settings
+ z_appendix
diff --git a/source/install.rst b/source/install.rst
new file mode 100644
index 0000000..e36e55b
--- /dev/null
+++ b/source/install.rst
@@ -0,0 +1,62 @@
+.. _installation:
+
+Installation
+============
+
+Windows installer
+-----------------
+
+This section only covers Git Extensions installation, you will need `Git for Windows `_.
+
+The Git Extensions installer can be found on `GitHub `_.
+
+.. image:: /images/install/welcome.png
+
+Start installation.
+
+.. image:: /images/install/scope.png
+
+Installation scope.
+
+.. image:: /images/install/destination.png
+
+Destination folder.
+
+.. image:: /images/install/options.png
+
+Choose the options to install.
+
+.. image:: /images/install/telemetry.png
+
+Allow telemetry to allow the app to collect anonymous data to improve the application.
+
+.. image:: /images/install/ready.png
+
+Portable
+--------
+
+Git Extensions is also distributed as a portable .zip file, that only requires unpacking to a new directory (migrate settings files and theme manually).
+Some features like :ref:`windows-explorer` is not available with this package.
+
+Settings
+--------
+
+Git must be installed prior to starting Git Extensions:
+
+.. image:: /images/install/git_missing.png
+
+First selection is language (depends on the installed languages):
+
+.. image:: /images/install/language.png
+
+All settings will be verified when Git Extensions is started for the first time. If Git Extensions requires
+any settings to be changed, the Settings dialog will be shown. All incorrect settings will be marked in red (for instance if the Git version is unsupported) and orange for not recommended setting (like that Git version is older than recommended).
+You can ask Git Extensions to try to fix the setting for you by clicking on it.
+When installing Git Extensions for the first time,
+you will normally be required to configure your username and email address.
+
+The settings dialog can be invoked at any time by selecting ``Settings`` from the ``Tools`` menu option.
+
+.. image:: /images/settings/settings.png
+
+For further information see :ref:`settings`.
diff --git a/source/integration.rst b/source/integration.rst
deleted file mode 100644
index b08087e..0000000
--- a/source/integration.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-Integration
-===========
-
-During installation you can choose to install the Visual Studio plug-in and shell extensions.
-
-Visual Studio
--------------
-
-There are two options in the context menu on files:
-
-* View the file history by choosing the ‘File history’ option.
-* Reset the file changes to the last committed revision.
-
-.. image:: /images/visual_studio/context_menu.png
-
-A Git Extensions toolbar allows you to perform the most common actions.
-
-+-------------------------------------------------+---------------------------------------------------------------+
-|.. image:: /images/visual_studio/commit.png | Commit (branch) |
-+-------------------------------------------------+---------------------------------------------------------------+
-|.. image:: /images/visual_studio/browse.png | Browse |
-+-------------------------------------------------+---------------------------------------------------------------+
-|.. image:: /images/visual_studio/pull.png | Pull |
-+-------------------------------------------------+---------------------------------------------------------------+
-|.. image:: /images/visual_studio/push.png | Push |
-+-------------------------------------------------+---------------------------------------------------------------+
-|.. image:: /images/visual_studio/stash.png | Stash changes |
-+-------------------------------------------------+---------------------------------------------------------------+
-|.. image:: /images/visual_studio/settings.png | Settings |
-+-------------------------------------------------+---------------------------------------------------------------+
-
-.. image:: /images/visual_studio/toolbar.png
-
-Almost all function can be started from the ``Git`` menu in Visual Studio.
-
-.. image:: /images/visual_studio/git_menu.png
-
-Windows Explorer
-----------------
-
-The common commands can be started from Windows Explorer using the shell extensions. This option is only available
-when Shell Extensions are installed.
-
-.. image:: /images/explorer_integration.png
-
-You can even create or clone a repository in any non git folder.
-
-.. image:: /images/explorer_integration_new.png
-
diff --git a/source/maintenance.rst b/source/maintenance.rst
index 1eaba9d..32c4e65 100644
--- a/source/maintenance.rst
+++ b/source/maintenance.rst
@@ -1,3 +1,5 @@
+.. _maintenance:
+
Maintenance
===========
@@ -6,77 +8,55 @@ In this chapter some of the functions to maintain a repository are discussed.
Compress Git database
---------------------
-Git will create a lot of files. You can run the ``Compress git database`` to pack all small files building up a repository
-into one big file. Git will also garbage collect all unused objects that are older then 15 days. When a database is fragmented
+Git will create a lot of files. You can run the ``Compress git database`` to pack all small files building up a repository
+into one big file. Git will also garbage collect all unused objects that are older then 15 days. When a database is fragmented
into a many small files compressing the database can increase performance.
-.. image:: /images/compress_database.png
+.. image:: /images/maintenance/compress_database.png
Recover lost objects
--------------------
-If you accidently deleted a commit you can try to recover it using the ``Recover lost objects`` function. A dialog will
-show you all dangling objects and will allow you to review and recover them.
-
-.. image:: /images/recover_objects.png
-
-Normally Git will not delete files right away when you remove something from your repository. The reason for this is that you
-can restore deleted items if you need to. Git will delete removed items when they are older then 15 days and you run ``Compress
+Normally Git will not delete files right away when you remove something from your repository. The reason for this is that you
+can restore deleted items if you need to. Git will delete removed items when they are older then 15 days and you run ``Compress
git database``.
-.. image:: /images/verify_database.png
-
-There are several functions to help you find the lost items. By default Git Extensions will only show commits. To show all
-items, just uncheck the ``Show only commits`` option. The other options can be checked/unchecked to get more/less results.
-Double-click on on item to view the content. When you located the item you want to recover you can tag it using the ``Tag
-selected object`` button.
+Commits without branches or tags can be shown with `git reflog `_.
+The easiest way to view the commits is to show :ref:`browse-repository-reflog`.
-Git Extensions also is able to tag all lost objects. Doing this will make all lost objects visible again making it very easy
-to locate the commit(s) you would like to recover. After recovering a commit using the ``Tag all lost commits`` button, you can
-remove all tags using the ``Delete all LOST_AND_FOUND tags`` button.
+.. image:: /images/maintenance/reflog_show.png
-.. image:: /images/lost_found.png
+The reflog commits are listed as gray:
-Fix user names
---------------
-
-When someone accidentally committed using a wrong username this can be fixed using the ``Edit .mailmap`` function. Git will use
-the username for an email address when it is set in the ``.mailmap`` file.
+.. image:: /images/maintenance/reflog_revision.png
-.. image:: /images/mail_map.png
+GE also supports the previous way to show you all dangling objects and will allow you to review and recover them. If you accidentally deleted a commit you can try to recover it using the ``Recover lost objects`` function.
-Fix user name using commit email:
+.. image:: /images/maintenance/recover_objects.png
-.. code-block:: text
+.. image:: /images/maintenance/verify_database.png
- Proper Name
+Git Extensions also is able to tag all lost objects. Doing this will make all lost objects visible again making it very easy
+to locate the commit(s) you would like to recover.
-Fix email address using commit email:
-
-.. code-block:: text
-
-
-
-Fix email address and name using commit email:
-
-.. code-block:: text
-
- Proper Name
+Fix user names
+--------------
-Fix email address and name using commit name and email:
+When someone accidentally committed using a wrong username this can be fixed using the ``Edit .mailmap`` function. Git will use
+the username for an email address when it is set in the ``.mailmap`` file.
-.. code-block:: text
+.. image:: /images/maintenance/mail_map.png
- Proper Name Commit Name
+For more information, see https://git-scm.com/docs/git-check-mailmap.
Ignore files
------------
-Git will track all files that are in the working directory. Normally you do not want to exclude all files that are created
-by the compiler. You can add files that should be ignored to the .gitignore file. You can use wildcards and regular expressions.
+Git will track all files that are in the working directory. Normally you do not want to exclude all files that are created
+by the compiler. You can add files that should be ignored to the .gitignore file. You can use wildcards and regular expressions.
All entries are case sensitive. The button ``Add default ignores`` will add files that should be ignored when using Visual Studio.
-.. image:: /images/gitignore.png
+.. image:: /images/maintenance/gitignore.png
A short overview of the syntax:
@@ -97,4 +77,4 @@ A short overview of the syntax:
| | regular file or a symbolic link foo (this is consistent with the way how pathspec works in general in git). |
+-----+--------------------------------------------------------------------------------------------------------------------------+
-For more `detailed information `_.
+For more `detailed information `_.
diff --git a/source/manual_settings.rst b/source/manual_settings.rst
new file mode 100644
index 0000000..010aa71
--- /dev/null
+++ b/source/manual_settings.rst
@@ -0,0 +1,29 @@
+Manual Settings
+===============
+
+There are settings for niche features, which cannot be set using the GUI.
+
+They can manually be added to the settings file ``%APPDATA%\GitExtensions\GitExtensions\GitExtensions.settings``.
+
+Syntax
+------
+
+::
+
+
+
+ SETTING_KEY
+
+
+ SETTING_VALUE
+
+
+
+Settings
+--------
+
+======================================= ========================= ========================================================================================================= =========
+Setting Key Values Description Reference
+======================================= ========================= ========================================================================================================= =========
+Detailed.MessageEditorWordWrap True, False enables word wrap in commit message editor (side effect: "Ding" sound on inapplicable arrow keys) https://github.com/gitextensions/gitextensions/pull/12267
+======================================= ========================= ========================================================================================================= =========
diff --git a/source/merge_conflicts.rst b/source/merge_conflicts.rst
deleted file mode 100644
index c81b9ba..0000000
--- a/source/merge_conflicts.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-Merge Conflicts
-===============
-
-When merging branches or commits you can get merge conflicts. Git will try to resolve these, but some conflicts
-need to be resolved manually. Git Extensions will show warnings when there is a merge conflict.
-
-.. image:: /images/merge_conflicts.png
-
-Handle merge conflicts
-----------------------
-
-To solve merge conflicts just click on a warning or open the merge conflict dialog from the menu. A dialog will prompt
-showing all conflicts. You can solve a conflict by double-click on a filename.
-
-.. image:: /images/resolve_merge_conflicts.png
-
-There are three kinds of conflicts:
-
-+---------------------------------------+-------------------------------+
-|File deleted and changed | Use modified or deleted file? |
-+---------------------------------------+-------------------------------+
-|File deleted and created | Use created or deleted file? |
-+---------------------------------------+-------------------------------+
-|File changed both locally and remotely | Start merge tool. |
-+---------------------------------------+-------------------------------+
-
-
-If the file is deleted in one commit and changed in another commit, a dialog will ask to keep the modified file or delete
-the file. When there is a conflicting change the merge tool will be started. You can configure the tool you want to use for
-merge conflicts. The image below shows Perforce P4Merge a free to use merge tool. Git Extensions is packaged with KDiff3, an
-open source merge tool.
-
-In the merge tool you will see four versions of the same file:
-
-+--------+----------------------------------------------------------------+
-|Base | The latest version of the file that exist in both repositories |
-+--------+----------------------------------------------------------------+
-|Local | The latest local version of the file |
-+--------+----------------------------------------------------------------+
-|Remote | The latest remote version of the file |
-+--------+----------------------------------------------------------------+
-|Merged | The result of the merge |
-+--------+----------------------------------------------------------------+
-
-.. caution::
-
- When you are in the middle of a merge the file named local represents your file. When you are in the middle of a rebase the
- file named remote represents your file. This can be confusing, so double check if you are in doubt.
-
-.. image:: /images/perforce_p4merge.png
-
diff --git a/source/modify_history.rst b/source/modify_history.rst
new file mode 100644
index 0000000..c02c054
--- /dev/null
+++ b/source/modify_history.rst
@@ -0,0 +1,214 @@
+.. _modify_history:
+
+Modify Git history
+==================
+
+A Git commit cannot be changed, the sha for the commit will be replaced at all changes. However, the contents of a commit can be modified and committed again as a new commit with a new sha and the branch/tag can be moved to the modified (new) commit.
+
+.. todo The revert/cherry-picking should maybe be moved somewhere else
+
+- A commit can be reverted, the changes of a certain commit can be reverted and added as a new commit. Similar, a commit can be applied again (possibly to a new branch), known as cherry picking.
+- The commit can be added again (and all commits that are children to the commit) as new commits and git branches can be made to point to the new commit instead.
+
+There are 2 different cases, and consequently 2 ways to do it with git when we want to modify the history:
+
+- Modify the last commit of the current branch with doing an ``amend``
+- Modify an older commit with doing an ``interactive rebase``
+
+Note: There are 2 things to understand when working with the history with git:
+
+- As git only creates immutable commits (sealed by the sha1), "modifying" a commit is in fact creating a new more or less similar commit.
+- Consequently, the entire history of children following the changed commit will be different.
+
+So, except if the history has not been already pushed, or if you have good reasons, it is a bad practice to change the history
+because you will mess the history of other developers.
+
+Cherry pick commit
+------------------
+
+A commit can be recommitted by using the cherry pick function. This can be very useful when you want to make the same change
+on multiple branches. Select the commit (or range of commits) you want to cheery pick:
+
+.. image:: /images/modify_history/cherry_pick_context_menu.png
+
+The confirm dialog opens:
+
+.. image:: /images/modify_history/cherry_pick.png
+
+Revert commit
+-------------
+
+A commit cannot be deleted once it is published. If you need to undo the changes made in a commit, you need to create a new
+commit that undoes the changes. This is called a revert commit.
+A revert commit is similar to a cherry pick, but the cherry pick tries to apply the same changes as the original commit, a revert will try to reverse the changes.
+
+.. image:: /images/modify_history/revert_commit_context_menu.png
+
+The confirm dialog opens:
+
+.. image:: /images/modify_history/revert_commit_dialog.png
+
+Modify the last commit
+----------------------
+
+The easiest way to modify the last commit is to do an ``amend`` commit.
+To do that, open the commit windows and check the option "Amend commit".
+If the commit message text area was empty, it is now filled with the message of the last commit.
+You could now just update the commit message and commit or also add some more changes in the staging area to
+add them to the commit.
+
+.. image:: /images/modify_history/amend_commit.png
+
+Modify an older commit
+----------------------
+
+It normally makes sense just to change the history for the current branch. To change the parents of the current branch you will have to make a ``rebase``. Git Extensions has functionality that wraps the Git rebase commands and simplifies usage in some situations.
+
+Interactive rebase
+^^^^^^^^^^^^^^^^^^
+
+First, you should create a commit containing the changes you want to add to a previous commit
+(or know an existing commit that contains this changes).
+
+Then use the `rebase` feature in interactive mode on a base commit older than the one that you want to modify.
+See :ref:`branches` for how to start a rebase, start an interactive rebase from the context menu or by selecting the checkbox in the rebase dialog.
+
+.. image:: /images/branches/rebase_dialog.png
+
+You will be prompted by a text editor displaying all the commits that will be rebased
+
+.. image:: /images/modify_history/rebase_interactive.png
+
+You could have a look to `Git documentation `_ to better understand all the possibilities offered.
+
+The options offered are :
+
+- reorder the lines to reorder the commits,
+- remove a line to throw away a commit and the changes introduced by the commit,
+- write `r` or `reword` in front of a commit to rewrite the commit message,
+- write `f` or `fixup` in front of a commit to meld the commit with the previous commit and with keeping the commit message of the first commit,
+- write `s` or `squash` in front of a commit to meld the commit with the previous commit and with rewriting the commit message.
+
+Often, we will use interactive rebase to move the line and squash or fixup commits to modify the history.
+
+Once we did the changes, save and close the editor to let git do the rebase.
+
+Using autosquash rebase feature
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+There is an option to facilitate the use of the ``interactive rebase`` when you know, at the moment of doing a
+commit that the changes introduced by this commit should have been made in an older commit (the case of a `fixup` or `squash`).
+
+In this case, you should create a commit containing the changes you want to add to a previous commit and use the `Advanced` menu to:
+
+- create a `fixup` commit
+- create a `squash` commit
+
+Right click on the commit in the history, you know that you want to "modify".
+
+And choose the suitable option...
+
+.. image:: /images/modify_history/rebase_interactive_fixup_commit.png
+
+If you have not the changes prior to open the dialog, do them now.
+
+GitExtensions will open the commit window with an already filled commit message containing the needed information to find the commit to "modify".
+Do not change the commit message and commit all the changes needed.
+
+Then process to the interactive rebase, like describe in the previous paragraph but with enabling the option `Autosquash`.
+
+.. image:: /images/modify_history/rebase_interactive_autosquash.png
+
+Launch the rebase by clicking on `Rebase`.
+
+The interactive rebase will process the same way but with a major difference!
+When enabling the `Autosquash` option, git will automatically reorder the commits lines and write the good actions in front of the commits
+when it will open the text editor. You normally have just to close the editor (except if you want to do additional changes).
+And let git do the rebase.
+
+Edit/reword commit
+^^^^^^^^^^^^^^^^^^
+
+These options are the same as starting an interactive rebase on the parent to the selected commit and doing an ``edit`` (allow to amend to the commit) or ``reword`` (editing the commit message) and then run an interactive rebase in the background.
+
+Note especially that this functionality will fail if you try to edit/reword a commit that is not a parent to the current checkout.
+
+Rebase onto
+^^^^^^^^^^^
+
+When you would like to rebase a branch, it could happen that you don't want to rebase all the commits of the branch that git will by default determine to rebase.
+
+One possibility is to do an interactive rebase and when git open the editor to let you decide what actions you will do on commits, you keep only the lines corresponding to the commit(s) you want to rebase (See interactive rebase to throw away a commit!)
+
+If that is the last commit(s) of the branch that you want to rebase, you could instead do a `Rebase onto` where you select the range of commits to rebase by defining from which commit (not included!) you will start the rebase.
+
+.. image:: /images/modify_history/rebase_onto.png
+
+To select the base commit from which the range selection will be made, you have to options in Git Extensions:
+
+- You can use the commit selection popup-up:
+
+.. image:: /images/modify_history/rebase_onto_commit_selection.png
+
+- Or you could do it by selecting two commits from the revision grid. The first one selected will fill the `from` field. The second will be the target commit when the branch will be rebased `onto`:
+
+.. image:: /images/modify_history/rebase_onto_commit_selection_from_revision_grid.png
+
+Warning: When doing a rebase onto, the `from` commit defining the range of commit(s) that will be rebased *must* be an ancestor of the current branch checked out that will be rebased.
+
+.. _merge_conflicts:
+
+Merge Conflicts
+---------------
+
+When merging or rebasing branches or commits you can get conflicts. Git will try to resolve these, but some conflicts
+need to be resolved manually. Git Extensions will show warnings when there is a merge conflict in the status bar in the bottom right corner.
+
+.. image:: /images/modify_history/merge_conflicts.png
+
+Handle merge conflicts
+^^^^^^^^^^^^^^^^^^^^^^
+
+To solve merge conflicts just click on a warning or open the ``Solve merge conflicts...`` dialog from the Commands menu. A dialog will prompt
+showing all conflicts.
+
+.. image:: /images/modify_history/resolve_merge_conflicts.png
+
+The context menu shows the actions to resolve the conflicts. Double-click on a filename will start the mergetool.
+
+.. image:: /images/modify_history/resolve_merge_conflicts_menu.png
+
+
+There are three kinds of conflicts:
+
++---------------------------------------+-------------------------------+
+|File deleted and changed | Use modified or deleted file? |
++---------------------------------------+-------------------------------+
+|File deleted and created | Use created or deleted file? |
++---------------------------------------+-------------------------------+
+|File changed both locally and remotely | Start merge tool. |
++---------------------------------------+-------------------------------+
+
+
+If the file is deleted in one commit and changed in another commit, a dialog will ask to keep the modified file or delete
+the file. When there is a conflicting change the merge tool will be started. You can configure the tool you want to use for
+merge conflicts. The image below shows Perforce P4Merge, a merge tool free to use for small teams.
+
+In the merge tool you will see four versions of the same file:
+
++--------+----------------------------------------------------------------+
+|Base | The latest version of the file that exist in both repositories |
++--------+----------------------------------------------------------------+
+|Local | The latest local version of the file |
++--------+----------------------------------------------------------------+
+|Remote | The latest remote version of the file |
++--------+----------------------------------------------------------------+
+|Merged | The result of the merge |
++--------+----------------------------------------------------------------+
+
+.. caution::
+
+ When you are in the middle of a merge the file named local represents your file. When you are in the middle of a rebase the
+ file named remote represents your file. This can be confusing, so double check if you are in doubt.
+
+.. image:: /images/modify_history/perforce_p4merge.png
diff --git a/source/nature2/static/ajax-loader.gif b/source/nature2/static/ajax-loader.gif
deleted file mode 100644
index 61faf8c..0000000
Binary files a/source/nature2/static/ajax-loader.gif and /dev/null differ
diff --git a/source/nature2/static/basic.css b/source/nature2/static/basic.css
deleted file mode 100644
index 43e8baf..0000000
--- a/source/nature2/static/basic.css
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
- * basic.css
- * ~~~~~~~~~
- *
- * Sphinx stylesheet -- basic theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
- clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
- width: 100%;
- font-size: 90%;
-}
-
-div.related h3 {
- display: none;
-}
-
-div.related ul {
- margin: 0;
- padding: 0 0 0 10px;
- list-style: none;
-}
-
-div.related li {
- display: inline;
-}
-
-div.related li.right {
- float: right;
- margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
- padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
- float: left;
- width: 230px;
- margin-left: -100%;
- font-size: 90%;
-}
-
-div.sphinxsidebar ul {
- list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
- margin-left: 20px;
- list-style: square;
-}
-
-div.sphinxsidebar ul ul {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
- margin-top: 10px;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-div.sphinxsidebar #searchbox input[type="text"] {
- width: 170px;
-}
-
-div.sphinxsidebar #searchbox input[type="submit"] {
- width: 30px;
-}
-
-img {
- border: 0;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
- margin: 10px 0 0 20px;
- padding: 0;
-}
-
-ul.search li {
- padding: 5px 0 5px 20px;
- background-image: url(file.png);
- background-repeat: no-repeat;
- background-position: 0 7px;
-}
-
-ul.search li a {
- font-weight: bold;
-}
-
-ul.search li div.context {
- color: #888;
- margin: 2px 0 0 30px;
- text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
- font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
- width: 90%;
-}
-
-table.contentstable p.biglink {
- line-height: 150%;
-}
-
-a.biglink {
- font-size: 1.3em;
-}
-
-span.linkdescr {
- font-style: italic;
- padding-top: 5px;
- font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable {
- width: 100%;
-}
-
-table.indextable td {
- text-align: left;
- vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
- height: 10px;
-}
-
-table.indextable tr.cap {
- margin-top: 10px;
- background-color: #f2f2f2;
-}
-
-img.toggler {
- margin-right: 3px;
- margin-top: 3px;
- cursor: pointer;
-}
-
-div.modindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-div.genindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-a.headerlink {
- visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
- visibility: visible;
-}
-
-div.body p.caption {
- text-align: inherit;
-}
-
-div.body td {
- text-align: left;
-}
-
-.field-list ul {
- padding-left: 1em;
-}
-
-.first {
- margin-top: 0 !important;
-}
-
-p.rubric {
- margin-top: 30px;
- font-weight: bold;
-}
-
-img.align-left, .figure.align-left, object.align-left {
- clear: left;
- float: left;
- margin-right: 1em;
-}
-
-img.align-right, .figure.align-right, object.align-right {
- clear: right;
- float: right;
- margin-left: 1em;
-}
-
-img.align-center, .figure.align-center, object.align-center {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-.align-left {
- text-align: left;
-}
-
-.align-center {
- text-align: center;
-}
-
-.align-right {
- text-align: right;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
- margin: 0 0 0.5em 1em;
- border: 1px solid #ddb;
- padding: 7px 7px 0 7px;
- background-color: #ffe;
- width: 40%;
- float: right;
-}
-
-p.sidebar-title {
- font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
- border: 1px solid #ccc;
- padding: 7px 7px 0 7px;
- margin: 10px 0 10px 0;
-}
-
-p.topic-title {
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
- margin-top: 10px;
- margin-bottom: 10px;
- padding: 7px;
-}
-
-div.admonition dt {
- font-weight: bold;
-}
-
-div.admonition dl {
- margin-bottom: 0;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-div.body p.centered {
- text-align: center;
- margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
- border: 0;
- border-collapse: collapse;
-}
-
-table.docutils td, table.docutils th {
- padding: 1px 8px 1px 5px;
- border-top: 0;
- border-left: 0;
- border-right: 0;
- border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
- border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
- border: 0 !important;
-}
-
-th {
- text-align: left;
- padding-right: 5px;
-}
-
-table.citation {
- border-left: solid 1px gray;
- margin-left: 1px;
-}
-
-table.citation td {
- border-bottom: none;
-}
-
-/* -- other body styles ----------------------------------------------------- */
-
-ol.arabic {
- list-style: decimal;
-}
-
-ol.loweralpha {
- list-style: lower-alpha;
-}
-
-ol.upperalpha {
- list-style: upper-alpha;
-}
-
-ol.lowerroman {
- list-style: lower-roman;
-}
-
-ol.upperroman {
- list-style: upper-roman;
-}
-
-dl {
- margin-bottom: 15px;
-}
-
-dd p {
- margin-top: 0px;
-}
-
-dd ul, dd table {
- margin-bottom: 10px;
-}
-
-dd {
- margin-top: 3px;
- margin-bottom: 10px;
- margin-left: 30px;
-}
-
-dt:target, .highlighted {
- background-color: #fbe54e;
-}
-
-dl.glossary dt {
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.field-list ul {
- margin: 0;
- padding-left: 1em;
-}
-
-.field-list p {
- margin: 0;
-}
-
-.refcount {
- color: #060;
-}
-
-.optional {
- font-size: 1.3em;
-}
-
-.versionmodified {
- font-style: italic;
-}
-
-.system-message {
- background-color: #fda;
- padding: 5px;
- border: 3px solid red;
-}
-
-.footnote:target {
- background-color: #ffa;
-}
-
-.line-block {
- display: block;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-.line-block .line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 1.5em;
-}
-
-.guilabel, .menuselection {
- font-family: sans-serif;
-}
-
-.accelerator {
- text-decoration: underline;
-}
-
-.classifier {
- font-style: oblique;
-}
-
-abbr, acronym {
- border-bottom: dotted 1px;
- cursor: help;
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
- overflow: auto;
- overflow-y: hidden; /* fixes display issues on Chrome browsers */
-}
-
-td.linenos pre {
- padding: 5px 0px;
- border: 0;
- background-color: transparent;
- color: #aaa;
-}
-
-table.highlighttable {
- margin-left: 0.5em;
-}
-
-table.highlighttable td {
- padding: 0 0.5em 0 0.5em;
-}
-
-tt.descname {
- background-color: transparent;
- font-weight: bold;
- font-size: 1.2em;
-}
-
-tt.descclassname {
- background-color: transparent;
-}
-
-tt.xref, a tt {
- background-color: transparent;
- font-weight: bold;
-}
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
- background-color: transparent;
-}
-
-.viewcode-link {
- float: right;
-}
-
-.viewcode-back {
- float: right;
- font-family: sans-serif;
-}
-
-div.viewcode-block:target {
- margin: -1px -10px;
- padding: 0 10px;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
- vertical-align: middle;
-}
-
-div.body div.math p {
- text-align: center;
-}
-
-span.eqno {
- float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
-@media print {
- div.document,
- div.documentwrapper,
- div.bodywrapper {
- margin: 0 !important;
- width: 100%;
- }
-
- div.sphinxsidebar,
- div.related,
- div.footer,
- #top-link {
- display: none;
- }
-}
\ No newline at end of file
diff --git a/source/nature2/static/comment-bright.png b/source/nature2/static/comment-bright.png
deleted file mode 100644
index 551517b..0000000
Binary files a/source/nature2/static/comment-bright.png and /dev/null differ
diff --git a/source/nature2/static/comment-close.png b/source/nature2/static/comment-close.png
deleted file mode 100644
index 09b54be..0000000
Binary files a/source/nature2/static/comment-close.png and /dev/null differ
diff --git a/source/nature2/static/comment.png b/source/nature2/static/comment.png
deleted file mode 100644
index 92feb52..0000000
Binary files a/source/nature2/static/comment.png and /dev/null differ
diff --git a/source/nature2/static/custom.css b/source/nature2/static/custom.css
deleted file mode 100644
index 393ec8c..0000000
--- a/source/nature2/static/custom.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******Custom Part********/
-div.caution {
- padding-top: 2px;
- padding-bottom: 2px;
- border: 1px solid #DA0404;
- background-color: #F9ADAD;
-}
-div.caution p.admonition-title {
- color: #A40101;
-}
-div.note {
- padding-top: 2px;
- padding-bottom: 2px;
- border: 1px solid #127D00;
- background-color: #DEFFD9;
-}
-div.note p.admonition-title {
- color: #058C1A;
-}
\ No newline at end of file
diff --git a/source/nature2/static/default.css b/source/nature2/static/default.css
deleted file mode 100644
index 21f3f50..0000000
--- a/source/nature2/static/default.css
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * default.css_t
- * ~~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- default theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: sans-serif;
- font-size: 100%;
- background-color: #11303d;
- color: #000;
- margin: 0;
- padding: 0;
-}
-
-div.document {
- background-color: #1c4e63;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 230px;
-}
-
-div.body {
- background-color: #ffffff;
- color: #000000;
- padding: 0 20px 30px 20px;
-}
-
-div.footer {
- color: #ffffff;
- width: 100%;
- padding: 9px 0 9px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #ffffff;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #133f52;
- line-height: 30px;
- color: #ffffff;
-}
-
-div.related a {
- color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.4em;
- font-weight: normal;
- margin: 0;
- padding: 0;
-}
-
-div.sphinxsidebar h3 a {
- color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.3em;
- font-weight: normal;
- margin: 5px 0 0 0;
- padding: 0;
-}
-
-div.sphinxsidebar p {
- color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
- margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
- margin: 10px;
- padding: 0;
- color: #ffffff;
-}
-
-div.sphinxsidebar a {
- color: #98dbcc;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-
-
-/* -- hyperlink styles ------------------------------------------------------ */
-
-a {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:visited {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-
-
-/* -- body styles ----------------------------------------------------------- */
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: 'Trebuchet MS', sans-serif;
- background-color: #f2f2f2;
- font-weight: normal;
- color: #20435c;
- border-bottom: 1px solid #ccc;
- margin: 20px -20px 10px -20px;
- padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li {
- text-align: justify;
- line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.admonition p {
- margin-bottom: 5px;
-}
-
-div.admonition pre {
- margin-bottom: 5px;
-}
-
-div.admonition ul, div.admonition ol {
- margin-bottom: 5px;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-div.warning {
- background-color: #ffe4e4;
- border: 1px solid #f66;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 5px;
- background-color: #eeffcc;
- color: #333333;
- line-height: 120%;
- border: 1px solid #ac9;
- border-left: none;
- border-right: none;
-}
-
-tt {
- background-color: #ecf0f3;
- padding: 0 1px 0 1px;
- font-size: 0.95em;
-}
-
-th {
- background-color: #ede;
-}
-
-.warning tt {
- background: #efc2c2;
-}
-
-.note tt {
- background: #d6d6d6;
-}
-
-.viewcode-back {
- font-family: sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
\ No newline at end of file
diff --git a/source/nature2/static/doctools.js b/source/nature2/static/doctools.js
deleted file mode 100644
index d4619fd..0000000
--- a/source/nature2/static/doctools.js
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * doctools.js
- * ~~~~~~~~~~~
- *
- * Sphinx JavaScript utilities for all documentation.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/**
- * select a different prefix for underscore
- */
-$u = _.noConflict();
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
-if (!window.console || !console.firebug) {
- var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
- "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
- "profile", "profileEnd"];
- window.console = {};
- for (var i = 0; i < names.length; ++i)
- window.console[names[i]] = function() {};
-}
- */
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
- return decodeURIComponent(x).replace(/\+/g, ' ');
-}
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
- if (typeof s == 'undefined')
- s = document.location.search;
- var parts = s.substr(s.indexOf('?') + 1).split('&');
- var result = {};
- for (var i = 0; i < parts.length; i++) {
- var tmp = parts[i].split('=', 2);
- var key = jQuery.urldecode(tmp[0]);
- var value = jQuery.urldecode(tmp[1]);
- if (key in result)
- result[key].push(value);
- else
- result[key] = [value];
- }
- return result;
-};
-
-/**
- * small function to check if an array contains
- * a given item.
- */
-jQuery.contains = function(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] == item)
- return true;
- }
- return false;
-};
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
- function highlight(node) {
- if (node.nodeType == 3) {
- var val = node.nodeValue;
- var pos = val.toLowerCase().indexOf(text);
- if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
- var span = document.createElement("span");
- span.className = className;
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
- node.parentNode.insertBefore(span, node.parentNode.insertBefore(
- document.createTextNode(val.substr(pos + text.length)),
- node.nextSibling));
- node.nodeValue = val.substr(0, pos);
- }
- }
- else if (!jQuery(node).is("button, select, textarea")) {
- jQuery.each(node.childNodes, function() {
- highlight(this);
- });
- }
- }
- return this.each(function() {
- highlight(this);
- });
-};
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
- init : function() {
- this.fixFirefoxAnchorBug();
- this.highlightSearchWords();
- this.initIndexTable();
- },
-
- /**
- * i18n support
- */
- TRANSLATIONS : {},
- PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
- LOCALE : 'unknown',
-
- // gettext and ngettext don't access this so that the functions
- // can safely bound to a different name (_ = Documentation.gettext)
- gettext : function(string) {
- var translated = Documentation.TRANSLATIONS[string];
- if (typeof translated == 'undefined')
- return string;
- return (typeof translated == 'string') ? translated : translated[0];
- },
-
- ngettext : function(singular, plural, n) {
- var translated = Documentation.TRANSLATIONS[singular];
- if (typeof translated == 'undefined')
- return (n == 1) ? singular : plural;
- return translated[Documentation.PLURALEXPR(n)];
- },
-
- addTranslations : function(catalog) {
- for (var key in catalog.messages)
- this.TRANSLATIONS[key] = catalog.messages[key];
- this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
- this.LOCALE = catalog.locale;
- },
-
- /**
- * add context elements like header anchor links
- */
- addContextElements : function() {
- $('div[id] > :header:first').each(function() {
- $('\u00B6').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this headline')).
- appendTo(this);
- });
- $('dt[id]').each(function() {
- $('\u00B6').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this definition')).
- appendTo(this);
- });
- },
-
- /**
- * workaround a firefox stupidity
- */
- fixFirefoxAnchorBug : function() {
- if (document.location.hash && $.browser.mozilla)
- window.setTimeout(function() {
- document.location.href += '';
- }, 10);
- },
-
- /**
- * highlight the search words provided in the url in the text
- */
- highlightSearchWords : function() {
- var params = $.getQueryParameters();
- var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
- if (terms.length) {
- var body = $('div.body');
- window.setTimeout(function() {
- $.each(terms, function() {
- body.highlightText(this.toLowerCase(), 'highlighted');
- });
- }, 10);
- $('