2011-01-09 7 views
1

非常に新しいMercurialです。私はhg initが動作していないことに気付きました。Mercurial strange hg init issue

このコマンドを実行すると、hgクローンhttps://www.mercurial-scm.org/repo/hello my-helloが作成され、すべての(2)ファイルがmy_helloフォルダに作成されます。 my_helloから.hgフォルダを削除します。 hg initでこのフォルダを初期化します。初期化されます。

これを初期化した後、hgクローンmy_hello new_my_helloを使用してフォルダをクローンすると、new_my_helloフォルダに.hgフォルダが作成され、それ以外のファイルは作成されません。

この問題が発生しています。助けてください。

私はWindows 7 64ビットを使用しています。私のMercurialも64ビットです。

+2

なぜクローンに付属の.hgフォルダを削除していますか?これによりリポジトリの履歴と新しいリポジトリが失われています( 'hg init'が9.eからクローン化したリポジトリと互換性がないため、変更を元に戻すことはできません) – Matt

+0

実際のポイントではありません。 hg initが動作するかどうかをテストするフォルダを削除しています。 hg initが動作していないことがわかりました。私がinitに行くと、hg tipを実行した後のデータがあります:changeset:-1:000000000000。 タグ:tip ユーザー: date:Thu Jan 01 00:00:00 1970 +0000 – tarique

+0

十分に適切です。その場合、私はあなたが欠けているもののために私の答えを参照してください、それは必要があるように動作していると言うでしょう。 – Matt

答えて

4

短い答えです。

.hgメタデータディレクトリを最初に削除し、新しいメタデータディレクトリを再初期化すると、ファイルは追跡されません。 initではデフォルトでファイルが追加されません。だからあなたがそれをクローンすると、空のリポジトリのクローンが得られます。同様に:

$ hg clone https://www.mercurial-scm.org/repo/hello my-hello 
requesting all changes 
adding changesets 
adding manifests 
adding file changes 
added 2 changesets with 2 changes to 2 files 
updating to branch default 
2 files updated, 0 files merged, 0 files removed, 0 files unresolved 
$ cd my-hello 
$ ls 
Makefile hello.c 
$ hg st --all 
C Makefile 
C hello.c 

以上は、修正されたファイルのない完全に正常なレポのコピーです。

$ rm -rf .hg 
$ hg st --all 
abort: There is no Mercurial repository here (.hg not found)! 

これ以上レポはありません。

$ hg init 
$ hg st --all 
? Makefile 
? hello.c 

ここで1つですが、もはやファイルを追跡しないため、「?」と表示されます。

$ hg clone . ../new-my-hello 
updating to branch default 
0 files updated, 0 files merged, 0 files removed, 0 files unresolved 
$ cd ../new-my-hello 
$ hg st --all 
$ ls 

「私-こんにちは」から2「?-files」は複製されませんので、クローンは、追跡されていないファイルが含まれていません。

3

すでに完了しているhg initを実行してリポジトリを作成します。ただし、まだファイルの追跡を開始していません。これを行うには、どのファイルを追跡するかを明示的にhgに伝えなければなりません。hg add file1 file2 ...。または、hg addremoveを呼び出してすべてのファイルを追加できます。その後、これらのファイルをhg commit経由でレポに追加する必要があります。

あなたは、元のレポでこれを行うならば、あなたのnew_my_helloに、あなたはhg pullを呼び出すことによってmy_helloからこれらの変更を引き出し、そしてそれらのファイルの最新バージョンを入手するためには、hg updateに従うことができるようになります。

これまで言われていることは、あなたの既存の.hgフォルダを削除してもうまくいかないということです。人跡未踏のファイルがクローンに含まれていません。

、あなたがなっていたと思ったものを得るれなかった理由を説明するのより良い仕事をしていませんHGワークフローを学習するための非常に有用なリソースがhttp://hginit.com

関連する問題