問題タブ [vendor-branch]
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.
git - クローン/プッシュ/プルを介してリモート ロケーションを伝播する
私たちのプロジェクトはいくつかのサードパーティのオープンソース ライブラリを使用しており、そのうちのいくつかはカスタムの変更が必要です。
ライブラリごとに、独自のローカル git リポジトリを作成し、元のソースの場所をベンダーリモートとして追加し、そこからクローンを作成し、必要に応じて変更して、内部のリモート リポジトリ ( originと呼びましょう) にプッシュしました。
これらのリポジトリは、コア プロジェクトのサブモジュールとして使用されます。
問題: 「vendor」のリモートURL は「origin」に伝播されないため、内部ライブラリ リポジトリを複製した人には失われます。
ライブラリの新しいアップストリームの変更をマージするたびに、ベンダーリモートを見つけて手動で再度追加する必要があります (または、まだ利用可能な場合は、最初に作成したのとまったく同じローカル リポジトリを使用します)。
すべての開発者が配布して使用できるように、ベンダーリポジトリの URLを保存するより良い方法はありますか? ライブラリに追加のファイル (例: clone_from_here
) を追加することも、あまり洗練されていないように見えます。
version-control - Plastic SCM のベンダー ブランチ ワークフローを設定するにはどうすればよいですか?
私はソフトウェア開発プロジェクトに放り込まれました。そこでは、かなり定期的にコードを更新するベンダーからの PHP アプリケーションがあります。このコードの上に構築できる必要があると同時に、ベンダーのコードの変更を追跡し、それらを独自のコード リリースにマージできる必要があります。私はそれを次のように想定しています:
私はこれをゼロから始めており、使用するソース管理ソフトウェアに関する推奨事項 (Plastic SCM を検討しています)、ベスト プラクティス、ワークフローのセットアップ、および何が最適かについての一般的なアドバイスを探しています。
svn - Subversion:ベンダーブランチの一部のファイルのみを使用
「Subversionを使用したバージョン管理」の「ベンダーブランチ」セクションでは、「libcomplex」のベンダーブランチを設定し、次のコマンドを使用してlibcomplexをメインの開発ブランチにコピーします。
ただし、libcomplexの機能のサブセット(したがってファイルのサブセット)のみが必要な場合はどうなりますか?
libcomplexの一部だけをメインブランチにコピーしても大丈夫ですか?または、これは問題を引き起こす可能性がありますか(特にlibcomplexのアップグレードに関して)?
svn - svn:externalsは指定されたリビジョンを無視します
svn:externalsを使用しており、 SVN1.5 +形式を使用して特定のリビジョンを指定しましたが、SVNはリビジョン番号を無視しているようです。
リビジョン658以降、ベンダーライブラリを新しいバージョンに置き換えました(svn rm、svn commit、svn add、svn commitを実行することにより)。これで、指定されたファイルは最新のリビジョンには存在しなくなりましたが、場合によっては、これらの特定のファイルの古いバージョンを使用したいと思います。
リビジョン658の外部ファイルを使用するにはどうすればよいですか?それは最新のリビジョンには存在しませんか?
svn - TortoiseSVN 外部リポジトリのコピー
Subversion を使用したベンダー ブランチについて調べています。私は subversion コマンド ラインにあまり慣れていません。Windows 7 ボックスで TortoiseSVN と Subclipse を SVN クライアントとして使用しています。
Subversion のベンダー ブランチのドキュメントでは、「外部リポジトリ コピー」の実行について説明していますが、TortoiseSVN でこれを行う方法を見つけることができませんでした。TortoiseSVN でこれを行う方法をインターネットで検索したところ、svn:externals
代わりに使用することを提案する記事を見つけました。ベンダー ブランチのドキュメントには、使用するようには記載されておらずsvn:externals
、代わりに外部リポジトリのコピーを使用するように記載されています。
TortoiseSVN でそのようなコピーを行う方法を知っている人はいますか? それが不可能な場合svn:externals
、同じ結果が得られますか?
編集:
これが私のワークフローです:
- という名前の新しいルート レベル フォルダーをリポジトリに作成しました
vendor
。これは の兄弟ですtrunk
。 myrepo/vendor
新しい作業コピーにチェックアウトしました。two different trees
TortoiseSVN から へのマージをmyvendorrepo/trunk
試みましたmyrepo/vendor
。myvendorrepo/trunk
これにより、 が と同じリポジトリにある必要があることを示すエラーが返されましたmyrepo/vendor
。
ベンダー ブランチのドキュメントでは特に a について説明foreign repository copy
していますが、TortoiseSVN では可能ではないようです。
svn - リリース順不同の svn ベンダー ブランチ
サードパーティ ベンダーからのリリースのバージョン番号が順不同になった場合、svn ベンダー ブランチをどのように処理しますか。たとえば、次の順序でリリースを検討してください。
- 1.0.0
- 2.0.0 アルファ
- 1.0.1 (マイナーポイントリリース)
- 2.0.1 ベータ版
- 1.1.0 (新機能追加)
- 2.0.2 ファイナル
プロジェクトがどの段階にあるかに応じて、上記のいずれかのさまざまなバージョンをトランクにマージします。
ベンダー ブランチの svn でこれを処理する最良の方法は何ですか? 各リリースを \current にコミットする必要がありますか? 歴史はきちんと保存されますか?また、変更の量によっては、バージョン間を行き来するために多くのスペースが浪費されます (大きなソフトウェア パッケージについて話します)。
マージ履歴を保持することは私にとって重要なので、svn red book で推奨されているように \current を使用し続けたいと思います。しかし、バージョン間の違いは非常に劇的なため、すべてのバージョンを同じ開発ラインに維持することは意味がありません。