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

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

mercurial - サブリポジトリ(外部)環境でのNuGet

Mercurialには、次の構造のリポジトリがいくつかあります。

  • 統合
  • 管理者
  • MyApp

リポジトリから、MyAppとを含めたいと思いCoreますIntegration

それらをサブリポジトリとしてに追加し、フォルダMyApp内に配置します。Externals

のフォルダ構造MyAppはおおまかに次のようになります。

MyApp
-BusinessLogic
-DataAccess
-Externals
-Core
-Integration
-Web
-packages

問題はpackagesフォルダに関係しています。私はすべてのソリューションでパッケージ復元を使用していますが、NuGetはすべてのパッケージを正常にダウンロードします。このフォルダーには、外部プロジェクトが依存するパッケージが含まれています。

唯一の問題は、packagesフォルダーCoreとの間の相対パスが間違っていることです。Integration

これを解決する方法はありますか?

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

mercurial - Mercurial リポジトリの無効化/非推奨 (ただし削除はしない)

私の同僚と私は、集中管理された (問題がある場合は ubuntu) サーバー上にあるいくつかのリポジトリを使用しています。私たちのいくつかのプロジェクトでは、同じ 4 つのリポジトリを多くの異なるプロジェクトのサブリポジトリとして含めています。これは、ネットワークを介してすべてを転送するのに時間がかかるなどの理由で、多くの異なるプロジェクトにわたって 4 つの異なるサブリポジトリを常にプッシュ/プル/マージしていると、少しイライラする可能性があります。

これら 4 つのリポジトリを 1 つのマスター リポジトリに結合して、今後のすべてのプロジェクトに含めることができるようにしたいと考えています。問題は、古いサブリポジトリを削除したくないということです。削除すると、正常に機能している既存のプロジェクトが壊れてしまうからです。

これらの古いリポジトリを非推奨として指定する方法、または少なくとも、私の同僚がこれらのリポジトリに新しい変更セットをプッシュして役立つエラー メッセージを表示することを不可能にする方法があれば、素晴らしいことです。これは、おそらくこの接線 Q/A が示唆するように水銀フックを使用して可能ですか?

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

mercurial - メインリポジトリでコミットせずにリモートサーバー上のサブリポジトリの変更を決定する

Mercurialリポジトリで階層構造を使用したいと思います。

構造

.hgsub

次に、私の同僚はsub1リポジトリのみを変更し、メインリポジトリはありません。
同僚が行った変更よりもsub1の変更をどのように判断できますか。メインリポジトリでコミットされていない場合、hgpullはこれらの変更を認識しません

または多分それは間違った構造であり、私は同僚にsub1のデータを含むメインリポジトリを提供しなければなりませんか?

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

version-control - サブリポジトリ内の社内ライブラリの追跡

私たちは、いくつかのプロジェクトが使用する予定の社内フレームワークを開発しています。アイデアは、フレームワーク全体を各プロジェクトのリポジトリの水銀サブリポジトリとして追跡することです。これにより、次のサブレポ ツリーが作成されました (シンシェルリポジトリを参照)。

  • これはあなたにとって意味がありますか?サブリポジトリを含まないこれらの依存関係を処理するためのより良い/より簡単な方法はありますか?
  • 具体的には、両方の CommonLib サブリポジトリを持つことは理にかなっていますか?
  • そうでない場合、Project が FrameworkMaster/CommonLib を使用することは理にかなっていますか? 依存関係がより複雑な場合、これは面倒になる可能性があります。
  • どこで機能ブランチを開きますか? マスターに?関連するサブリポジトリのみ?
    • マスターに機能ブランチがない場合、リポジトリを複製するたびに、最後のコミットのサブレポの状態を取得することになり、任意のサブレポが任意の機能ブランチに配置される可能性があります。非常に紛らわしいです。
    • マスターにフィーチャー ブランチがある場合でも、少なくとも 1 つのサブリポジトリにフィーチャー ブランチが必要です。

一般に、このソリューションは扱いにくいように思えます。助言がありますか?

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

mercurial - サブリポジトリを追加するまで更新することはできますか?

リポジトリにフォルダがあります。次に、このフォルダーを(まったく同じファイルを持つ)サブリポジトリーにし、この変更をコミットしてプッシュしました。今、私はそのコミットを介して更新することはできません。これが私が受け取るメッセージです:

subreposubrepoが現在存在するフォルダの名前はどこにありますか。これを打ち負かして以前のリビジョンに更新する方法はありますか?

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

mercurial - bitbucket と ToritoiseHg でサブリポジトリを使用する

TortoiseHg で次のようなサブリポジトリ構造を持っています。

MainFolder は bitbucket のプライベート リポジトリです SubFolder1 は bitbucket のプライベート リポジトリです SubFolder2 は bitbucket のプライベート リポジトリです

MainFolder 内のファイル .hgsub は次のようになります。

MainFolder 内のファイル .hgsubstat にも有効な GUID とサブリポジトリ名があります。

問題は、MainFolder の bitbucket にプッシュしようとするたびに、最初に MainFolder、次に SubFolder1 をプッシュしますが、SubFolder2 に到達すると、TortoiseHg は「中止: リポジトリは無関係です」というエラーをスローします。

Bitbucket で MainFolder リポジトリを確認すると、実際には SubFolder1 のコンテンツが含まれています (サブリポジトリとしてリストされているはずです)。

