|
1 | 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2 |
| - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
3 |
| - |
4 |
| - |
| 2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
5 | 3 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
6 |
| -<head> |
7 |
| - <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
8 |
| - <title>Hg-Git Mercurial Plugin</title> |
9 |
| - <script type="text/javascript" src="js/jquery-1.2.6.pack.js"></script> |
10 |
| - <script type="text/javascript" src="js/thickbox-compressed.js"></script> |
11 |
| - <script type="text/javascript" src="http://github.com/javascripts/jquery.corner.js"></script> |
12 |
| - |
13 |
| - <link rel="stylesheet" href="css/screen.css" type="text/css" media="screen, projection"> |
14 |
| - <link rel="stylesheet" href="css/print.css" type="text/css" media="print"> |
15 |
| - <!--[if IE]> |
16 |
| - <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen, projection"> |
17 |
| - <![endif]--> |
| 4 | + <head> |
| 5 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| 6 | + <title>Hg-Git Mercurial Plugin</title> |
| 7 | + <script type="text/javascript" src="js/jquery-1.2.6.pack.js"></script> |
| 8 | + <script type="text/javascript" src="js/thickbox-compressed.js"></script> |
| 9 | + <script type="text/javascript" src="http://github.com/javascripts/jquery.corner.js"></script> |
| 10 | + |
| 11 | + <link rel="stylesheet" href="css/screen.css" type="text/css" media="screen, projection"> |
| 12 | + <link rel="stylesheet" href="css/print.css" type="text/css" media="print"> |
| 13 | + <!--[if IE]> |
| 14 | + <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen, projection"> |
| 15 | + <![endif]--> |
18 | 16 |
|
19 | 17 | <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8"/>
|
20 |
| - <link rel="stylesheet" href="css/thickbox.css" type="text/css" media="screen"/> |
21 |
| -</head> |
22 |
| - |
23 |
| -<body> |
24 |
| - <div class="container"> |
25 |
| - |
26 |
| - <div class="span-21" id="header"> |
27 |
| - <div class="span-10"> |
28 |
| - <a href="http://github.com"><img height="50" src="images/logov3.png"></a> |
29 |
| - </div> |
30 |
| - |
31 |
| - <div class="span-11 last"> |
32 |
| - <div id="links"> |
33 |
| - get the source in |
34 |
| - <a href="http://github.com/schacon/hg-git">git</a> or |
35 |
| - <a href="http://bitbucket.org/durin42/hg-git">hg</a>, then |
36 |
| - <a href="http://github.com/schacon/hg-git/issues">send feedback</a> |
37 |
| - </div> |
38 |
| - </div> |
39 |
| - </div> |
40 |
| - |
41 |
| - <div class="span-21" id="welcome"> |
42 |
| - <h1 class="tbar"><small>the</small> Hg-Git <small>mercurial plugin</small></h1> |
43 |
| - <p>This is the Hg-Git plugin for Mercurial, adding the ability to <strong>push to and pull from a Git server</strong> repository from Mercurial. This means you can collaborate on Git based projects from Mercurial, or use a Git server as a collaboration point for a team with developers using both Git and Mercurial.</p> |
44 |
| - <p><strong>Warning, this software is still beta.</strong> It is basically feature complete and pretty stable now, but there are still some edge cases we don't handle well yet and it may be slow in some circumstances. The user interface is also still subject to change. However, there are now a lot of people using it effectively, so please do use it and let me know if you run into anything.</p> |
45 |
| - </div> |
| 18 | + <link rel="stylesheet" href="css/thickbox.css" type="text/css" media="screen"/> |
| 19 | + </head> |
| 20 | + |
| 21 | + <body> |
| 22 | + <div class="container"> |
| 23 | + <h1 class="tbar"><small>the</small> Hg-Git <small>mercurial plugin</small></h1> |
| 24 | + <p> |
| 25 | + This is the Hg-Git plugin for Mercurial, adding the ability |
| 26 | + to <strong>push to and pull from a Git server</strong> |
| 27 | + repository from Mercurial. This means you can collaborate on Git |
| 28 | + based projects from Mercurial, or use a Git server as a |
| 29 | + collaboration point for a team with developers using both Git |
| 30 | + and Mercurial. |
| 31 | + </p> |
46 | 32 |
|
47 |
| - <div class="span-21"> |
48 | 33 | <div class='section'>
|
49 | 34 | <div class="title">The Big Idea</div>
|
50 | 35 | <img style="float:right; padding:10px;" height="120" src="images/server.png">
|
51 |
| - <p>The Hg-Git plugin can <strong>convert commits/changesets losslessly</strong> from one system to another, so you can push via a Mercurial repository and another Mercurial client can pull it and their changeset node ids will be identical - Mercurial data does not get lost in translation. </p> |
52 |
| - <p>It is intended that Hg users may wish to use this to collaborate even if no Git users are involved in the project, as it may provide some advantages if you're using Bookmarks (it will transfer bookmarks on push, which Mercurial doesn't do).</p> |
53 |
| - </div> |
| 36 | + <p> |
| 37 | + The Hg-Git plugin can <strong>convert commits/changesets |
| 38 | + losslessly</strong> from one system to another, so you can |
| 39 | + push via a Mercurial repository and another Mercurial |
| 40 | + client can pull it. In theory, the changeset IDs should |
| 41 | + not change, although this may not hold true for complex |
| 42 | + histories. |
| 43 | + </p> |
| 44 | + </div> |
54 | 45 |
|
55 |
| - <div class='section'> |
56 |
| - <div class="title">Commands</div> |
| 46 | + <div class='section'> |
| 47 | + <div class="title">Commands</div> |
57 | 48 |
|
58 |
| - <p>You can clone a Git repository from Mercurial by running <code>hg clone [url]</code>. It will create a directory with the same name as the last path component. For example, if you were to run <code>hg clone git://github.com/schacon/munger.git</code> it would clone the repository down into the directory 'munger.git', then convert it to a Mercurial repository for you.</p> |
| 49 | + <p> |
| 50 | + You can clone a Git repository from Mercurial by |
| 51 | + running <code>hg clone [url]</code>. It will create a |
| 52 | + directory with the same name as the last path component. For |
| 53 | + example, if you were to run <code>hg clone |
| 54 | + git://github.com/schacon/munger.git</code> it would clone |
| 55 | + the repository down into the directory 'munger.git', then |
| 56 | + convert it to a Mercurial repository for you. |
| 57 | + </p> |
59 | 58 |
|
60 | 59 | <pre>hg clone git://github.com/schacon/munger.git</pre>
|
61 | 60 |
|
62 |
| - <p>If you are starting from an existing Mercurial repository, you have to setup a Git repository somewhere that you have push access to, and then run <code>hg push [path]</code> from within your project. For example:</p> |
| 61 | + <p> |
| 62 | + If you are starting from an existing Mercurial repository, |
| 63 | + you have to setup a Git repository somewhere that you have |
| 64 | + push access to, and then run <code>hg push [path]</code> |
| 65 | + from within your project. For example: |
| 66 | + </p> |
63 | 67 |
|
64 |
| - <pre>$ cd hg-git # (a Mercurial repository) |
| 68 | + <pre>$ cd hg-git # (a Mercurial repository) |
65 | 69 | $ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
|
66 | 70 | $ hg push git+ssh://git@github.com/schacon/hg-git.git
|
67 | 71 | $ hg push</pre>
|
68 | 72 |
|
69 |
| - <p>This will convert all our Mercurial data into Git objects and push them up to the Git server. You can also put that path in the <code>[paths]</code> section of .hg/hgrc and then push to it by name. </p> |
| 73 | + <p> |
| 74 | + This will convert all our Mercurial data into Git objects |
| 75 | + and push them up to the Git server. You can also put that |
| 76 | + path in the <code>[paths]</code> section of .hg/hgrc and |
| 77 | + then push to it by name. |
| 78 | + </p> |
70 | 79 |
|
71 |
| - <p>Now that you have a Mercurial repository that can push/pull to/from a Git repository, you can fetch updates with <code>hg pull</code>.</p> |
| 80 | + <p> |
| 81 | + Now that you have a Mercurial repository that can push/pull |
| 82 | + to/from a Git repository, you can get updates |
| 83 | + with <code>hg pull</code>. |
| 84 | + </p> |
72 | 85 |
|
73 | 86 | <pre>$ hg pull</pre>
|
74 | 87 |
|
75 |
| - <p>That will pull down any commits that have been pushed to the server in the meantime and give you a new head that you can merge in.</p> |
| 88 | + <p> |
| 89 | + That will pull down any commits that have been pushed to the |
| 90 | + server in the meantime and give you a new head that you can |
| 91 | + merge in. |
| 92 | + </p> |
76 | 93 | </div>
|
77 | 94 |
|
78 | 95 | <div class='section'>
|
79 | 96 | <div class="title">Installing</div>
|
80 |
| - <h3>The easy way</h3> |
81 |
| - <p>Run <code>easy_install hg-git</code>, then add make sure the following is in your <code>~/.hgrc</code>:</p> |
| 97 | + <h3>The easy way (presently broken for hg 1.8 and later):</h3> |
| 98 | + <p> |
| 99 | + Run <code>easy_install hg-git</code>, then add make sure the |
| 100 | + following is in your <code>~/.hgrc</code>: |
| 101 | + </p> |
82 | 102 | <pre>[extensions]
|
83 | 103 | hgext.bookmarks =
|
84 | 104 | hggit = </pre>
|
85 | 105 | <p>...and that's it!</p>
|
86 | 106 |
|
87 | 107 | <h3>The more involved way</h3>
|
88 |
| - <p>First, install version 0.8.0 or newer of <a href="http://pypi.python.org/pypi/dulwich">dulwich</a>. You can do <code>easy_install 'dulwich>=0.8.0'</code> if you have setuptools installed. Clone this repository somewhere, or <a href="http://github.com/schacon/hg-git/zipball/master">download a snapshot</a>, then make the 'extensions' section in your '<code>~/.hgrc</code>' file look something like this:</p> |
| 108 | + <p> |
| 109 | + First, install version 0.8.0 or newer |
| 110 | + of <a href="http://pypi.python.org/pypi/dulwich">dulwich</a>. You |
| 111 | + can do <code>easy_install 'dulwich>=0.8.0'</code> if you |
| 112 | + have setuptools |
| 113 | + installed. Clone <a href="http://bitbucket.org/durin42/hg-git">this |
| 114 | + repository</a> somewhere, then make the 'extensions' section in your |
| 115 | + '<code>~/.hgrc</code>' file look something like this: |
| 116 | + </p> |
89 | 117 |
|
90 | 118 | <pre>[extensions]
|
91 | 119 | hgext.bookmarks =
|
92 | 120 | hggit = [path-to]/hg-git/hggit</pre>
|
93 | 121 |
|
94 |
| - <p>That will enable the Hg-Git extension for you. The bookmarks section is not compulsory, but it makes some things a bit nicer. Bookmarks will be translated to git heads when pushing.</p> |
| 122 | + <p> |
| 123 | + That will enable the Hg-Git extension for you. The bookmarks |
| 124 | + section is only required prior to hg 1.7. Bookmarks will be |
| 125 | + translated to git heads when pushing. |
| 126 | + </p> |
95 | 127 | </div>
|
96 | 128 |
|
97 | 129 | <div class='section'>
|
98 | 130 | <div class="title">Dependencies</div>
|
99 |
| - <p>This plugin is implemented entirely in Python - there are <strong>no Git binary dependencies</strong>, you do not need to have Git installed on your system. There are in fact no external dependencies currently other than Mercurial and Dulwich. The plugin is known to work on Mercurial 1.3. Versions 1.1 and 1.2 of Mercurial should be supported, but that support hasn't been well-tested in a while.</p> |
100 |
| - <p>Note that Dulwich has C extensions, so it requires a C compiler when installing via easy_install. On Windows, one option is the free<a href="http://www.microsoft.com/express/Downloads/#2008-Visual-CPP">Microsoft Visual C++</a>. Be sure to install the 2008 version for compatibility reasons. On debian-style linux, run: <code>apt-get install python-dev.</code></p> |
| 131 | + <p> |
| 132 | + This plugin is implemented entirely in Python - there |
| 133 | + are <strong>no Git binary dependencies</strong>, you do not |
| 134 | + need to have Git installed on your system. There are in fact |
| 135 | + no external dependencies currently other than Mercurial and |
| 136 | + Dulwich. The plugin is known to work on Mercurial 1.7, and |
| 137 | + is basically functional (with a couple of bugs) against hg |
| 138 | + 1.8 and 1.9. |
| 139 | + </p> |
| 140 | + <p> |
| 141 | + Note that Dulwich has C extensions, so it requires a C |
| 142 | + compiler when installing via easy_install. On Windows, one |
| 143 | + option is the |
| 144 | + free <a href="http://www.microsoft.com/express/Downloads/#2008-Visual-CPP">Microsoft |
| 145 | + Visual C++</a>. Be sure to install the 2008 version for |
| 146 | + compatibility reasons. On debian-style linux, |
| 147 | + run: <code>apt-get install python-dev.</code> |
| 148 | + </p> |
101 | 149 | </div>
|
102 | 150 |
|
103 |
| - |
104 |
| - </div> |
| 151 | + <div class='section'> |
| 152 | + <div class="title">Sources</div> |
| 153 | + <p> |
| 154 | + Source available via |
| 155 | + <a href="http://bitbucket.org/durin42/hg-git">hg</a> |
| 156 | + (canonical repo) or |
| 157 | + <a href="http://github.com/schacon/hg-git">git</a> (mirror |
| 158 | + of hg). Patches preferred via email to |
| 159 | + the <a href="http://groups.google.com/group/hg-git">hg-git |
| 160 | + mailing list</a>. |
| 161 | + </p> |
| 162 | + </div> |
105 | 163 |
|
106 | 164 | <div class="span-21">
|
107 | 165 | <div id="bottom">
|
108 |
| - This plugin was developed by the folks at <a href="http://github.com">GitHub</a> |
| 166 | + This plugin was originally developed by the folks |
| 167 | + at <a href="http://github.com">GitHub</a>, and is currently |
| 168 | + maintained by Augie Fackler. |
109 | 169 | </div>
|
110 | 170 | </div>
|
111 | 171 |
|
112 | 172 | <div id="footer" class="span-21">
|
113 | 173 | <div class="info span-12">
|
114 | 174 | <div class="links">
|
115 |
| - <a href="http://github.com/blog">Blog</a> | |
116 |
| - <a href="http://support.github.com/">Support</a> | |
117 |
| - <a href="http://github.com/training">Git Training</a> | |
118 |
| - <a href="http://github.com/contact">Contact</a> | |
119 |
| - <a href="http://groups.google.com/group/github/">Google Group</a> |
120 |
| - </div> |
121 |
| - <div class="company"> |
122 |
| - GitHub is <a href="http://logicalawesome.com/">Logical Awesome</a> ©2009 | <a href="http://github.com/site/terms">Terms of Service</a> | <a href="http://github.com/site/privacy">Privacy Policy</a> |
| 175 | + <a href="http://groups.google.com/group/hg-git/">Google Group</a> |
123 | 176 | </div>
|
124 | 177 | </div>
|
125 | 178 | <div class="fork span-7">
|
|
0 commit comments