問題タブ [sparse-checkout]
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.
svn - Windows コマンド ラインからの「svn update」中の競合
バックエンドSVNサーバーにVisualSVNサーバーを使用しています(それが重要な場合)。
以下に 2 つのコマンド セットを示します。最初のセットはフォルダーを作成し、SVN 内のフォルダーを新しく作成された Windows フォルダーにチェックアウトします。2 番目のセット (単一のコマンド) で競合エラーが発生していますが、その理由はわかりません。スパース チェックアウトを実行しようとしていて、2 つのフォルダーだけをチェックアウトしています。理想的には、これら 2 つのフォルダーの下にあるファイルも追加したいのですが (--set-depth immediates)、そこまでは行きませんでした。私は TortoseProc.exe を使用して調べましたが、その API は、私が読んだものからこれを行うのに十分なコマンドを提供していません。svn コマンドを使用してこの問題を解決する方法を知っている場合は、お知らせください。svn checkout
、svn update
、svn up
、およびそれらの組み合わせのいくつかの異なるバリエーションを試しました。
フォルダが作成され、Windows.svn
のそのフォルダにフォルダが作成されました。_TEST
それで、最初のコマンドセットを確認しました。
コマンドの最初のセット:
コマンドの 2 番目のセット:
コマンドの 2 番目のセット (最初のコマンドでエラー):
編集(コメントリクエスト):
extjs - Tortoise SVN: スパース ブランチの作成
以下は、Tortoise SVN を使用してブランチを作成する方法の説明へのリンクです。
TortoiseSVN を使用して新しいブランチを作成するにはどうすればよいですか?
開発には Sencha ExtJS と Sencha Touch フレームワークを使用しています。Sencha は、開発者がアプリのトランク フォルダーを子 (または子孫) フォルダーとして実際のフレームワーク自体に構造化することをお勧めします。これにより、各アプリがパッケージやテーマ、フレームワーク リソース (画像、アイコンなど) を共有できるようになります。
SVN プロジェクトのフォルダー構造:
トランク フォルダ構造:
app1 を新しいブランチに持ってくるだけです:
上記の (ブランチを作成する) ワークフローでは、トランクを新しいブランチ フォルダーにコピーするように指示されているため、すべてのアプリがコピーされています。基本的に、コピーしたいアプリを選びたいと思います。Tortoise には、スパース チェックアウト機能を使用してこれを行う方法があります。ブランチを作成するときにこれを行うためのワークフローがどうなるか知っている人はいますか?
git - スパースチェックアウトの後に「git read-tree」を呼び出すのはなぜですか
Subdirectory Checkouts with git sparse-checkoutによるとgit read-tree -mu HEAD
、既存のリポジトリの場合、スパース チェックアウトを構成した後に呼び出します。
read-tree
ステップを詳しく説明していただけますか?- それはどのように機能しますか?
- 何が起こっている?
read-tree
を使用して使用しないのはなぜcheckout
ですか?- なぜ使用する
-mu
のですか (なぜこれがマージなのか、何がマージされるのか)?
-m
-u
macos - エラー: スパース チェックアウトは作業ディレクトリにエントリを残しません
まず、同様のスレッドをすべて確認し、Google で検索して問題の原因を突き止めましたが、成功しませんでした。私の問題は、git でスパース チェックアウトを使用しようとしているのですが、次のエラーが発生することです。
この 60 GB のリポジトリがあり、これを複製する必要があります。その一部しか必要ないので、ディスク容量を節約するためにスパース チェックアウトを使用したいと考えました。これが私がすることです:
mkdir repoDir
git init repoDir
cd repoDir
git remote add origin <repo url>
git config core.sparsecheckout true
echo "some/dir/" >> .git/info/sparse-checkout
git pull --depth=1 origin master
注: -f フラグを指定せずにリモートを追加したため、何も取得されません。
結果:
私はいくつかのことを試しました:
- 新しいレポを初期化してリモートを手動で追加する代わりに
git clone --no-checkout
、スパース チェックアウトをセットアップしました。git status
レポ内のすべてのファイルを削除したかのように、これは役に立ちませんでした。git pull origin master
コマンドを実行しても同じエラーが発生します。 - 手順 6 で、パスの前にスラッシュ、パスの後にスラッシュ、星、パスと
>
またはの間にスペースを入れて、考えられるすべてのパスの組み合わせを試しまし>>
た。ところで、私はここで正しいフォーマットが何であるか混乱しています.SOのコメントから、これをフォーマットする相互に排他的な方法がわかります。 - my が ASCII であること、およびここ
.git/info/sparse-checkout
にあるように適切な行末があることを確認しようとしました。これはおそらく Windows でのみ問題になりますが、とにかくこれを確認しました。
私のgitバージョン:git version 1.9.3 (Apple Git-50)
OSX ヨセミテ 10.10.2 (14C109)
git - リポジトリからフォルダーの内容を Git プルする
私はこれを試してみましたが、成功しませんでした。
3 つのフォルダーを含む git リポジトリがあります。まあ言ってみれば:
フォルダ A フォルダ B フォルダ C
たとえば、フォルダー B の内容だけを Web サーバーにプルできるようにしたいと考えています。
たとえば、wwwフォルダーでgitリポジトリを何らかの形で初期化し、魔法をかけて、フォルダーBのファイルをこの特定のフォルダーにプルしたいだけです。
フォルダー B でスパース チェックアウトを実行すると、www フォルダーにフォルダー B が作成されます。中身だけ欲しい。
これは Git でも可能ですか?
git - Git でサブディレクトリをプルおよびプッシュする方法
私の要件は、マスターリポジトリから特定のフォルダーのファイルのみをプルおよびプッシュすることです。私が使用している方法は、特定のフォルダーのファイルをプルするのに役立つだけで、プッシュするのには役立ちません。
したがって、私のマスターリポジトリには、以下のようなフォルダー構造があります。
これが私がしていることです。
これはプルすると正常に機能しますが、他のフォルダーにファイルを持ち込むことはありませんが、examfold3 のファイルも持ち込まず、ローカルリポジトリからいくつかのファイルを変更した後にプッシュするとエラーが発生します。
他のフォルダーのファイルをプルしなかったため、ローカルリポジトリがマスターと同期していないとgitが考えていると思います。どんな助けでも本当に感謝します。前もって感謝します。
git - スパース チェックアウトは git fetch に影響しますか?
Gitリポジトリのみのサブディレクトリをクローンするにはどうすればよいですか?を見ました。、そして最も投票された回答は、スパースチェックアウトを使用することを示しています. しかし、このコメントは、まだレポ全体をダウンロードしていると言っています。
どちらが正しい?
スパース チェックアウトはフェッチに影響しますか、それともチェックアウトだけに影響しますか?
つまり、10 GB の Git リポジトリ (圧縮済み) がある場合、スパース チェックアウトを使用しても、最初からリポジトリからフェッチするときに 10 GB 全体をダウンロードすることになりますか?
android - Android ソースコードをより迅速に「チェックアウト」(ダウンロード) するためのヒントとコツ
Android ソース コードの表示と検索は簡単です。AndroidXRef Web サイトにアクセスするだけです。
ただし、最新バージョンの Superuserをビルドして実行する場合は、最初に Android ソース ツリー全体をダウンロードする必要があります。
ソース管理から Android の「マスター」ブランチを取得したいとします。
Google の公式指示に従った場合:
- 手術には間違いなく少なくとも1時間かかります。半日以上かかる場合もございます。
- おそらく数十ギガバイトのデータを取り込みます。私が住んでいる場所では、ユーザーが 1 か月に数十ギガバイトのデータを取り込むと、ISP が「超過料金」を請求することがあります。料金や追加料金を支払うのは好きではありません。
要するに、通常のrepo sync
コマンドを実行すると、おそらく遅くて無駄になります。Android 開発の全歴史は必要ありません。無限のディスク容量はありません。
Android ソース コードをより迅速にチェックアウトするにはどうすればよいですか?
「浅いクローン」を実行すると役立つことはわかっています。これどうやってするの?
Rakeshは、他の場所で
repo sync -c
役立つと書いています。しますか?オプションのドキュメントを読みました。-c
しかし、このオプションが実際に役立つかどうかを判断するには、Git を十分に理解していません。ここに関連する議論があります。(オプション:) チェックアウト操作を高速化するために使用できるその他のヒントやコツはありますか?
(オプション:) 最終的に、チェックアウトされたコードを保持するために必要なディスク容量はどれくらいですか?
PS 先週チャットでくれた durron597 さんのアドバイスに感謝します。この質問に対して行われた結果としての改善は、すべて彼/彼女のおかげです.