]> git.phdru.name Git - git-wiki.git/blobdiff - pep-103.txt
Add section "SSH connection sharing"
[git-wiki.git] / pep-103.txt
index eae4ff757681af75e11d5837e3b5753737edf71b..993ad2dc9e5476b3bcb650c268dd34fcb7bd0969 100644 (file)
@@ -82,18 +82,18 @@ Unix users: `download and install using your package manager
 <https://git-scm.com/download/linux>`_.
 
 Microsoft Windows: download `git-for-windows
-<https://github.com/git-for-windows/git/releases>`_ or `msysGit
-<https://github.com/msysgit/msysgit/releases>`_.
+<https://github.com/git-for-windows/git/releases>`_.
 
 MacOS X: use git installed with `XCode
-<https://developer.apple.com/xcode/downloads/>`_ or download from
-`MacPorts <https://www.macports.org/ports.php?by=name&substr=git>`_ or
+<https://developer.apple.com/xcode/>`_ or download from `MacPorts
+<https://www.macports.org/ports.php?by=name&substr=git>`_ or
 `git-osx-installer
 <http://sourceforge.net/projects/git-osx-installer/files/>`_ or
 install git with `Homebrew <http://brew.sh/>`_: ``brew install git``.
 
-`git-cola <https://git-cola.github.io/index.html>`_ is a Git GUI
-written in Python and GPL licensed. Linux, Windows, MacOS X.
+`git-cola <https://git-cola.github.io/index.html>`_ (`repository
+<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
 to Git based on TortoiseSVN; open source.
@@ -440,7 +440,7 @@ Read `how to recover from upstream rebase
 <https://git-scm.com/docs/git-rebase#_recovering_from_upstream_rebase>`_.
 It is in ``git help rebase``.
 
-On the other hand don't be too afraid about commit editing. You can
+On the other hand, don't be too afraid about commit editing. You can
 safely edit, reorder, remove, combine and split commits that haven't
 been pushed yet. You can even push commits to your own (backup) repo,
 edit them later and force-push edited commits to replace what have
@@ -933,6 +933,38 @@ Read the detailed instructions in the file.
 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
 =============
 
@@ -969,12 +1001,12 @@ and communication. Among these environments are `Kallithea
 <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,
+<http://gitprep.yukikimoto.com/>`_ is yet another GitHub clone,
 written in Perl. `Gogs <https://gogs.io/>`_ is written in Go.
-`GitBucket <https://takezoe.github.io/gitbucket/about/>`_ is written
-in Scala.
+`GitBucket <https://gitbucket.github.io/gitbucket-news/about/>`_ is
+written in Scala.
 
-And last but not least, `Gitlab <https://about.gitlab.com/>`_. It's
+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).
@@ -1008,7 +1040,7 @@ To work with the repository just use regular git commands including
 
 To start converting your Mercurial habits to git see the page
 `Mercurial for Git users
-<https://mercurial.selenic.com/wiki/GitConcepts>`_ at Mercurial wiki.
+<https://www.mercurial-scm.org/wiki/GitConcepts>`_ at Mercurial wiki.
 At the second half of the page there is a table that lists
 corresponding Mercurial and git commands. Should work perfectly in
 both directions.
@@ -1018,6 +1050,17 @@ developers <https://docs.python.org/devguide/gitdevs.html>`_ that
 documents a few differences between git and hg.
 
 
+Git and GitHub
+==============
+
+`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.
+
+
 Copyright
 =========