200mbのファイルがあります。現時点では、rsyncを使用して、開発者が変更されたときにrsyncを転送します。水銀のリポジトリの一部としてインクルードすると、mercurialはrsyncのようなdiffを転送するだけですか、変更されたときにフルファイルを転送しますか?水銀はフルファイルを転送するの?それとも差分のみを転送するのですか?
答えて
Mercurialは、hg pull
のときにのみデルタを転送します。それ以外の場合はのバージョン管理がまったく機能しません。
hg pull
とすると、ローカルクローンにすべてのチェンジセットがありません。各チェンジセットにはデルタのみが含まれています。デルタは小さいか大きいかもしれませんが、rsync
で見つかったデルタに満足すれば、Mercurialにも満足しているはずです。
バイナリファイルについて:Mercurialはではありません。はコミット時に "text"と "binary"ファイルを区別します。それらはすべて同じように扱われ、すべての場合にデルタ圧縮が使用されます。これを混乱させる原因は、編集ごとにファイルが大幅に変更された場合、デルタ圧縮は役に立たないということです。デルタはファイル自体と同じ大きさになります。その場合、Mercurialは実際にはファイルの圧縮スナップショットを保存します。
+1 'hg incoming'もチェンジセット(またはこの場合はデルタ)を完全にダウンロードすることにも注意してください。 –
私が知る限り、Mercurialはバイナリのデルタを格納したり転送したりしません。だから私はこの答えがこの場合には正しいとは思わない。 –
@LaurensHolst: "バイナリ"ファイルの場合でも、デルタを作成します。私はこれを明確にするために答えを更新しました。 –
大きなファイルを処理するためにいくつかのMercurial拡張が作成されています。これらは、ファイル自体をバージョン管理するのではなく、チェックサムをバージョン管理することによって動作します。
Mercurial 2.0以降を使用している場合は、デフォルトでLargeFilesExtensionが含まれています。ドキュメントは、拡張子がどのように動作するかを説明します。
ラージファイルの拡張子は クローンについて、過剰な帯域幅を必要とせずにMercurialのでは大規模な、非圧縮性 バイナリファイルを追跡することが可能と引っ張ります。 largefilesとして追加されたファイルは、Mercurialによって直接 で追跡されません。それらのリビジョンはチェックサムで識別され、 とMercurialはこれらのチェックサムを追跡します。この方法で、 リポジトリをクローンしたりチェンジセットを取得したりすると、古いバージョンの大きなファイル( )は必要なくなり、 を現在のバージョンに更新するのに必要なものだけがダウンロードされます。これにより、ディスク容量と、 の帯域幅が節約されます。
その他の拡張機能もあります。ここにはさらに詳しい情報があります:Handling Large Files
これは大きなバイナリファイル用です。大規模なテキストファイルの場合は、diffを参照するのが有効な場合があります。 –
+1:largefilesの拡張はここで面白いです。必要のない大きなファイルのバージョンはダウンロードしないでください。したがって、リビジョン10からリビジョン50にプルアップして更新する場合は、リビジョン50の大きなファイルのみをダウンロードします。一方、Adamが指摘するように、デルタ圧縮は実行されませんので、*完全バージョンのそのファイルはリビジョン50で見えます。これは、10から50までのすべてのデルタをダウンロードするよりも少なくても終了する可能性があります。 –
拡張機能の便利な拡張機能は、rsyncのような方法を使ってアップデート大きなファイルの –
- 1. アプリで転送を転送
- 2. WCFサービスオブジェクトの転送が遅い。それは普通ですか?
- 3. FTP経由でHTTP転送ファイルを転送しますか?
- 4. テストからのコモンズロギングメッセージを転送する
- 5. WordPressドメインを転送する
- 6. KeyPressイベントを転送する
- 7. ファイルを転送するシェルスクリプト
- 8. SSH転送とは何ですか?
- 9. パケットフィルタリングと転送
- 10. ローカルとリポジトリの間の水銀差分を表示するにはどうすればよいですか?
- 11. 他のページに転送した後でもタイマーをカウントする
- 12. 転送のDataRow
- 13. Delphi TidTCPServerとTidTCPClientレコードを転送する
- 14. 別のPCにPythonを転送する
- 15. セッションの転送を防止する
- 16. lftpを使って分割ファイルを転送するには?
- 17. libusb割り込み転送
- 18. Androidデバイスからライブビデオを転送する
- 19. ファイルをHDFSから転送する
- 20. シリアルポートにデータを転送するには?
- 21. サムスン銀河ノート5でUSBマスストレージをオンにすると、ファイルを転送することができます
- 22. 既存のテーブルにフルファイルとの差分のみを入れよう
- 23. サーブレットとJSPの間でデータを転送する方法は?
- 24. データの検索と転送
- 25. NetworkStream経由でアーカイブを転送する
- 26. Objective-C:iOSでメッセージを転送する
- 27. javaでhttpパッケージを転送する
- 28. アカウント間でec2インスタンスを転送する
- 29. sqliteデータベース間でデータを転送する
- 30. AWS RDS間でデータを転送する
ファイルテキストまたはバイナリですか? –
大きなバイナリファイル – HyderA