問題タブ [subrepos]
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 - subrepos - Mercurial のサブリポジトリを使用して、複数のプロジェクトをリポジトリにプッシュできますか?
私は3つのプロジェクトを持っています:
これら 3 つのプロジェクトの 3 つのパッケージを同じ離れたリポジトリに保存したいと考えています。
離れたリポジトリのクローンに 3 つのパッケージをクローンしようとしました。
次に、これら 3 つのパッケージを .hgsub ファイルでサブリポジトリとして宣言しました。
hg add
andhg commit
コマンドを呼び出しました。
しかし、ファイルをリモート リポジトリにプッシュしようとすると、.hgsub および .hgsubstate ファイルがリモート リポジトリにプッシュされますが、パッケージには次のことが起こります。
サブリポジトリの仕組みを誤解しているようです...
サブリポジトリの使用は私のユースケースに当てはまりますか? 私がやりたいことはどのように行われるのでしょうか?
mercurial - 異なるサブリポジトリプロジェクトからの一部のパッケージのみを含むMercurialリポジトリを設定するにはどうすればよいですか?
http://myrepoという遠いリポジトリがあります
また、に3つの異なるパッケージ(それぞれに1つ)が格納された3つのプロジェクトがありますD:/Projects/Project[ABC]/src/pack[ABC]
。
D:/Mercurial
パッケージをサブリポジトリとして参照するローカルリポジトリを作成したいと思いますpack[ABC]
。これは、離れたリポジトリにプッシュされます。
最後に、パッケージを離れたリポジトリに保存して、http:// myrepo / pack [ABC]を読んでもらいたいので、で行われた変更を反映する必要がありますD:/Projects/Project[ABC]/src/pack[ABC]
。
サブリポジトリを離れた場所にプッシュすることはできません。そのようなものを設定する方法は?
mercurial - 中央サーバーでサブリポジトリの同期を維持する
サブリポジトリと、サブリポジトリをチームのワークフローで機能させる方法を理解していると考え続けていますが、基本的なワークフローを実装しようとするたびに、何かが正しく機能しないため、明らかにわかりません。
私はサブレポについてオンラインで読むことができるものはほとんどすべて読んでおり、人々が投稿するすべての些細な例に従いますが、もっと複雑なことをしようとすると. あるいは、私はそれを完全によく理解しているのかもしれませんが、私がやろうとしていることはうまく機能するものではありません.
邪魔にならない基本を取得しましょう。リモートの「祝福された」リポジトリのコレクションがあるとしましょう。
そこで、/ProjA
toC:\ProjA
と clone /LibA
toC:\ProjA\LibA
と/LibB
toのクローンを作成しC:\ProjA\LibB
ます。.hgsub
ファイルを作成します
私はすべてをコミットします。その後、押すことができProjA
、すべてが順調です。
だから今、私のチームの誰かがクローン/PrjoA
に行くことができ、サブレポとしてもC:\dev\ProjA
ダウンLibA
します。LibB
この人は、私と同じように「祝福されたレポ」から簡単にプッシュ/プルできます。これまでのところとても良い。
今、私は言います: OK、ProjA チーム、祝福されたレポへのプッシュをやめてください。今から、次の場所にある ProjA dev および ProjA QA リモート リポジトリに変更をプッシュしてください。
ここで停止します。にプッシュしようとしても、 をプッシュするだけhttp://acme.com/Dev/ProjA
で、 の目的の場所ではなく、祝福されたリポジトリの元の場所にプッシュされます。/ProjA
/ProjA/LibA
/ProjA/LibB
http://acme.com/Dev/ProjA
.hgsub
これで、ファイルを としてセットアップできましLibA = ../LibA
た。これは最初は機能しますがProjA
、祝福されたレポから のクローンを作成する場合、LibA
またはを取得できません。これLibB
は、ローカルのレポが見つかることを期待してLibA
おり、クローンLibB
しているレポの兄弟であるためProjA
だと思います。私が意味するのは、にクローンを作成している場合http://acme.com/BlessedRepos/ProjA
、C:\Test\ProjA
既存のリポジトリが にあると予想されるため、失敗するということC:\Test\LibA
です。
hgsub を としてセットアップすることもできますLibA = LibA
。LibA
ただし、祝福されたスペースにネストされていないため、祝福されたリポジトリにプッシュしようとすると、これを行うと失敗しますProjA
。私はそれらを作成することができましたが、私は に戻ることは決してありませhttp://acme.com/BlessedRepos/LibA
んhttp://acme.com/BlessedRepos/ProjA/LibA
。
.hgsub
ファイル内のすべての値を「祝福された」リモートの場所から「dev」および「QA」の場所に変更するスクリプトを実行する場合、最初の方法が機能することは間違いありません。しかし、これは理想的とは言えません。
そう。このことを本当に理解している人がいる場合は、私がどこで間違ったのか、またはサブレポを使用して元のワークフローをどのように達成できるかを説明してもらえますか、それともそうではないものを求めていることを確認してくださいサブレポに最適です。状況を理解するのに役立つ場合、おそらく 15 ~ 20 の「製品/ソリューション」と 50 の「共有」プロジェクトのようなものがあります。15 ~ 20 個の製品のいずれでも、ソリューション内の 50 個の共有プロジェクトのうち N 個を利用できます。
mercurial - Mercurial リポジトリの .hgignore をすべてのサブリポジトリで利用できるようにしますか?
いくつかのサブリポジトリを持つ Mercurial リポジトリがあります。一般的な .hgignore-File のみを定義する可能性はありますか (たとえば、オブジェクト ファイルを無視するため)、メイン リポジトリと、オプションでサブリポジトリの特殊化されたファイルの両方で定義することはできますか?
マニュアルには十分な情報がありません。で .hgignore ファイルを指定する
ホームディレクトリの .hgrc へのコピーも機能しません。
何か案は?
mercurial - Mercurial Subreposは、クローン作成プロセス中に作成されません
'subrepo'というサブフォルダーを含むリポジトリーを作成しました。次に、次の内容の.hgsubファイルを作成しました。
BitBucketに移動してソースを表示すると、「subrepo」フォルダーが表示されます。このフォルダーをクリックすると、リンクされたサブリポジトリに移動します。また、作成したルートレベルのindex.phpファイルと一緒に.hgsubファイルも表示されます。
私の問題は、メインリポジトリのソースを複製またはダウンロードすると、index.phpファイルのみが取得され、リンクされたサブリポジトリのコンテンツを含む.hgsubファイルまたはサブフォルダは取得されないことです。私の理解では、完全なコンテンツを取得する必要があります。何が間違っているのでしょうか?
mercurial - 水銀座薬
座薬について質問です。私たちのプロジェクトは次のように設定されています。
dependencyA
サブリポジトリです。これは次のように作成されました。
- cdプロジェクトA
- mkdir 依存関係 A
- cd依存性A
- hg 初期化
- hg プル ssh://hg@somerandomiphere/dependencyA
- CD ..
- エコー依存性 A = ssh://hg@somerandomiphere/dependencyA > .hgsub
- hg 追加
- hg コミット
- hgプッシュ
suprepository に変更を加えた場合は、それらをコミットしてメイン プロジェクトからプッシュします。どちらも再帰的であるため、サーバーにプッシュされます。今、同僚がサーバーから変更を取得したいと考えています。しかし、メインプロジェクトでは何も変更されていないため、機能しません。しかし、メイン プロジェクトで何かを変更してサーバーにプッシュすると、hg pull
彼が最新の変更セットを取得すると、hg update
サブリポジトリも更新されます。これは予期される動作です。
ここで私の質問は、変更をプルする方法があるかどうかですが、それの新しいクローンを作成せずにサブリポジトリに対してのみ、またはそれを行うための最良の方法は何でしょうか.
windows - Windowsでgitサブリポジトリを使用してMercurialEclipseクローンリポジトリを作成するにはどうすればよいですか?
svn:externalsを使用してsvnサブディレクトリをsvnゲートウェイ経由でgithubに変換してbitbucketに変換し、bitbucketにアップロードしました(DVCSに移行したかったので、bitbucketは個人リポジトリを許可するため、サーバーをsvnの提供とネット上での使用から解放できます) 。私は自分のサーバーにsshingを介して行いました。
また、nbにMercurialEclipseをインストールし、プロジェクトのクローンを作成したいと思いました(Windows 7を使用)。エラーメッセージが表示されてしまいました
(ローカライズされたhg.exeを使用していることは明らかですが、メッセージは「指定されたファイルが見つかりません」という意味です)
どうすればgitサブリポジトリのクローンを作成できますか?または、可能な別のeclipseプラグインをお勧めします。
すべてが失敗した場合、おそらく古い「svnゲートウェイ戦術」を使用できますが、可能であればそれを防ぎたいと思います。
svn - Mercurial への移行のための svn:externals の使用の適応
企業環境には、次のような svn リポジトリ構造があります。
ここで、public_code は、オープン ソースの外部リポジトリであり、社外の人が読み書きアクセスできる場所です。また、shared_lib1 と shared_lib2 は、他社の別のプログラマー グループと共有する外部リポジトリです。私はメンテナーであり、基本的に技術的に最善のことを行うことができます。外部のユーザーは適応する必要があります。
この構造から Mercurial リポジトリに移動する最善の方法は何かを考えています。
1) Mercurial サブリポジトリを使用して、古いセットアップを厳密にシミュレートできました。または
2) 私たちのために 1 つの大きなレポジトリを作成し、外部パートナーのために 3 つの新しい小さな別のレポジトリを作成し (つまり、基本的にはプロジェクトをフォークします)、大きなレポジトリと別のレポジトリの間でチェンジセットを交換することができます。
svn のセットアップ 1) では、ルートを分岐するときにポリシーにより常に public_code、shared_lib1、および shared_lib2 を分岐する必要があるため、分岐は悪夢です。このために、svn branch を 4 回呼び出し、svn:externals プロパティを手動で 3 回変更する必要があります。Mercurial でメイン リポジトリを簡単に分岐し、すべてのサブリポジトリの新しい分岐を自動的に取得できますか?
セットアップ 2) を行うと、リポジトリ間でファイル システムが異なります。たとえば、レポ "root" に public_code/Makefile がありますが、レポ "public_code" ではファイルは単なる "Makefile" になります。Mercurial はリポジトリ間で変更を同期できますか? ワークフローはどのようになりますか?
mercurial - Bitbucket サブリポジトリを使用した Mercurial リポジトリ - プッシュを防ぐ方法
Mercurial リポジトリの下にいくつかのサードパーティのサブリポジトリをセットアップ中です。1 つのサブリポジトリは、Bitbucket でホストされている別の Mercurial リポジトリです。
これはパブリック リポジトリであり、私はその貢献者ではないため、プッシュバックしたくありません。ただし、親リポジトリを複製するときに、リポジトリを自動的に複製したいと考えています。1 つには、サブリポジトリの集合的な履歴にアクセスして、時間の経過とともに何が変更され、何が変更されていないかを確認できるようにしたいと考えています。
そこで、親リポジトリの.hgsub
ファイルに次のようにエントリを作成しました。
を使用してレポを複製しました
サブレポの状態を記録するコミットを行いました。次に、親レポをサーバー (Kiln) にプッシュして戻そうとしましたが、サブレポを Bitbucket サーバーにプッシュしようとしていたことがわかりました。ただし、Bitbucket サブリポジトリへのプッシュは何もしていないように見えます。
.hgsub
このようなエントリを使用して、同じ方法で (Git ハブでホストされている) Git サブレポを作成したとき、この動作は観察されませんでした
サブリポジトリを設定せずに、Mercurial にファイルをファイルとして保存させるだけでこれを行うのが最善でしょうか? または(できれば)このサブレポのコンテンツを実際にソースの場所にプッシュしないようにMercurialに指示するために使用できる設定がどこかにありますか?
これらのサブレポを手動でのみプッシュするように構成できるようにしたいので、誰かがこれに光を当てることができれば幸いです。
別のスタックオーバーフローの回答で参照を見つけましたcommitsubrepos = no
。これは、サブリポジトリのプッシュではなく、コミットに関するものです。次に、サブレポのプッシュに関する設定への参照があるかもしれないことを期待して、Mercurial Web サイトでこれを調べましたが、...いいえ
mercurial - バイナリ アセットを Mercurial で保存するにはどうすればよいですか?
私はゲーム開発プロジェクトと私のチームを開始しており、バージョン管理に Mercurial を使用する予定です。ゲームのバイナリ アセットを保存するより適切な方法は何かと考えていました。基本的に、2 つのオプションがあります。
Mercurial 2.1 にはlargefiles 拡張子がありますが、私はそれについてあまり知りません。「リポジトリの肥大化」の問題は解決するようですが、バイナリマージの競合の問題は解決しません。
バイナリ アセットを SVN チェックアウトにサブレポとして保持します。このようにして、編集のためにファイルをロックし、マージの競合を回避できますが、2 つのバージョン管理システム (特にあまり好きではないシステム) を使用する必要は避けたいと考えています。
私が思いもよらなかった洞察/アドバイス、またはその他のオプションはありますか?