問題タブ [svn-externals]
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 - Subversion の外部を更新する方法
いくつかのサブバージョン リポジトリがあります。1 つは共通コード用で、もう 1 つは各トップ レベル プロジェクト用です。最上位プロジェクトには、共通リポジトリのトランクへの svn:external リンクがあります。
プロジェクトのリリースをビルドする前に、最上位プロジェクトのブランチを作成し、共通リポジトリに並列ブランチも作成します。
分岐した最上位プロジェクトの svn:external プロパティが共通ディレクトリの並列分岐を指すようにするにはどうすれば自動的にできますか? 現在、共通リポジトリの「トランク」を指しています。現在、分岐プロジェクトでこれを手動で編集する必要があります。
ありがとう
svn - svn 外部を保護する
たとえば、外部を持つsvnにプロジェクトがあります
external-lib ディレクトリ内にファイル (Makefile) を追加する必要があります。外部リポジトリではなく、自分のリポジトリ ( )内でコミットしたいと考えていますmyproject
。外部リポジトリを変更しないことが非常に重要です。出来ますか?外部リポジトリの最新リビジョンを使いたい。
svn - プロジェクトの参照のパスを自動解決する
Visual Studio のプロジェクト参照または SVN:externals について何か誤解していると思います - おそらく両方:) -。
実際、私には 3 つのプロジェクトがあります。
- A 自体には参照がありません
- B は A の DLL を参照し、更新時に SVN:externals 経由でチェックアウトされます (プロジェクトのディレクトリ内のどこかに)。
- C が更新されると、(SVN:externals 経由で) A と B の DLL をプロジェクト内のディレクトリにチェックアウトします (たとえば、path.to.project.C\Libraries\Aとpath.to.project.C\Libraries\B ) 。
プロジェクト C で、A の DLL をパスpath.to.project.C\Libraries\Aからの参照として追加すると、Visual Studio はpath.to.project.C\Libraries\Bをそのパスとして取得します。私の選択を省略し、間違ったパスで A の DLL を自動解決しているように思えます。
この構成では、次のことを行います。
- 一部の A のコードを更新し、プロジェクトをコンパイルして、DLL をリポジトリにコミットします。
- リポジトリ プロジェクト C から更新します。
- C プロジェクトは、A の DLL の古いバージョンを使用することになります (Subversion からチェックアウトされたプロジェクト B のファイルで A の DLL を検索するためです。現時点では、最後の変更で更新されていません)。
どんなヒントでも大歓迎です。
svn - サブモジュールを含む Git リポジトリを Subversion リポジトリにインポートする
サブモジュールを含む Git プロジェクトを Subversion リポジトリにインポートするための最良の方法は何ですか?
問題があるかどうかはわかりませんが、サブモジュールは github の Kohana コアおよびモジュール リポジトリを指しています。これらの外部リポジトリを Subversion で参照できればよいのですが、必須ではありません。
ありがとう、マイク
svn - Subversion が将来の更新やステータス レポートのために外部を無視するようにするにはどうすればよいですか?
社内で開発したツールを使用するプロジェクトに取り組んでいます。プロジェクトの作業中にそのツールのソース コードを利用できると便利なので、実行しました。
svn.externals ファイルの内容:
ツールに関する私の個人的なメモ専用のフォルダーに。
残念ながら、これにより、ツールに関する多くの情報(およびツールによって定義された多数の外部、そのブランチとタグで定義された外部、各ブランチとタグで定義された外部で定義された外部など) が含まれます。で報告しますsvn status
。svn update
さらに読んで、参照コードのリビジョン番号を設定しようとしました。コードが最新であることは素晴らしいことですが、吐き出される 293 行とsvn update
吐き出される 138 行を削除することsvn status
はより優先度が高く、リビジョン番号を定期的に変更することで十分に機能します。したがって、svn.externals を次のように変更しました。
その後、このフォルダーの内容を無視することを期待していますが、これは役に立たないようです.
で枝を取り除くことができれば、行の約 50% が削除されSourceOfToolForReference/Software/branches/
ます。
フラグを使用--ignore-externals
すると問題は解決しますが、ステータスまたはプロパティのチェックを実行するたびにこれを入力する必要はありません。(OK、エイリアスを使用できますが、私のプロジェクトで作業したい他の人は同じエイリアスを必要とし、多くの人が TortiseSVN を使用しているため、このフラグを設定するには追加のクリックが必要です。1.1GB のすべてをエクスポートできました。toolのコードをインポートしてから、それをプロジェクトにインポートしますが、それはスペースの膨大な浪費のようです. リビジョン フラグを再帰的に設定することもできますが、これが唯一の理由である場合はツールに変更を加えたくありません.
Subversion が将来の更新やステータス レポートのために外部を無視するようにするにはどうすればよいですか?
編集:これをバンプします...次の24時間以内に誰も応答しない場合は、参照コードを別のチェックアウトディレクトリに配置する必要があります. すべてが悪いというわけではありませんが、これは私が外観が優れていると想像した種類のものです.
svn - svn: 外部を同じ名前のローカル フォルダーに置き換えるクリーンな方法
さまざまな場所でリポジトリをチェックアウトしています。別のリポジトリの外部にあるフォルダ X があります。X をローカルにしたい。他にも質問がありますが、それらは私の困難に遭遇していないようです。
私がしたことは、svn:externals を編集してその行を削除したことです。次に、レポをコミットしました。次に、フォルダーを取得し、その中のすべての.svn
エントリを削除して (通常のフォルダーにするため)、svn add
編集してからコミットしました。これはうまくいきました。
しかし、レポの別のチェックアウトを更新すると、問題が発生しました。最初のエラーは次のようなものでした:
わかりました、すでにsvn up
失敗していますが、フォルダーを削除して再更新してみます。今ではすべてのコンテンツを再取得できますが、新しいエラーが発生します:
再度更新を試みますが、何も起こりません。そのフォルダー内のファイルを削除し、ルートから再度更新しても何も起こりません。フォルダ X を削除しても、何も起こらないので、忘れてしまったようです。私の唯一の手段は、X のルート ディレクトリを削除svn up
し、レベルを下げて再作成することです (これはすべて、外部にもあるサブ フォルダーでも発生していたためです)。
よくない..このリポジトリがチェックアウトされているすべてのサイトで、手動のリガマロールを実行する必要はありません。何をすべきか?
git - git & svn externals - 最終的な解決策はまだ?
これは、私が現在 svn プロジェクトに使用しているワークフローです (私は svn ブランチを使用したことがなく、一部のプロジェクトでは他の人も積極的に取り組んでいます):
- サーバー上で、
git svn fetch
数時間かかる可能性のある初期化を行います。「ビルド」ブランチも作成します。 - 開発マシンでのクローン作成は高速になりました。
git clone srv://project.git, git checkout build
その後git update-refs ..., git svn fetch
、svn リポジトリへのリンクを復元します。 - 作業、コミット、作業コミット、...
- 物事が正常かどうかを
git push build
サーバーに確認し、そのブランチの Hudson でビルドをトリガーする - 別のマシンから作業できるように作業を保存し、ビルドブランチもプッシュします
- 満足したら、コミットを論理的な手順 (バグごとに 1 つなど) で結合し、svn にコミットして、次のようにすべてをリセットします。
git checkout master, git merge build, git svn dcommit, git push, git checkout build, git rebase master, git push build
svn externals と入力します。ここですべてのスクリプトを既に試しましたが、すべて失敗します。私の外部は次のように設定されています:
/path/to/x
スクリプトは、ファイルシステムのルートに作成しようとしたり、 git svn fetch /path/to/x
. また、単一のファイルはより多くの問題を引き起こすようです。(サブ質問 1: これらのスクリプトが当時書かれた svn:externals 形式は何ですか?)
私の状況を処理し、ディレクトリ構造を正しく複製するためにスクリプトの1つを変更するのは難しいようには見えませんが、大きな問題が残ります.xとy/zの両方でファイルを変更した場合これを 1 つの svn コミットに結合する方法がわかりません。これが、そもそも git を使い始めた理由の 1 つです。
したがって、質問:ルートでsvn dcommitを実行できるように、特定のsvnリポジトリの一部のみを使用して、上記のワークフローを複製できる方法はありますか? Linux と Windows の両方で動作する、すぐに使えるソリューションが望ましいと思います。
edit見つけたスクリプトの 1 つをすばやくハッキングし、svn 外部のディレクトリ構造を複製するようにしました。ただし、単一のファイルを複製することはできません。出力は次のとおりです。
サブ質問 2: git svn を使用して単一のファイルを取得することはできませんか?
svn - svn:externals:ローカルディレクトリに複数の外部リポジトリがある
2つ(またはそれ以上)の外部リポジトリをローカルディレクトリにリンクさせることは可能ですか?
たとえば、externalsという名前のファイルがあります。
私はそのように私の財産を宣言します:
次のようなファイルを使用しようとすると、最後の行だけが取得されます。
私がやりたいことは可能かどうか?
回答ありがとうございます。
svn - Svn Externals、通常の作業コピーに混在する外部からのファイルを持っていますか
フレームワークの作業コピーを作成できるようにしたいのですが、特定の拡張機能の別のレポを作成して、これらの拡張機能を外部からフレームワークに取り込む必要があります。私が見る問題は、以前に外部を使用したことがないため、たとえば、プロジェクトの残りの部分から分離できる完全なディレクトリを取得する必要があるように見えることです。
しかし、外部ディレクトリ構造に通常のフレームワーク構造の一部が含まれる何かが必要な場合はどうでしょうか。たとえば、次のようになります。
これが理にかなっていることを願っていますが、基本的には、作業コピーを作成してから、作業コピーが既にファイルとフォルダーを持っているのと同じディレクトリにファイルとフォルダーがある別のリポジトリからファイルを取得したいと考えています。
svn - マージ中のsvn:externalsの問題
次のSVN構造について考えてみましょう。*/Project_1/trunk/1.txt
*
/Project_2/trunk/dir1
* / Project_2 / trunk / dir2
エラーが発生する次のシナリオを想定します。
*svn:externalsを/ Project_2 / trunk/dir1および/Project_2/ trunk / dir2に追加すると、次のようになります。svn
:externals ^ / Project_1 / trunk /1.txt1。 txt
* Project_2 / trunkを新しいブランチにブランチし、そこでいくつかの変更を加え
ます*トランクからブランチに変更をマージします*マージされた
変更をブランチにコミットします<-失敗した場合!
エラーメッセージは次のようになります。エラー:
同じURLを参照しているため、「..... \ 1.txt」とエラー:「.....\1.txt」の 両方をコミットできません。