問題タブ [tortoisehg]
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 で単一のリビジョンをチェリーピックするにはどうすればよいですか?
Mercurial/TortoiseHg で、次の例を考えると、リビジョン "G" を D、E、および F を使用せずにリポジトリ A にマージする最も簡単な方法は何ですか (G は D、E、または F に依存していないと仮定します)。
パッチは最善の策ですか?
file - TortoiseHGデータソースからのファイルの削除
Windowsのソースコード管理にTortoiseHGを使用していますが、「。hgignor」ファイルを編集するのを忘れました。今では、必要のないDLL、EXE、PDBファイルが原因であることがわかっている巨大なフォルダ「.hg」があります。彼ら。ignorファイルを変更しても、それらのファイルは削除されません。
TortoiseHgデータソースからこれらのファイルを完全に削除するにはどうすればよいですか?
version-control - TortoiseHG/Mercurialの.hgignoreファイルにいくつかのデフォルトを作成したい
新しいリポジトリを作成するたびに、デフォルトで特定のフィルターが.hgignoreファイルに自動的に追加されるようにしたいと思います。
たとえば、C#プロジェクトの場合、次のように追加します。
これは可能ですか?どのように?
自動化できない場合、.hgignoreファイルをあるリポジトリから別のリポジトリにコピーするのは少なくとも安全ですか?
python - Ubuntu 9.10 の Gnome に TortoiseHG をインストールしますか?
次のドキュメントを使用して、次の手順に従って Ubuntu 9.10 に TortoiseHG をインストールしました。
http://bitbucket.org/tortoisehg/stable/wiki/nautilus
~/.xsession-errors に次のエラーが表示されます
これを機能させる方法を知っている人はいますか?その間、コマンドラインを使用します。ありがとう。
visual-studio-2008 - Mercurial: Visual studio 2005 および 2008 ブランチの維持
Visual Studio 2005 と 2008 の別々のバージョンのライブラリを維持しながら、一方のブランチへの変更が常に他方のブランチにレプリケートされるようにするワークフローを開発しようとしています。
現時点では、変更はデフォルト (VS2005) ブランチに対してのみ行い、完了したら VS2008 ブランチにマージすることをお勧めします。残念ながら、これは、問題が見つかったときや危機に瀕しているときに問題を修正するだけでなく、それが難しい場合があるという規律に依存しています。これにより、あるブランチからの変更を後でデフォルトに戻すことを試みる必要が生じました。
VS2005 と VS2008 プロジェクトの間の変更をパッチ キューに保存できることはわかっていますが、コマンド ラインの使用に慣れているのはチーム内で私だけであり、同僚は Tortoise HG を使用してすべてを行うことを好みます。
そのため、私は事後の問題の修正に依存しています。私の現在の手順では、VS2008 ブランチのすべての変更セットのパッチをエクスポートし、それらをデフォルト ブランチに適用しています。これには時間がかかりますが、VS2008 ブランチのヒントをデフォルトのヒントとマージしてから、手動で VS2005 に戻すよりもエラーが発生しにくくなります。
この記事を読んで、「アップグレード」チェンジセットを取り消そうとしましたが、結果のバックアウトチェンジセットは常に VS2008 ブランチの新しいヒントとして終わります。さらに、変更をマージして元に戻すことはできません。 VS2008 ブランチでは、コミット時にブランチを明示的に閉じようとしても。
さまざまな方法でこれを試してみましたが、常に新しい VS2008 ブランチのヒントになり、変更をデフォルトのブランチにマージする方法がありません。そのため、ここで明らかな何かを見逃していることに気づき始めています。
結局のところ、プロジェクト ファイルとソリューション ファイルに埋め込まれた Visual Studio のバージョン番号だけが必要なライブラリの 2 つのバージョンを維持しようとするとき、他の人は何がベスト プラクティスだと感じるでしょうか?
編集:私が回避しようとしている問題は、VS2005 プロジェクトを VS2008 ソリューションに追加すると (デバッグを容易にするために)、VS2005 プロジェクトが VS2008 に自動的に「アップグレード」され、その結果、「変更された」作業コピーと飛散が発生することです。不要な「変換」ファイルの。したがって、人々がメインラインへの「アップグレード」をコミットしたくなるよりも、ブランチを別々に保ち、ユーザーがクローン後の最初の更新で必要なバージョンを選択するように要求することを好みます。
さらに編集して、解決策を示します。
さらにいじって、このワークフローを標準の TortoiseHg ツールで動作させる方法を見つけました。コマンド ラインの介入は、セットアップのみに必要でした。
まず、プロジェクトが VS2005 から VS2008 に変換された変更セットに更新しました。そのリビジョンをバックアウトし、バックアウトのパッチを作成し、バックアウトされた変更セットを削除しました (デフォルト ブランチにあったため)。次に、変換変更セットにバックアウト パッチを適用し (hg patch --no-commit patch を使用)、新しい「VS2005」ブランチ名でパッチをコミットしました。次に、(名前のない) VS2005 ブランチの先端にマージしました。
次のステップは、(変更されていない) VS2008 ブランチの古いヒントに更新し、重要でない変更を加えて、新しい「VS2008」ブランチとしてコミットすることでした。次に、VS2005 のヒントからの変更をマージしましたが、コミットしたときに、csproj ファイルへの変更をコミットできませんでした。次に、コミット後にこれらのファイルを元に戻しました。
最後に、VS2005 のヒントに更新し、VS2008 のヒントにマージしました。
これにより、VS2005 から VS2008 への変換による違いを除いて、同じコードを持つ 2 つのヒントが得られました。
新しいワークフロー:
- 必要に応じて、VS2005 または VS2008 ブランチで作業します。
- 1 つのブランチで更新が完了したら、他のブランチを更新し、変更されたブランチからの変更をマージして、独自のブランチにコミットします。次に、好みのブランチに更新します。
- 両方のブランチで同時に更新が発生する場合は、両方のブランチを別々に実行します。VS2005 のヒントに更新して VS2008 のヒントにマージしてから、VS2008 のヒントに更新して以前の (マージ前の) VS2005 のヒントにマージします。
authentication - TortoiseHg Web サーバーでユーザーを認証するには?
TortoiseHg Web サーバー構成には、変更のプッシュを許可するユーザーを配置する「プッシュを許可」パラメーターがあります。しかし、プッシュしようとすると、「認証に失敗しました」というエラーが表示されます。ユーザーはどのように認証されますか? パスワードはどこから取得されますか?
mercurial - TortoiseHgにパスワードを保存する
パスワードを保存するようにTortoiseHgを設定する方法はありますか?
TortoiseHgを使用してアクセスするGoogleCodeでホストされているプロジェクトがあります。Google Code TortoiseHgに変更をプッシュしたいときはいつでも、ユーザー名とパスワードの入力を求められます。Google Codeでは、自動生成されたパスワードを使用する必要があり、毎回パスワードを検索するのは非常に繰り返しになります。
mercurial - WinMerge を TortoiseHG Merge ツールとして使用する
TortoiseHG へのマージ ツールとして WinMerge をセットアップしようとしています。ここに私の Mercurial.ini があります:
Visual diff は完全に機能しますが、2 つのファイルをマージしようとすると、次のエラーが発生します。
どうすれば修正できますか?
version-control - Mercurial Subrepos - どのように作成し、どのように機能しますか?
状況
2 つの .NET ソリューション (Foo
およびBar
) と、ProjectA、ProjectB、および ProjectC を含む共通ライブラリがあります。Foo
およびBar
1 つ以上のライブラリ プロジェクトを参照していますが、ライブラリ プロジェクトがFoo
およびBar
ソリューション フォルダー内にありません。
ディレクトリ構造:
*残念ながら、私はまだ Windows XP を使用しています...
Mercurial サブリポジトリ
目標Foo
- サブリポジトリを設定して、参照されているライブラリ プロジェクトのソース コードを自分のリポジトリとリポジトリに保存できるようにしたいと考えていBar
ます。
このページ(文字通り、サブレポで見つけることができる唯一のドキュメントです) によると、サブレポを設定するには、DOS コンソール ウィンドウから次のコマンドを実行する必要があります。
質問
- バージョン 0.9.2 の時点で、これらの手順の一部またはすべてを TortoiseHG で実行できますか? はいの場合、どのように?1〜3行目はできると確信していますが、4〜7行目についてはわかりません。これはどれも TortoiseHG で文書化されていないようです。
- 上記のコードは何をしますか (行ごとの説明をいただければ幸いです)。私がそれを解読しようとしていたときに頭に浮かんだいくつかの具体的な質問を次に示します。
- 何をし
>
ますか?Mercurial のドキュメントで を検索してみまし>
たが、何も見つかりませんでした。 - 5行目、何が何だかわかりません
nested/foo
。どこfoo
から来たの?とはfoo
? リポジトリ?フォルダー? - 6 行目 - これには完全に困惑します。
- 7 行目で、 ?
.hgsub
に追加されていると仮定します。main
それとも追加されていnested
ますか?
- 何をし
- サブリポジトリがセットアップされ、
Bar
リポジトリがリビジョン 10 になったとします。作業ディレクトリをリビジョン 7 に更新しようとすると、ライブラリ フォルダー (My Documents/Development/Libraries/ProjectA
および.../Libraries/ProjectB
) がリビジョン 7 に保存されているものに更新されます。良い?
アップデート
コードの 8 行目を追加しました: ci -m "initial commit"
. これにより、(1) .hgsubstate ファイルがメイン リポジトリに追加され、(2) 新しいサブリポジトリを含むすべての変更がメイン リポジトリにコミットされます (「初期コミット」というメッセージが表示されます)。.hgsubstate ファイルの目的は、すべてのサブリポジトリの状態を追跡することです。そのため、以前のリビジョンに戻ると、すべてのサブリポジトリからも正しいリビジョンが取得されます。
更新 2 - いくつかの指示
さらに実験を重ねた結果、元の問題を解決するための手順を提供できるようになったと思います(主に Windows Explorer と TortoiseHG を使用)。
サブレポの作成
Libraries/ProjectA
、Libraries/ProjectB
、およびメイン リポジトリ (Projects/Foo/Solution
およびProjects/Bar/Solution
) は、個別のリポジトリである必要があります。- 開く
Projects/Foo/Solution
。 Libraries/ProjectA
からにクローンしProjects/Foo/Solution
ます。- リポジトリに追加
ProjectA
します。Foo
テキスト エディタを使用して
/li>.hgsub
、次の内容を含むというファイルを作成します。DOS コンソール ウィンドウを開き、次のコマンドを入力します(以下の注を参照)。
/li>の場合
/li>Bar
、手順は基本的に同じですが、.hgsub ファイルには次のように両方のプロジェクトのエントリが含まれている必要があります。
注: TortoiseHG 0.10 (3 月に予定) から、これを行うためにシェル コマンドを使用できるようになりますHG Commit
が、今のところ、コマンド ラインを使用する必要があります。
これがすべて設定されると、少し簡単になります。
変更のコミット-Foo
またはへの変更をコミットするには、サブリポジトリごとに操作をBar
実行しSynchronize/Pull
て、サブリポジトリをライブラリ プロジェクト リポジトリの最新のリビジョンと同期させます。次に、再度コマンドラインを使用して変更をコミットします (バージョン 0.10 までは、TortoiseHG を使用してコミットするだけです)。
作業ディレクトリを以前のリビジョンに更新する- これは TortoiseHG でかなり正常に動作するようで、DOS コマンドを使用する必要はないようです。Synchronize/Push
Visual Studio で以前のリビジョンを実際に操作するには、古いバージョンのライブラリ プロジェクトをLibraries/ProjectX
フォルダーに戻す操作を行う必要があります。
単純なタスクには TortoiseHG が好きですが、頻繁に使用されるサブリポジトリ操作 (特に更新) にはバッチ ファイルを作成する方がよいでしょう。
これが将来誰かに役立つことを願っています。間違いを見つけた場合は、お知らせください (または、編集できる場合は自由に編集してください)。