MainFolder が親リポジトリとして正しくアップロードされ、SubFolder1 と SubFolder2 が bitbucket のサブリポジトリとしてリストされるように、これを修正するにはどうすればよいですか?

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

version-control - Mercurial - サブレポ ヘッドのプッシュ

親レポ内からサブレポの必要なHEADSのみをプッシュするにはどうすればよいですか。

Mercurial のローカル機能ブランチにブックマーク スタイルのプロセスを使い始めました。これまでのところ、うまく機能します。コミットしてブックマークし、その頭の内外を切り替えるだけで機能します。hg push -r master-bookmarkメイン ヘッドのみをプッシュし、機能ブランチはプッシュしないように指定することで、プッシュとプルをうまく行うことができます。

問題は、サブレポでブックマークを使用して複数のヘッドを使用すると発生します。それは、サブレポのすべてhg push -r master-bookmarkのヘッドをプッシュしようとするため、単に使用できないことを意味するためです。準備が整うまでこれらのヘッドを公開したくありませんが、親内で他の変更を行う必要があるため、それらを強制するつもりはありません。

サブレポにドロップして必要なものをプッシュしようとしましたが、親は「.hgsubstate」の祖先にあるかどうかに関係なく、すべてをプッシュしようとします。

これに最適なワークフローの種類について何かアイデアはありますか? サブレポを無効にし、プッシュしてから再度有効にする必要はなく、非常に面倒です。

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

mercurial - ネストされたMercurialサブレポはそんなに悪いのですか?

Mercurial を調査してhttp://thread.gmane.org/gmane.comp.version-control.mercurial.devel/40107を読んだ後、ネストされたサブリポジトリの危険性について十分に警告されました。ただし、me​​rcurial を使用する必要があり、subrepos は便利なツールのようです。私の問題は、 Hg サブリポジトリの依存関係に似ています。私の基本的な問題は次のとおりです。多くのプロジェクトで使用されるユーティリティ リポジトリがあります。これらのプロジェクトの一部は、ユーティリティに依存しています。より大きなリポジトリの下にある 2 つのサブリポジトリではなく、メイン リポジトリの下にネストされたユーティリティ サブリポジトリを持つプロジェクト リポジトリを持つことは自然なことのようです。これにより、プロジェクトに異なるバージョンが必要な場合に、ユーティリティ サブレポの正しいバージョンを簡単に取得できます。

すべての警告にもかかわらず、サブリポジトリをネストすることが最善の解決策のように見えるため、サブリポジトリをネストすることによる問題を完全に理解しているかどうかはわかりません。

0 投票する
0 に答える
578 参照

mercurial - 「変更がコミットされていないためマージできません」を回避するためのサブリポジトリの Mercurial ワークフロー

サブリポジトリ (「内部」) を持つ Mercurial リポジトリ (「外部」) を操作する場合、多くの場合、外部でマージしようとしても「コミットされていない変更」が原因で失敗するという問題が発生する可能性があります。明らかな変化がない場合(hg st外側は変化がないため)。

問題はサブリポジトリの状態にあります。.hgsubstateファイルには、実際にはサブリポジトリの作業コピーの変更セットとは異なるサブリポジトリの変更セット ID が含まれています (または、自明なことですが、サブリポジトリにコミットされていない変更があります)。

発生した場合は修正できますが、この問題を常に回避するプルとマージの Mercurial ワークフローを推奨できる人はいますか? テストリポジトリなどで遊んで解決できますが、誰かが私や他の人がすでに知っていれば、時間を節約できるかもしれません。

これは 1 人だけではなく小さなチーム向けであるため、ワークフローはシンプルであるほど良いです。

問題の例:

更新 - .hgsubstate の動作に関するメモ

ファイルを更新する唯一の 2 つのアクション.hgsubstate(コマンド ラインを使用する場合) は次のとおりです。

  1. 外側のプロジェクトのバージョンを取得すると、チェックインされた .hgsubstate がすべて取得されます (明らかに)

  2. 外部プロジェクトをコミットする.hgsubstateと、内部プロジェクトの現在の親変更セットに更新されます

サブレポを更新しても外側のプロジェクトに変更を加えない場合、外側のプロジェクトには変更が表示されませんhg statusただし、を実行するhg status -Sと、サブリポジトリ (および外部プロジェクト) のファイル ステータスが取得されます。表示されるサブリポジトリのファイル ステータスは、次のものが混在しています。

a)サブレポ内のファイルに対するコミットされていない作業コピーの変更

b)の変更セット ID よりも新しいサブレポへのコミットされた変更.hgsubstate

外部プロジェクトをコミットしようとすると、hg st変更が表示されなくても、サブレポに実際に新しいヒント変更セットがある場合は、.hgsubstate ファイルの更新されたバージョンをコミットできます。したがって、重要な戦略はhg st -S、作業コピーの変更や で指定された ID よりも新しい変更セットなど、サブレポに保留中のものがあるかどうかを示す whichを使用すること.hgsubstateです。

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

git - Mercurial サブリポジトリで特定の (git) ブランチを使用する

jQuery-File-Upload を使用したい Mercurial プロジェクトがあります。.hgsubこのプラグインのサブレポを作成するために、ファイルに以下を追加しました。

私が抱えている問題はjquery-ui、プロジェクトのこの git リポジトリのブランチで使用する必要があることです。

hgサブレポとしてプルするgitレポのブランチ名を指定する方法はありますか?