]> git.phdru.name Git - git-wiki.git/blobdiff - pep-git.txt
git-remote-hg can be copied to a dir in PATH
[git-wiki.git] / pep-git.txt
index 1163dfc87b3412fb837efcfeda481d55132dca76..f9cae0363c598689c42138de724a43bd2431f002 100644 (file)
@@ -14,7 +14,7 @@ Abstract
 
 This Informational PEP collects information about git. There is, of
 course, a lot of documentation for git, so the PEP concentrates on
-more complex issues, scenarios and topics.
+more complex 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
@@ -118,7 +118,7 @@ local repo has two branches ``v1`` and ``master``. For most examples
 the currently checked out branch is ``master``. That is, it's assumed
 you have done something like that::
 
-    $ git clone http://git.python.org/python.git
+    $ git clone https://git.python.org/python.git
     $ cd python
     $ git branch v1 origin/v1
 
@@ -132,7 +132,7 @@ remotes/origin/v1 as its upstream remote-tracking branch.
 
 The same result can be achieved with commands::
 
-    $ git clone -b v1 http://git.python.org/python.git
+    $ git clone -b v1 https://git.python.org/python.git
     $ cd python
     $ git checkout --track origin/master
 
@@ -181,9 +181,9 @@ fast-forwards, merges or rebases local branches.
 
 When you do an initial clone like this::
 
-    $ git clone -b v1 http://git.python.org/python.git
+    $ git clone -b v1 https://git.python.org/python.git
 
-git clones remote repository ``http://git.python.org/python.git`` to
+git clones remote repository ``https://git.python.org/python.git`` to
 directory ``python``, creates a remote named ``origin``, creates
 remote-tracking branches, creates a local branch ``v1``, configure it
 to track upstream remotes/origin/v1 branch and checks out ``v1`` into
@@ -841,28 +841,48 @@ Perl and C). In addition to web interface both provide read-only dumb
 http access for git (http(s):// URLs).
 
 There are also more advanced web-based development environments that
-include ability to create and manage users and groups, private, group
-and public repositories, and usually include issue trackers, wiki
-pages, pull requests and other developers tools. Among these
-environments are `Kallithea <https://kallithea-scm.org/>`_ and `pagure
-<https://pagure.io/>`_, both are written in Python; `Gogs
-<http://gogs.io/>`_ is written in Go; when its development seemed to
-be stagnated there was a fork `Gitea <http://gitea.io/>`_, still
-active.
+include ability to manage users, groups and projects; private, group
+and public repositories; and often include issue trackers, wiki pages,
+pull requests and other tools for development 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. `Gogs <http://gogs.io/>`_ is written in Go; there is a fork
+`Gitea <http://gitea.io/>`_.
 
-And last but not least `Gitlab <https://about.gitlab.com/>`_. It's the
-most advanced web-based development environment. Written in Ruby,
-community edition is free and open source (MIT license).
+And last but not least `Gitlab <https://about.gitlab.com/>`_. It's
+perhaps the most advanced git web-based development environment.
+Written in Ruby, community edition is free and open source (MIT
+license).
 
 
 From Mercurial to git
 =====================
 
-Mercurial for Git users https://mercurial.selenic.com/wiki/GitConcepts
+There are many tools to convert Mercurial repositories to git. The
+most famous are, perhaps, `hg-git <https://hg-git.github.io/>`_ and
+`fast-export <http://repo.or.cz/w/fast-export.git>`_ (many years ago
+it was known under the name ``hg2git``).
+
+But a better tool, perhaps the best, is `git-remote-hg
+<https://github.com/felipec/git-remote-hg>`_. It provides transparent
+bidirectional access (pull and push) to Mercurial repositories from
+git. The author wrote a `comparison of alternatives
+<https://github.com/felipec/git/wiki/Comparison-of-git-remote-hg-alternatives>`_
+that seems to be mostly unbiased.
+
+To use git-remote-hg, install or clone it, add to your PATH (or copy
+script ``git-remote-hg`` to a directory that's already in PATH) and
+prepend ``hg::`` to Mercurial URLs. For example::
 
-https://github.com/felipec/git-remote-hg
+    $ git clone https://github.com/felipec/git-remote-hg.git
+    $ PATH=$PATH:"`pwd`"/git-remote-hg
+    $ git clone hg::https://hg.python.org/peps/ PEPs
 
-https://hg-git.github.io/
+To work with the repository just use normal ``git fetch/pull/push``
+commands.
+
+Mercurial for Git users https://mercurial.selenic.com/wiki/GitConcepts
 
 
 References