問題タブ [shelve]
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 を引き込む前に自動棚上げ (TortoiseHG を使用) ?
コミットしたくない変更済みファイルがいくつかあります (例: web.config)。新しい変更セットを取得して更新する前に、それらを棚上げする必要があります。プル & アップデートの後、棚上げを解除する必要があります。
現在TortoiseHGを使用しています。これを自動的に行うことができる拡張機能はありますか?
version-control - Perforce Shelving を使用して、ある人が変更を作成し、別の人がそれを送信するにはどうすればよいですか?
UserAが Perforce で変更リストを作成し、それを棚上げできるようにしたいと考えています。次に、 UserBがそのチェンジリストの保留を解除してサブミットできるようにしたいと考えています。
これは簡単に聞こえますが、Perforce のシェルフ解除は期待どおりには機能しないようです。UserB が 'p4 unshelve -s 1234' を実行すると、変更 1234 から変更されたすべてのファイルが取り消されますが、変更のメタデータ (説明、ジョブ修正) は取り込まれません! これは、UserB が棚上げされた CL をまったく新しい CL にコピーして送信できることを意味します (説明と修正を手動で再作成することによって) が、古い棚上げされた CL がそのまま残ります。
ここでの論理的なことは、UserBが
- CL の棚上げを解除する
- 棚上げされた CL のメタデータを表示する
- そのメタデータを新しいCLにコピーします。
- 新しい CL を提出する
- 古い保留 CL を削除する
以前にこの問題が発生したことはありますか? どのように解決しましたか?
編集:私の質問は非常に一般化されていることを明確にする必要があります。UserAが開発者で、UserBがビルド システム自体であるツールに取り組んでいます。開発者は CL を棚上げしてから、ビルド システムの棚上げを解除し、一連のビルドとテストでそれを検証します (これらのすべてのテストに合格した場合、CL を自動的に送信します)。ビルド システムが保留中の CL を提出した場合、すべての開発者が忘れずに CL を削除することを期待するのは、失敗する運命にあるようです!
python - Shelve ファイル/データベースをマージするにはどうすればよいですか?
いくつかのシェルブ、つまり .db ファイルがあり、それらを 1 つのデータベースにマージしたいと考えています。
私が思いついた唯一の方法は、各データベースを反復処理して、各反復を新しいデータベースに書き換えることでしたが、これには時間がかかりすぎました。
これを行うより良い方法はありますか?
python - パイソン棚; 読み込み/保存時の予期しない RAM 使用量
私は Python の shelve モジュールを使い始めました (そして、私は Python 自体に慣れていません)。情報を完全に保存およびロードしている間、RAM の使用量は... 奇妙です。
保存したい部分は、別のマップの特定の座標にあるマップと、特定の座標に存在する場合と存在しない場合がある「fov1」や「fov2」などの値の選択です。たとえば、x=50 および y=100 の「ミニマップ」では、別のマップが存在する可能性があり、その保存が必要です。Minimap[50][100] には、たとえば、fov0 と fov1 のリストがある場合もありますが、それ以外はありません。最大視野値は fov75 です。
これが私のセーブ/ロード機能です。
この保存機能は、保存が必要なマップ (空白ではなく、現在保存されていないもの) を確認し、マップを Xcoord + 'x' + Ycoord (例: '50x100') として保存し、fov パーツを Xcoord + として保存することを意味します。 'x' + Ycoord + 'f' + fov の数 (例: '50x100f2')。それはすべてうまくいきます。また、その時点で RAM に保持されているマップを削除し、存在するすべての fov セグメントを削除して、メモリを解放できるようにします。それもうまくいくようです。
一方、これは load 関数です。これは、マップとすべての視野を表示し、それらを元に戻すことを目的としています。繰り返しますが、これは完全に機能します。
ただし、テスト中にタスクマネージャーを見ていると、RAMの使用量が奇妙になります。単一のマップを保存するだけで、実際に Python が使用している RAM が増加します! さすがにそれはあり得ませんよね?または、大きなチャンクを一度に保存すると、RAM は当然ダウンしますが、それらをすべてバックアップすると、保存前よりも RAM が大幅に増加します。その後、再度保存/ロードしても、RAM は増加しません。最初の保存/読み込みサイクルでのみ増加し、その後は増加しません。私は一日中これに取り組んできましたが、この奇妙さの原因と解決方法がわかりません. 誰でも私を助けることができますか?
編集:ああ、はい、Python 2.7.2を使用しています。また、一度に保存する必要があるマップは 9 つまでです。
mercurial - hg unshelve -i 出力で差分を手動で適用する方法はありますか?
hg shelve
もう一度やり直しました - hg unshelveで説明されているパッチを適用した後でも(これは約 1 か月間うまく機能しました)、shelve はすべての変更を再び「失った」だけです。
を実行するとシェルフの名前が表示されますhg shelve -l
が、実行hg unshelve -n <name>
すると恐ろしい「nothing to unshelve
」メッセージが表示されます。
ですべての変更を確認できますhg unshelve -i -n <name>
。unshelve コマンドは、喜んで表示してくれますが、ローカル リポジトリにあることを認識しないため、それらをローカル リポジトリに戻す最も簡単な方法は何ですか?
version-control - Perforce (p4) 棚上げワークフロー?
p4 shelve を操作するための便利なワークフローを考案しようとしています。私は git ユーザーで、その機能の多くを見逃しています。
基本的な流れ (未完成の変更リストを保存し、別のことを行い、最初のタスクを完了するために戻る – git stash と同等) は簡単です。より複雑なシナリオでこの機能を使用する方法についてのチュートリアル/記事を探しています。
あきらめて、代わりに git-p4 または p4sandbox を使用する必要がありますか?
python - 非常に大きな辞書(Python)のshelveとsqliteのどちらかを選択する
メモリにロードできない浮動小数点数のベクトル(150kベクトル、各10k次元)の大規模なPython辞書があるため、これをディスクに保存し、必要に応じて特定のベクトルを取得するには、2つの方法のいずれかを使用する必要があります。ベクトルは一度作成されて保存されますが、何回も(何千回も)読み取られる可能性があるため、効率的に読み取ることが非常に重要です。シェルフモジュールでいくつかのテストを行った後、この種のタスクにはsqliteの方が適していると思う傾向がありますが、コードを書き始める前に、これについてもう少し意見を聞きたいと思います...たとえば、他に何かありますか私が知らない2つを除いてオプション?
ここで、最良のオプションがsqliteであることに同意すると仮定すると、別の質問がテーブルの正確な形式に関係します。vector_key, element_no, value
ベクトルのすべての10k要素を同じレコードに格納するのではなく、フォームの行を含むきめ細かい構造を使用して効率的なページ付けを支援することを考えています。この問題に関する提案をいただければ幸いです。
perforce - perforce、保留テストの失敗
Shelve のテスト ビルドが失敗し、次のような結果が得られます。
一方、プロジェクトは実際にはローカル システムに存在します。
また、perforce ツリーに追加する新しいプロジェクトもあります。新しいパスはクライアント仕様に既に追加されているため、新しいプロジェクトにマップされます。ただし、それでも次のように不満があります。
これを修正するにはどうすればよいか教えてください。ありがとう。
python - 棚に両端キューを格納しようとする奇妙な動作
次のターミナルセッションでそれ自体を語らせます。
d
同じオブジェクトをs['store']
指すべきではありませんか?なぜ動作appendleft
するのに動作しd
ないのs['store']
ですか?