問題タブ [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.

0 投票する
15 に答える
182568 参照

git - 最初にリポジトリ全体をチェックアウトせずにスパース チェックアウトを行うことは可能ですか?

チェックアウトに数時間かかる非常に多数のファイルを含むリポジトリを使用しています。スパース チェックアウトをサポートするようになったので、Git がこの種のリポジトリでうまく機能するかどうかの可能性を調べていますが、私が見つけることができるすべての例は次のことを行います。

この一連のコマンドの問題は、元のクローンもチェックアウトを行うことです。元の clone コマンドに -n を追加すると、read-tree コマンドで次のエラーが発生します。

エラー: スパース チェックアウトは作業ディレクトリにエントリを残しません

最初にすべてのファイルをチェックアウトせずにスパース チェックアウトを行うにはどうすればよいですか?

0 投票する
3 に答える
19895 参照

git - Gitサブモジュールを浅いクローンとスパースチェックアウトに設定しますか?

多くのベンダーのObjective-Cライブラリ(たとえばfacebook-ios-sdk)は、リポジトリのファイル/ディレクトリの特定のサブセットをXcodeプロジェクトにコピーするように指示します。これに関する1つの問題は、ベンダーコードのリビジョンがわからないことです。もう1つは、ベンダーコードに変更を加えた場合、Gitを介して変更を提供するのは簡単ではないということです。

解決策として、各ベンダーライブラリをプロジェクトのリポジトリのGitサブモジュールとして追加し、いくつかの追加設定を追加します(たとえば、.gitmodulesファイル内)。このように、別の人が私のプロジェクトを複製して実行したgit submodule update --init場合、それらのリポジトリとサブモジュールは、私が設定したのと同じデフォルト設定を使用するため、私のものと同じ状態になります。

  1. スパースチェックアウト:サブモジュールの特定のファイルのみをチェックアウトします。
  2. 浅いクローン:サブモジュールの特定のSHA1のみをクローンします。

Gitサブモジュールに上記の設定を設定するにはどうすればよいですか?

0 投票する
5 に答える
13431 参照

svn - 再ダウンロードせずに既存の SVN 作業コピーの深さを変更する

SVN リポジトリ全体の作業コピーを持っていますが、ディスク容量の問題のため、それをスパース作業コピーに変更したいと考えています。

これを行う1つの方法は次のとおりです。

ただし、最初に と を削除project1してからproject2、それらを再ダウンロードします。サイズが非常に大きく、サーバーのアップロード速度が非常に遅いため、これは非常に不便です。私はこれを試しました(実験として、レポの別の小さな部分で):

しかし、最後のコマンドは最初の 2 つを元に戻すだけです。

すぐに更新/変更せずに作業コピーの深さを設定するにはどうすればよいですか?最初にサブディレクトリを正しく構成する機会を得ることができますか?

または、最初にコピーして安全な場所に移動するなど、私が望むことを達成する別の方法はありproject1ますproject2か?

0 投票する
1 に答える
141 参照

git - git に変換するとき、単一ディレクトリの svn チェックアウトをどのように処理すればよいですか?

私はすぐに、アプリケーションの一部を、svnバックアップされたリポジトリを使用するものから、 git1 つを使用するものに変換する予定です。

以前は を使用していましgit-svnたが、チーム全体が に移行されgit、その移行の先頭に立つよう求められました。ほとんどの動きを理解できてうれしいですが、まだ解決していない側面が 1 つあります。

私の構成リポジトリの 1 つのディレクトリは、スタンドアロンの Windows マシン上の外部アプリケーションのスクリプト ディレクトリを追跡するために常に使用されています。そのアプリケーションのスクリプト ディレクトリは、アプリケーション インストール ディレクトリ内にあるためsvn、適切な時点でそのディレクトリのみをチェックアウトしました。

私はその構造を維持できることを望んでいましたが、私の研究では、狭いクローンでgitは同じ相対的な構造を維持する必要があることが示唆されており、私の場合は難しいでしょう.

myrepo:config/scripts明確にするために、の内容をにマップしたいと思いC:\application\scriptsます。

私が見る限り、いくつかのオプションがあります。

1. これらのスクリプト ファイルには別のリポジトリを使用します。

リポジトリを正確に正しい場所に複製できるため、これがおそらく好まれます。

残念ながら、現在、構成データ (これらのスクリプトが何であるか) を構成ディレクトリ以外の場所に保存できる構造はありません。そのため、これには、私たちが望んでいたからsvnへの直接の変換を超えて、リポジトリの再構築が必要になります。git

2. 接合点を使用します。

Ger4ish がunix でシンボリック リンクを使用することを提案しているようgitに、ディレクトリの作業コピーを別のconfig場所に置き、C:\ジャンクション ポイントを使用してディレクトリをアプリケーション ディレクトリのサブディレクトリとして表示することができます。

残念ながら、私はそのマシンへの管理者アクセス権を持っていないため、これは最初に表示されたほど単純ではありません。

その他のオプション?

私が見逃したオプションがあるのだろうか。

Git 1.7.0 のスパース チェックアウトに関する質問への回答をお探しですか? 私はいくつかの方法を得ることができますが、特定の位置にチェックアウトする必要性と組み合わせて構造を同じに保つという要件は、この方法が機能しないことを意味します.

0 投票する
5 に答える
13994 参照

git - 除外されたGitスパースチェックアウト

このスレッドによると、Gitのsparse-checkout機能の除外が実装されることになっています。それは...ですか?

私が次の構造を持っていると仮定します。

presentations/heavy_presentation残りをチェックアウトに残したまま、チェックアウトから除外したいと思います。私はこれを実行することができませんでした。これの正しい構文は何ですか?

0 投票する
1 に答える
205 参照

git - hgネストされたリポジトリ設定

Mercurialプロジェクトにサードパーティのネストされたgitリポジトリがあり、このリポジトリのローカル設定(スパースチェックアウト)をチームと共有したいのですが、これを自動的に行う方法はありますか?

/repo/nestedrepo/.git/info/sparse-checkout <-これはローカル設定ファイルですが、チームの全員が親リポジトリをプルするときに取得するようにします。

ありがとう

0 投票する
2 に答える
10043 参照

svn - ジェンキンスのチェックアウト中にディレクトリを除外する

トランクの下に 20 個のディレクトリがあります

Jenkins のチェックアウト時に任意のディレクトリを除外する (含めない) 方法。たとえば、トランクの下に/trunk/a3/b1を除くすべてのディレクトリを配置したい場合は、 どうすればよいですか?

SVN checkout ignore フォルダーで既に回答を見つけましたが、これは Jenkins では不可能です。除外したいディレクトリを除いて、トランクの下のディレクトリの数がわからない、はるかに単純なソリューションが必要です。

また、カスタム svn チェックアウトを追加する方法。svn コマンド ライン ツールを実行してチェックアウトを実行するとします。

0 投票する
3 に答える
64651 参照

git - JenkinsとGitのスパースチェックアウト

Gitに大きなリポジトリがあります。プロジェクトからサブフォルダーを1つだけチェックアウトするジョブをJenkinsで作成するにはどうすればよいですか?

0 投票する
3 に答える
5660 参照

git - 除外されたファイルが git sparse チェックアウトに繰り返し表示されるのはなぜですか?

私はGCC git ミラーを使用しています。C と C++ のフロント エンドしか使用していないため、git のスパース チェックアウト機能を使用して、必要のない何百ものファイルを除外しています。

これはしばらくは機能しますが、時々、除外されたファイルの一部が返されていることに気付きます

ファイルがいつ再表示されるか正確にはわかりません。さまざまなブランチ (リモート追跡とローカルの両方) に何度も切り替えており、非常に忙しいレポであるため、頻繁にプルする新しい変更があります。

gitの比較的初心者として、作業ツリーを「リセット」してそれらのファイルを再度削除する方法がわかりません。

実験として、sparseCheckout を無効にしてプルしてみました。後で sparseCheckout を再度有効にして、何らかの方法でツリーを更新できると考えましたが、うまくいきませんでした。

どうやら、私が要求したことのないファイルにローカルで変更を加えたようで、AFAIKが触れたこともありません!

しかし、git statusそれらの変更は表示されません:

試してみましgit read-tree -m -u HEADたが、何もしません。

だから私の質問は:

  • ファイルが再表示されるのはなぜですか?
  • それらを再び非表示にするにはどうすればよいですか?
  • 彼らが戻ってくるのを防ぐにはどうすればよいですか?
  • これは、私のファイルに、ファイル内で除外される (つまり、 で名前が付けられている).git/info/excludeはずのディレクトリ内のファイルへの参照が含まれているという事実に関連している可能性がありますか? 指示に従って、SVNと同じファイルを無視しました!sparse-checkout

    $ git svn show-ignore >> .git/info/exclude

したがって、私のexcludeファイルには次のようなパスが含まれています

sparse-checkoutファイルで名前が付けられたディレクトリのいずれかの下になります。

いくつかのコピーを複製してそれぞれを編集し、ブランチを作成/切り替え/削除し、それらの間で変更をマージするテストリポジトリで問題を再現しようとしましたが、私のおもちゃのテストケースでは決してうまくいきません。GCC リポジトリは少し大きく (2GB 以上)、「失敗」の間隔 (1 ~ 2 週間程度) が長すぎて、人々が問題を正確に再現しようとすることは期待できません。とで同じパスを使用することは試していません。競合が発生する可能性があることは、今日だけに思い浮かびました。sparse-checkoutexclude

数週間前に #git on freenode でこれについて尋ねたところ、IIRC は基本的に「おそらくバグであり、誰もスパース チェックアウトを使用していない」と言われましたが、より良い答えを期待しています ;-)

アップデート:

問題が実際に発生するのを最近見たとき (つまり、ファイルがそこになく、単一のコマンドの後に表示された) は、上流のオリジンからプルを実行していました。

表示された変更の中には、次の名前の変更が含まれていました。

必要に応じて、プルの前にlibgoディレクトリは存在しませんでした。dir が存在し、これらのファイル (およびその他のファイル) がその下にあることをプルした後:

名前を変更したファイルのskip-worktreeビットが失われたかどうかわかりません。どうすれば確認できますか?

libgfortran/ChangeLogたとえば、上記の例に示されているファイルは新しいファイルではないか、最近名前が変更されたものではないため、名前が変更されたときに常に問題が発生するとは限りません。

0 投票する
6 に答える
79316 参照

git - gitでサブディレクトリのみのクローンを作成する

サブディレクトリを含むgitリポジトリがあります。dirA/dirBの例。git cloneUnixサーバーでサブディレクトリ(dirB)からファイルのみをプルする方法はありますか?

これを行うクローン以外のgitコマンドはありますか?

特定のファイルをGitするにはどうすればよいですか?