問題タブ [shallow-clone]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mercurial - Mercurial Shallow Clone 拡張機能のステータスは?
浅いクローン拡張の話
Mercurial の非公式の Shallow Clone 拡張機能に関する作業についての話がありました。この拡張機能はgit clone --depth X
拡張機能と同様に機能しますが、より優れたプッシュ サポートとマージの安全性を提供します。
基本的に、ユーザーは履歴の小さなサブセットを複製して時間とスペースを節約できますが、hg の他のすべての利点を引き続き利用できます。結局のところ、すべての開発者が履歴全体を変更セット 0 に戻して生産性を高める必要があるわけではありません。
ディスカッションへのリンク
Shallow Clone 拡張機能については、hg のサイトで説明されています。彼らはまた、ステータス ページと実装計画を掲載しました。さらに、彼らは、2010 年の夏に Google Summer of Code (gsoc) のインターンを獲得して拡張機能に取り組んだと繰り返し述べています。
それでも、この機能に関する最新のステータスを見つけることができないようです。それに関連している可能性のある 2 つの bitbucket プロジェクトを見つけましたが、どちらも最近のコミットを確認していません: hg-shallow-cloneとhg-shallow。
浅いクローンはまだ開発中ですか?
この拡張機能のステータスを知っている人はいますか? それはまだ誰かによってどこかで作業されていますか、それとも本当に放棄されていますか? そのGSoCの仕事から何が生まれましたか?
c# - EntityObject のサブクラスの浅いコピー/クローンを作成する
データベースに監査テーブルがあり、更新時に古い値と新しい値が XML にシリアル化され、同じ行に格納されます。オブジェクトは現在、次のようにディープ クローンされています。
これは機能しますが、ディープ クローンから引き出された関連レコードが原因で膨大な量のデータが生成され、DB から数十万回の読み取りが行われdcSer.WriteObject(memoryStream, obj)
、最終的な MemoryStream サイズは約 200MB になり、書き込まれるデータの量は言うまでもありません。 DBに戻ります。理想的ではありません。
したがって、代わりにメンバーごとのクローンを作成したいと思います。メンバーごとのクローンはオブジェクト参照を除外し、関連するすべての Entity Framework モデルをコピーしないようにすることを理解しています。
だから私はこれをしました:
EntityObject
しかし、着信の実際のタイプはテーブル自体に関連するサブクラスであるため、無効なキャスト例外が発生します。
また、拡張メソッドを使用して にアクセスしようとしましたMemberwiseClone()
が、拡張メソッドは保護されたメソッドにアクセスできません。
では、ジェネリック EntityObject の浅いコピーを作成するにはどうすればよいでしょうか?
c# - リフレクションを介して呼び出されたString.MemberwiseClone()メソッドが機能しないのはなぜですか?
まず、これが保護されたメソッドであり、呼び出す必要がないことを知っていますが、MemberwiseCloneがObjectクラスで定義され、Stringがそれを継承しているため、機能しないはずです。
したがって、これはクローン作成方法です(重要なことに焦点を当てるために、null参照処理を削除しました)。
そして、私がそれをこのように呼ぶならば:
結果の文字列(str)は次のようになります。
前もって感謝します!
git - 浅いクローンの後にgithubにプッシュする
コミット数が非常に多いため、大量のgitレポジトリがあったので、ここでのアドバイスに従って、浅いクローンを作成しました。この新しいローカルリポジトリに変更を加えました。今度は、Githubのオリジンにプッシュします(次に、Herokuのステージングおよびプロダクションリモートにプッシュします)。おそらくいつか私はドキュメントを読むことを学ぶでしょう:
gitclone--depthコマンドオプションは言う
--depth指定されたリビジョン数に切り捨てられた履歴を持つシャロークローンを作成します。浅いリポジトリにはいくつかの制限があります(リポジトリからクローンを作成したり、リポジトリからフェッチしたり、リポジトリからプッシュしたり、リポジトリにプッシュしたりすることはできません)
では、どうすればこの状況から抜け出し、コードをGithubにプッシュできますか?
git - ブランチとともに git 浅いクローン
いくつかのバイナリを含む git リポジトリを処理する必要があります。
誰かが私にこれを説明できれば、本当に感謝しています
つまり、-bを渡すと--depthの動作が変わっているように見えるのはなぜですか?
java - Cloneable を実装していないインスタンスの浅いクローンを作成するにはどうすればよいですか?
私のフレームワークは、あらゆるクラスのドメイン オブジェクトを処理します。foo
そのようなドメインオブジェクトインスタンスを実装したかのように(実装Cloneable
していない)浅いクローンを作成できる必要がありObject.clone()
、浅いクローンを返すそれを呼び出しました。
動作しないもの:
- foo のクラスに実装
Cloneable
を強制し、そのために public メソッドを実装しますclone()
。 - リフレクションを介して foo.clone() を呼び出します (保護されたメソッドに到達するため
Object.clone()
)。のクラスが実装されていないCloneNotSupportedException
ため、スローされます。foo
Cloneable
- foo のシリアル化と逆シリアル化: ディープ コピーではなく、浅いコピーが必要です。
制限:
foo
のクラスはコンパイル時にわかりません。foo
ゲッター/セッターとして公開されていないフィールドがある可能性があります。
注: 同様の質問がいくつかありますが、浅いクローンの取得に焦点を当てているものはありません。
git - 浅いクローンから効率的に git fetch する方法
gitを使用してオペレーティング システムを配布し、最新の状態に保ちます。大きすぎる (>2GB) ため、完全なリポジトリを配布することはできません。そのため、浅いクローン (~300M) を使用しています。ただし、最近、浅いクローンからフェッチする場合、2GB を超えるリポジトリ全体を非効率的にフェッチするようになりました。これは、展開の許容できない帯域幅の浪費です。
git のドキュメントには、浅いリポジトリからフェッチすることはできないと書かれていますが、厳密にはそうではありません。git clone --depth 1
変更されたものだけをフェッチできるようにするための回避策はありますか? または、配布サイズをできるだけ小さく保ちながら、git が更新を行うために必要なすべてのビットを保持するための他の戦略はありますか?
からのクローン作成を試みて--depth 20
、より効率的にアップグレードされるかどうかを確認しましたが、うまくいきませんでした。http://git-scm.com/docs/git-bundleも調べましたが、巨大なバンドルが作成されているようです。
mercurial - 履歴全体ではなく、リポジトリの最新の変更セットだけを複製できますか?
数百万行のコードと数十万の変更セットを含む hg リポジトリを使用する必要があります。ご想像のとおり、これにより mercurial と TortoiseHg が大幅に遅くなります。
最新の数千の変更セットのみを含むローカル リポジトリを作成することはできますか?
これにより、物事がスムーズに進むようになるだけでなく、ハード ドライブの容量を節約できる可能性もあります。
git - 特定のブランチでレポを浅く複製するにはどうすればよいですか?
クローンに 1 つの履歴アイテムのみが含まれ、特定のブランチで開始されるように、git リポジトリの浅いクローンを作成するにはどうすればよいですか?
浅いクローンを作成する方法を知っています:
ただし、特定のブランチでクローンを開始しないでください。