Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

checkout Solaris and reduce it to all ZFS relevant commits

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 fast-export @ 1464dab
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 README.md
Octocat-spinner-32 clone-repo
Octocat-spinner-32 convert-file-map
Octocat-spinner-32 telescope.sh
README.md

TelescopeSolarisZFS

This project extracts the relevant parts of OpenSolaris useful for porting ZFS.

HOWTO

Prerequisites

You should have git, mercurial and the mercurial convert extension before proceeding. If you use mac ports read the Mac Ports Caveats section

First-time Initialization

First, make sure you've got the hg fast-export submodules:

git submodule init
git submodule update

in ~/.hgrc add:

[extensions]
hgext.convert=

Cloning OpenSolaris

Get a local clone of OpenSolaris using the clone-repo command. clone-repo optionally takes a location of the source in case you already have a local copy you wish to use.

The duration of this step will vary based on your bandwidth. Budget for however long it takes you to pull down about 350MB of data.

Converting the Repo

Converting the repository is a two step process. First, we build a new mercurial repository from the important parts of the old one, and then convert that repository to a git repo.

The reason we do this in two steps is because mercurial has a repo rewriting tool to pull out the parts we want, which also makes the git conversion faster.

However, it's just one step for you, the end user:

./telescope.sh

This should leave you with a repository called zfs-converted-git that has all of the stuff you need and nothing you don't.

This step takes about an hour on my macbook pro.

Mac Ports Caveat

If you installed Mercurial with Mac Ports you will have to change the following:

in fast-export/hg-fast-export.py the first line to:

#!/usr/bin/env /opt/local/bin/python
Something went wrong with that request. Please try again.