-PEP: 103
-Title: Collecting information about git
-Version: $Revision$
-Last-Modified: $Date$
-Author: Oleg Broytman <phd@phdru.name>
-Status: Draft
-Type: Informational
-Content-Type: text/x-rst
-Created: 01-Jun-2015
-Post-History: 12-Sep-2015
+#format rst
Abstract
========
-This Informational PEP collects information about git. There is, of
+This page (it was PEP 103) collects information about git. There is, of
course, a lot of documentation for git, so the PEP concentrates on
more complex (and more related to Python development) issues,
scenarios and examples.
-The plan is to extend the PEP in the future collecting information
-about equivalence of Mercurial and git scenarios to help migrating
-Python development from Mercurial to git.
-
-The author of the PEP doesn't currently plan to write a Process PEP on
-migration Python development from Mercurial to git.
-
Documentation
=============
install git with `Homebrew <http://brew.sh/>`_: ``brew install git``.
`git-cola <https://git-cola.github.io/index.html>`_ (`repository
-<https://github.com/git-cola/git-cola>`_) is a Git GUI written in
+<https://github.com/git-cola/git-cola>`__) is a Git GUI written in
Python and GPL licensed. Linux, Windows, MacOS X.
`TortoiseGit <https://tortoisegit.org/>`_ is a Windows Shell Interface
Search the Net for "git prompt" to find other prompt variants.
+SSH connection sharing
+----------------------
+
+SSH connection sharing is a feature of OpenSSH and perhaps derivatives
+like PuTTY. SSH connection sharing is a way to decrease ssh client
+startup time by establishing one connection and reusing it for all
+subsequent clients connecting to the same server. SSH connection
+sharing can be used to speedup a lot of short ssh sessions like scp,
+sftp, rsync and of course git over ssh. If you regularly
+fetch/pull/push from/to remote repositories accessible over ssh then
+using ssh connection sharing is recommended.
+
+To turn on ssh connection sharing add something like this to your
+~/.ssh/config::
+
+ Host *
+ ControlMaster auto
+ ControlPath ~/.ssh/mux-%r@%h:%p
+ ControlPersist 600
+
+See `OpenSSH wikibook
+<https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing>`_ and
+`search <https://www.google.com/search?q=ssh+connection+sharing>`_ for
+more information.
+
+SSH connection sharing can be used at GitHub, GitLab and SourceForge
+repositories, but please be advised that BitBucket doesn't allow it
+and forcibly closes master connection after a short inactivity period
+so you will see errors like this from ssh: "Connection to bitbucket.org
+closed by remote host."
+
+
git on server
=============
<https://kallithea-scm.org/>`_ and `pagure <https://pagure.io/>`_,
both are written in Python; pagure was written by Fedora developers
and is being used to develop some Fedora projects. `GitPrep
-<http://gitprep.yukikimoto.com/>`_ is yet another Github clone,
-written in Perl. `Gogs <https://gogs.io/>`_ is written in Go.
-`GitBucket <https://gitbucket.github.io/gitbucket-news/about/>`_ is
-written in Scala.
-
-And last but not least, `Gitlab <https://about.gitlab.com/>`_. It's
+<http://gitprep.yukikimoto.com/>`_ is yet another GitHub clone,
+written in Perl. `Gogs <https://gogs.io/>`_ is written in Go. `GitBucket
+<https://gitbucket.github.io/gitbucket-news/about/>`_ is written in
+Scala. `RocketGit <https://rocketgit.com/>`_ is AGPL-licensed
+development environment written in PHP (there are plans to rewrite
+critical parts in C).
+
+And last but not least, `GitLab <https://about.gitlab.com/>`_. It's
perhaps the most advanced web-based development environment for git.
Written in Ruby, community edition is free and open source (MIT
license).
documents a few differences between git and hg.
-Copyright
-=========
-
-This document has been placed in the public domain.
-
+Git and GitHub
+==============
-\f
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- coding: utf-8
- End:
- vim: set fenc=us-ascii tw=70 :
+`gitsome <https://github.com/donnemartin/gitsome>`_ - Git/GitHub
+command line interface (CLI). Written in Python, work on MacOS, Unix,
+Windows. Git/GitHub CLI with autocomplete, includes many GitHub
+integrated commands that work with all shells, builtin xonsh with
+Python REPL to run Python commands alongside shell commands, command
+history, customizable highlighting, thoroughly documented.