Skip to content

cosmin/git-hg

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
 
 
 
 
 
 
 
 

git-hg

Description: A set of scripts for checking out and tracking a mercurial project from git. Push supported added as well although it is still experimental.

Author: Cosmin Stejerean (offbytwo)

License: MIT

Dependencies

Mercurial (hg) and python must be installed and in your $PATH.

On Windows, you will also need a copy of Mercurial for Python, available at the Mercurial downloads page

If this is a fresh checkout run

$ git submodule update --init

to pull in fast-export. If for some reason you cannot do this get a copy of fast-export from http://repo.or.cz/w/fast-export.git and place it in the root of the checkout.

Installation

Either add /path/to/this/checkout/bin to your $PATH, or symbolic link /path/to/this/checkout/bin/git-hg into a directory on your $PATH.

Alternatively you can execute

    $ make
    $ sudo make install

to install the script and all required fast-export files in /usr/local (you can change the destination by passing eg PREFIX=/usr to both make invocations)

Usage

  • Clone an hg repo, including ones over HTTP:

      $ git-hg clone http://some/random/hg/repo [local-git-repo-name]
    
  • Fetch updates from the hg repo:

      $ git-hg fetch
    

    or optionally:

      $ git-hg pull # same as git-hg-fetch && git merge hg/branch_name
    
  • Checkout a new branch from hg:

      $ git-hg checkout branch_name
    
  • Push changes back to hg, optionally to a specific destination:

      $ git-hg push [destination]
    

Structure

.git/hgcheckout - contains a bare mercurial checkout of the specified repo

.git/hgremote - contains a bare git repo clones from the mercurial one, this is added as a remote called "hg" in the base repo

About

A git-hg utility for checking out and tracking a mercurial repo.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published