Mercurial > hg > hg-git
comparison DESIGN.txt @ 2:c43c02cc803a
added dulwich library and got the script to call it for clone
author | Scott Chacon <schacon@gmail.com> |
---|---|
date | Wed, 22 Apr 2009 16:59:04 -0700 |
parents | |
children | d6c443a91b18 |
comparison
equal
deleted
inserted
replaced
1:0e55a2ecac87 | 2:c43c02cc803a |
---|---|
1 GitHug, the Hg-Git Plugin | |
2 ========================= | |
3 | |
4 This plugin is designed to allow you to push to a Git server over the Git | |
5 protocol and to pull from a Git based project. All data is stored in Hg | |
6 native format with a mapping table. People collaborating in Git should not | |
7 even be able to tell that you're using Hg to collaborate on their project. | |
8 Nothing should be kept in the Git format except perhaps for caching. | |
9 | |
10 (Dulwich library) | |
11 | |
12 May need to use bookmarks extension to do everything better. | |
13 | |
14 * Cloning from a Git Repository * | |
15 | |
16 hg init, hg add remote, hg gfetch, hg checkout | |
17 | |
18 * Fetching from a Git Repository * | |
19 | |
20 hg gremote add (git-url) | |
21 | |
22 hg gfetch origin (like a hg pull) | |
23 - connects to server (upload-pack) | |
24 - gets a list of server shas | |
25 - sees what it does not have (maps all unmapped shas, checks list) | |
26 - requests needed shas | |
27 - fetches packfile | |
28 - explodes | |
29 - converts parent linages to hg changesets | |
30 - updates local parents | |
31 | |
32 * Pushing to a Git Repository * | |
33 | |
34 hg gpush origin | |
35 - maps all unmapped shas | |
36 - connects to server | |
37 - needs/haves | |
38 - creates packfile of git versions of everything the server needs | |
39 - transfers it, updates local references (bookmarks?) | |
40 | |
41 |