Mostly copied from my personal github wiki. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- Documentation/git-remote-bzr.txt | 74 ++++++++++++++++++++++++ Documentation/git-remote-hg.txt | 121 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) create mode 100644 Documentation/git-remote-bzr.txt create mode 100644 Documentation/git-remote-hg.txt diff --git a/Documentation/git-remote-bzr.txt b/Documentation/git-remote-bzr.txt new file mode 100644 index 0000000..b211e7f --- /dev/null +++ b/Documentation/git-remote-bzr.txt @@ -0,0 +1,74 @@ +git-remote-bzr(1) +================ + +NAME +---- +git-remote-bzr - bidirectional bridge between Git and Bazaar + + +SYNOPSIS +-------- +[verse] +'git clone' bzr::<bzr repository> + + +DESCRIPTION +----------- + +This tool allows you to transparently clone, fetch and push to and from Bazaar +repositories as if they were Git ones. + +To use it you simply need to use the "'bzr::'" prefix when specifying a remote URL +(e.g. when cloning). + + +EXAMPLE +------- +-------------------------------------- +git clone bzr::lp:ubuntu/hello +-------------------------------------- + + +NOTES +----- + +Remember to run `git gc --aggressive` after cloning a repository, specially if +it's a big one. Otherwise lots of space will be wasted. + +The oldest version of Bazaar supported is 2.0. Older versions are not tested. + +Branches vs. repositories +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Bazaar's UI can clone only branches, but a repository can contain multiple +branches, and 'git-remote-bzr' can clone both. + +For example, to clone a branch: + +------------------------------------- +git clone bzr::bzr://bzr.savannah.gnu.org/emacs/trunk emacs-trunk +------------------------------------- + +And to clone the whole repository: + +------------------------------------- +git clone bzr::bzr://bzr.savannah.gnu.org/emacs emacs +------------------------------------- + +The second command would clone all the branches contained in the emacs +repository, however, it's possible to specify only certain branches: + +------------------------------------- +git config remote-bzr.branches 'trunk, xwindow' +------------------------------------- + +Some remotes don't support listing the branches contained in the repository, in +which cases you need to manually specify the branches, and while you can +specify the configuration in the clone command, you might find this easier: + +------------------------------------- +git init emacs +git remote add origin bzr::bzr://bzr.savannah.gnu.org/emacs +git config remote-bzr.branches 'trunk, xwindow' +git fetch +------------------------------------- diff --git a/Documentation/git-remote-hg.txt b/Documentation/git-remote-hg.txt new file mode 100644 index 0000000..0cceb76 --- /dev/null +++ b/Documentation/git-remote-hg.txt @@ -0,0 +1,121 @@ +git-remote-hg(1) +================ + +NAME +---- +git-remote-hg - bidirectional bridge between Git and Mercurial + + +SYNOPSIS +-------- +[verse] +'git clone' hg::<hg repository> + + +DESCRIPTION +----------- + +This tool allows you to transparently clone, fetch and push to and from Mercurial +repositories as if they were Git ones. + +To use it you simply need to use the "'hg::'" prefix when specifying a remote URL +(e.g. when cloning). + + +EXAMPLE +------- +------------ +$ git clone hg::http://selenic.com/repo/hello +------------ + + +CONFIGURATION +------------- + +If you want to see Mercurial revisions as Git commit notes: + +-------------------------------------- +% git config core.notesRef refs/notes/hg +-------------------------------------- + +If you are not interested in Mercurial permanent and global branches (aka. commit labels): + +-------------------------------------- +% git config --global remote-hg.track-branches false +-------------------------------------- + +With this configuration, the 'branches/foo' refs won't appear. + +If you want the equivalent of `hg clone --insecure`: + +-------------------------------------- +% git config --global remote-hg.insecure true +-------------------------------------- + +If you want 'git-remote-hg' to be compatible with 'hg-git', and generate exactly the same commits: + +-------------------------------------- +% git config --global remote-hg.hg-git-compat true +-------------------------------------- + +NOTES +----- + +Remember to run `git gc --aggressive` after cloning a repository, specially if +it's a big one. Otherwise lots of space will be wasted. + +The oldest version of Mercurial supported is 1.9. For the most part 1.8 works, +but you might experience some issues. + +Pushing branches +~~~~~~~~~~~~~~~~ + +To push a Mercurial named branch, you need to use the "branches/" prefix: + +-------------------------------------- +% git checkout branches/next +# do stuff +% git push origin branches/next +-------------------------------------- + +All the pushed commits will receive the "next" Mercurial named branch. + +*Note*: Make sure you don't have +remote-hg.track-branches+ disabled. + +Cloning HTTPS +~~~~~~~~~~~~~ + +The simplest way is to specify the user and password in the URL: + +-------------------------------------- +git clone hg::https://user:password@xxxxxxxxxxxxx/user/repo +-------------------------------------- + +You can also use the http://mercurial.selenic.com/wiki/SchemesExtension[schemes extension]: + +-------------------------------------- +[auth] +bb.prefix = https://bitbucket.org/user/ +bb.username = user +bb.password = password +-------------------------------------- + +Finally, you can also use the +https://pypi.python.org/pypi/mercurial_keyring[keyring extension]. + +CAVEATS +------- + +The only major incompatibility is that Git octopus merges (a merge with more +than two parents) are not supported. + +Mercurial branches and bookmarks have some limitations of Git branches: you +can't have both 'dev/feature' and 'dev' (as Git uses files and directories to +store them). + +Multiple anonymous heads (which are useless anyway) are not supported; you +would only see the latest head. + +Closed branches are not supported; they are not shown and you can't close or +reopen. Additionally in certain rare situations a synchronization issue can +occur (https://github.com/felipec/git/issues/65[Bug #65]). -- 1.9.2+fc1.25.g15bd061 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html