2012-01-20 7 views
1

Mercurial(Kiln)から大きな(4 GB)レポをクローン作成中にzlibエラーが発生しました。クローンの途中でエラーが発生した後に更新するのは安全ですか?

次はどうすればよいですか?最初から削除して試してみるか、それともちょうどhg pull -uできますか?

クローン作成の途中で何らかのエラーが発生しても、ローカルリポジトリは一貫性のある状態になりますか? リポジトリのクローンは成功しましたが、一部のサブリポジトリのクローンに失敗しました。これは何か変わるでしょうか?

+0

通常、クローンが中断された後は引き出すことができないので、問題は解決しません。 – Ringding

答えて

2

大きなリポジトリのクローン作成中にエラーが発生した場合、Mercurialは自動的にトランザクションを中止します。トランザクションがロールバックされると、Mercurialはすべてをクリーンアップします。 hg cloneの場合、これは残念ながら既にダウンロードされているチェンジセットがなくなったことを意味します。だから、安全に再クローンすることができます。

しかし、質問をする方法から、中止後に何かが残っているように聞こえます。だから私は中途半端に中止されたhg pullを開始したと思いますか?プルにも同じことが適用されます:アボートがトランザクションをロールバックし、安全にhg pullを再起動できます。

中断されたプルは次のようになります。

$ hg pull http://localhost:8000 
pulling from http://localhost:8000/ 
searching for changes 
adding changesets 
transaction abort!                
rollback completed                
abort: stream ended unexpectedly (got 12 bytes, expected 503)     

私は私のマシン上でhg serveを開始し、そのサーバーからのプルを開始しました。私は引っ張りの途中でhg serveを殺した。クライアントはトランザクションを中止してロールバックしました。

+0

ありがとうございます。 ****質問の明確化のための更新:**リポジトリのクローンは成功しましたが、一部のサブリポジトリのクローンが失敗しました。これは何か変わるでしょうか? –

+0

本当に。サブポポは完全にクローンされるか、トランザクションがロールバックされます。外側のrepoに 'hg update'をやり直すことができます。 –

関連する問題