問題タブ [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.
mercurial - ウェブサイト フォルダーのみをデプロイするように Mercurial を構成する方法
クライアントの DEV および UAT 環境にデプロイしたい Web サイトがあります。このサイトは Mercurial リポジトリの一部です。.hg フォルダーと同じレベルの Website フォルダーにあります。リポジトリ全体をプッシュできることはわかっていますが、クライアントが他のファイルやフォルダーを持たないように、Web サイト フォルダーのみをプッシュしたいと考えています。
レポは次のようになります。
- プロジェクトルート
- .hg
- データベース(SQL ソース管理はこれを使用)
- ドキュメント(すべての仕様、PDF、アートワークなど)
- Lib (Nuget より前のサードパーティ dll)
- パッケージ(Nuget のもの)
- ウェブサイト (これは私が展開したい唯一の領域です)
- .hgignore
- プロジェクト.sln
編集: クライアント サーバーはインターネットに直接接続されていません。それらへのアクセスは VPN 経由で行われ、次に RDP 経由で行われます。現在、サイトを圧縮して共有 ftp サーバーに配置し、ファイルがサーバーにコピーされるまで最大 3 日間待つ必要がある変更をデプロイする必要があります。この接続で Mercurial を使用できるように、ルールが構成されています。
編集 2 Website フォルダーとそのすべての内容を忘れて、変更をコミットしてからファイルを元に戻し、レポを作成して .hgsub ファイルをエコーアウトすることで、Web サイトフォルダーからサブレポを作成できました。これはローカルで機能します。追加のフォルダーを取得せずに、Web サイトのリポジトリからクローンを作成できます。ただし、レポサーバーでプロセスを繰り返しても、このバージョンのレポを使用できませんでした。ホストされているバージョンをローカルの作業コピーに複製しようとすると、404 エラーが発生しますが、ホスティング サーバーでホストされているバージョンを複製できます。
私の目標を達成する方法について、いくつかの段階的な指示 (必要に応じてダミーのガイド) をいただければ幸いです。これにより、Web サイト フォルダーのみをクライアント サーバーにプッシュできるようになります。レポのマスター コピーはレポ サーバーにあります。ローカル クローンがあり、コピーからバージョンをプッシュできる必要があります。
編集3 http://mercurial.aragost.com/kick-start/en/subrepositories/#converting-folder-into-a-subrepositoryで 説明されているように、フォルダーをサブレポに変換していた問題は、 convert コマンドは、2.1.0 以降のバージョンでは壊れており、2.3.1 でも壊れています。それを理解してそのバージョンの TortoiseHg にロールバックした後、フォルダーをサブレポに変換することができました。レポのルートには、Website = Website という .hgsub があります。私はそれをローカルで操作し、レポ全体、サブレポにコミットし、完全なレポまたはサブレポのいずれかを複製することができました(これが私が望むものです)が、マスターレポサーバーからこれを機能させることはできません。
すべてを圧縮して、リモートのマスター リポジトリ サーバーに ftp で送信し、そこからクローンできるようにセットアップしました。サーバー上で直接これは正常に動作します (hg clone --verbose -- C:\Repositories\EM .)、ただし、サーバーからローカル開発マシンに (hg clone --verbose -- https:/ /myserver.com/hg/EM/ .) 「HTTP エラー: 404 (見つかりません)」で失敗します。
何が問題なのかわかりません。ファイルはそこにあるのに、なぜ 404 なのですか?
tortoisehg - --subrepos スイッチを使用するように TortoiseHg Workbench を設定するにはどうすればよいですか?
--subrepos
TortoiseHg Workbench を構成して、ステータスを確認するときに常にスイッチを提供する方法を知りたいです。コマンドラインで問題なくこれを行うことができます。この 1 つのリポジトリに対してのみこれを行う必要があります。これは、サブリポジトリを持つ唯一のリポジトリです。
- 根
- フォルダ 1
- フォルダ 2
- フォルダー 3 (これはサブレポです)
TortoiseHg Workbench で、ルート レベルにいて [コミット] タブを開いている場合、ファイル リストの更新アイコンを押すと、サブレポ以外のすべてのステータスが表示されます... 欲しいものではありません。そのサブレポに変更があることを知るために。
新しいファイルを除外しているコミットしても、それらが追加されたとは見なされません。変更はコミットされますが、新しいファイルはコミットされません。
mercurial - クローン/プル全体で Mercurial サブレポの再マッピングを保持する方法は?
将来変更される可能性のあるサブレポのパスを考慮して、Mercurial (2.1.1) でサブレポの再マッピングを設定しようとしています。ファイルで指定されている場合、[subpaths]
キーを読み取って適切に処理することができました。.hgrc
ただし、そのリポジトリからクローンまたはプルすると、.hgrc
ファイルがコピーされないため、サブリポジトリのリマップが宛先リポジトリに引き継がれません。
SubrepoRemappingPlanを見た後の最初の考えは、クローン/プルにコピーされることになって[subpaths]
いる.hg/subpaths
ファイルに配置することでした。ただし、この機能は廃止されており、サブパス ファイルはProjrc拡張機能を介したより一般的な構成共有メカニズムに置き換えられています。
ただし、Projrc ソリューションの問題点は次のとおりです。
これは、すべてのチーム メンバーがインストールして有効にする必要がある個別の拡張機能です。
セキュリティ上の理由から、Projrc にプルを許可する場所 (およびプルを許可するもの) を伝えるために、追加の構成を行う必要があります。
それで、私の質問は、クローン/プル間で保持されるサブレポマッピングを実装するための組み込みメカニズムが Mercurial にあるということですか?
version-control - 複数のプロジェクト間でコア コードベースを共有する
共通のコアを中心に構築されたいくつかの製品ラインがあり、現在、外部を使用して SVN でそれらを維持しています。mercurial に移行すると、hg sub-repositoriesを使用するように移行するのが自然です。
問題は、コアが非常に大きく (SVN リポジトリから判断すると、おそらく >GB)、典型的な開発者は、3 ~ 4 などの複数の製品で同時に作業したい場合があることです。
通常、開発者はコアを開発者ごとに 3 ~ 4 回レプリケートし、その履歴全体を保持することを意味するということを正しく理解できましたか? また、開発者が別の製品で簡単な操作を実行したい場合、コアがクライアントで既に利用可能であっても、コアを最初にプルする必要があります (数回...)?
version-control - Mercurial サブレポをフォルダーに置き換えるにはどうすればよいですか?
次の構造を持つ Mercurial リポジトリを使用しています。
.hgsub ファイルは、SubRepo を次のように宣言します。
サブレポを削除して、SubRepo というレポ内の実際のフォルダーに置き換える必要があったため、hg のドキュメントに記載されているとおりに .hgsub ファイルを削除してコミットしました。次に、自分のものを SubRepo に入れてコミットし、次のようにしました。
ダンディ。しかし、たとえば、まだ .hgsub ファイルがあるリポジトリから変更をプルしようとすると、問題が発生します。
サブリポジトリを置き換えるより良い方法はありますか? または、プルするオプションを使用するか、一時的に .hgsub を完全に削除するのではなく、新しいフォルダーを指すように変更するなど、この作業を改善するために私がすべき賢いことはありますか?
mercurial - Mercurial にコミットされていないサブレポの変更がある場合、「コミット」を中止するにはどうすればよいですか?
これは私には常に発生しているようです。私は親レポに取り組んでいます。サブレポでバグを見つけて修正しました。私は親レポの仕事を続けています。「機能 X を追加しました」のようなメッセージで親リポジトリをコミットします。押します。
この時点で、サブレポとはまったく関係のないコミット メッセージとともに、サブレポのバグ修正もコミットおよびプッシュされていることに気付きました。
サブレポにコミットされていない変更があることを指摘して、この状況で何もすることを拒否する「コミット」置換を自分自身にする最も簡単な方法は何ですか? .hgrc
あるいは、おそらく私の?に入れることができる設定があります。
mercurial - サブリポジトリへの内部 Vrs 外部パス
私は、mercurial によって制御されるアプリケーション A と、同じく mercurial によって制御されるライブラリ B のリポジトリを持っています。アプリケーション A のリポジトリには、パス中央リポジトリ パスssh://user@1.2.3.4/Bを使用してライブラリ B のリポジトリにマップされたサブリポジトリがあります。これは内部開発には十分に機能しますが、外部からアクセスする必要がありますが、ルーターのバルクとしてドメイン名を使用することはできません. サブリポジトリを次のように定義することは可能ですか:
mercurial - サブリポジトリを含む Mercurial リポジトリ ログ
私たちのビルド スクリプトでは、テンプレート化されたhg log
コマンドを使用して、特定のビルドの変更リストを取得します。これはうまく機能しますが、残念ながら、サブリポジトリの変更は含まれていません (10 個以上あります)。それらも含めたいのですが、そのようなコマンドはないようです。
次のようなスクリプトを書くことを考えています。
- 開始リビジョンで .hgsubstate ファイルを列挙します
- サブリポジトリとその開始リビジョンを見つけます
hg log
彼らのために走る- 結果をマージして日付順に並べ替えます。
他にもっと簡単な方法はありますか?多分私が行方不明のコマンドですか?
mercurial - すべてのサブリポジトリをプル/更新する方法はありますか?
組織で svn から mercurial に切り替える可能性を検討していますが、解決策が見つからないように見えるハングアップが 1 つあります。
それぞれを手動でプルして更新することなく、リポジトリとすべてのサブリポジトリをプルして更新する方法はありますか?
mercurial に切り替えたいのですが、それができないのであれば、私たちには無理です。
編集:今日は疲れているに違いない... SOに関する2つの質問について、質問してから数分後に答えが見つかりました...