by
Changes to 71 files · Browse files at bb57b13e5efc Showing diff from parent 071ea4834dc4 d3d32fce6f9c Diff from another changeset...
@@ -20,6 +20,9 @@ :guilabel:`クローン先`
クローン先のディレクトリを指定してください。このディレクトリにクローン元と同じ名前の
ディレクトリが作成されます。
+
+:guilabel:`詳細設定` には以下の設定項目が含まれています:
+
:guilabel:`リビジョン指定`
ここで指定したリビジョンまでクローンするよう制限できます。
指定したリビジョン以降のタグであればインポートされます。
|
@@ -8,20 +8,6 @@ ここにまとめておきます。
-ウィンドウ位置・サイズなどの復元
---------------------------------
-
-コミット、チェンジログ、リポジトリ検索といった TortoiseHg の主要ダイアログは最後に
-起動したときの位置やサイズが復元されます。
-これにはウィンドウが最大化されていたかどうかも含まれます。
-
-復元された位置やサイズが現在のディスプレイのサイズに合わない場合はデフォルトの
-ダイアログ状態に戻されます。
-
-サイズ固定のダイアログや一時的に表示されるダイアログは好みの位置に
-置くことができます。
-
-
キーボードショートカット
------------------------
@@ -41,7 +27,7 @@:kbd:`Ctrl-Enter`
アクティベーションします
-:kbd:`F5`
+:kbd:`F5`, :kbd:`Ctrl-R`
最新の状態に更新します
`Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_ では
@@ -108,7 +94,7 @@チェンジログビューアのグラフ表示パネル、リポジトリ検索ツールのコメントパネルなど
多くの TortoiseHg ダイアログでツリービューを利用しています。
-多くの TortoiseHg 0.8 以降のツリービューではインクリメンタル検索が可能です。
+TortoiseHg のツリービューの大部分はインクリメンタル検索が可能です。
どれか行を1つ選択するなどして、ツリービューがフォーカスされている状態で
検索キーワードの入力を始めてください。入力した検索キーワードを含む小さな
テキスボックスが表示されて、ツリービューは最初にマッチした行にジャンプします。
|
@@ -61,7 +61,8 @@ このリビジョンのファイルをコメントタブで開きます
:guilabel:`履歴の表示`
チェンジログビューアでこのファイルのリビジョン履歴を表示します
-
+ :guilabel:`ファイルの表示`
+ そのファイルをあらかじめ設定された GUI エディタで開きます
コメントタブ
------------
@@ -93,11 +94,14 @@^^^^^^^^^^^^^^
コメント情報のデータはコードの各行が作成された初期チェンジセットを探し出すために
-自動的にコピーや名前変更の履歴をさかのぼって収集されます。一方で、リビジョングラフは
+自動的にコピーや名前変更の履歴をさかのぼって収集されます。
+
+一方で、リビジョングラフは
自動的に名前変更やコピーをたどりません。その代わり、リビジョン一覧の名前変更またはコピーを
含むチェンジセット行をクリックすると、その履歴をたどったグラフを表示するためのボタンが
表示されます。そのボタンを押すと同じチェンジセットの古いファイル名でコメントタブが開きます。
-
+リビジョングラフも同様に名前変更とコピーをたどって表示されるため、異なるファイル名を含む
+チェンジセット同士が接続される場合があります。その場合はグラフの色が変化します。
オプション設定
^^^^^^^^^^^^^^
|
@@ -75,13 +75,6 @@ 選択してください。表示された設定ダイアログで各コマンドを個別にトップレベルの
メニューとして表示できます。
-これは名前変更・移動ダイアログです:
-
-.. figure:: figures/rename.png
- :alt: 名前変更ダイアログ
-
- 名前変更 (または移動) ダイアログ
-
Nautilus
--------
|
|
|
@@ -11,23 +11,23 @@
*Windows 向けの TortoiseHg インストーラには何が含まれていますか?*
- Mercurial、kdiff3、TortoisePlink、そして拡張機能として forest も同梱しています。
-
`Mercurial <http://mercurial.selenic.com/wiki/>`_,
`kdiff3 <http://kdiff3.sourceforge.net/>`_,
`TortoisePlink <http://www.chiark.greenend.org.uk/%7Esgtatham/putty/>`_,
- そして拡張機能の hgfold 同梱しています。
+ に加えて拡張機能の hgfold と hgcr-gui を同梱しています。
*エクスプローラの右クリックメニューは英語のままなの?*
- 公式 Wiki の `ダウンロード <http://bitbucket.org/kuy/thg-ja/wiki/install>`_
- ページから翻訳ファイルを入手できます。
+ 右クリックメニューの翻訳ファイルは TortoiseHg のインストールディレクトリ
+ :file:`C:\\Program Files\\TortoiseHg\\cmenu_i18n` にあります。
+ 使用したい言語の Windows レジストリファイルをダブルクリックして、
+ 表示される確認ダイアログの指示に従ってインストールしてください。
-*バージョン 0.8 でマージや任意のリビジョンへの更新はどうやるの?*
+*マージや任意のリビジョンへの更新はどうやるの?*
- バージョン 0.8 ではチェンジログツールからマージや更新を行うようになりました。
- チェンジログツールはエクスプローラの右クリックメニューの :guilabel:`ログの表示`
- から起動できます。
+ チェンジログツールからマージや特定リビジョンへの更新が行えます。
+ エクスプローラの右クリックメニューの :guilabel:`ログの表示`
+ から起動してください。
*'failed to import extension hgext.hgconfig...' という警告メッセージはどうすれば消えるの?*
@@ -43,30 +43,9 @@ `SSH 接続 <http://bitbucket.org/kuy/thg-ja/wiki/ssh>`_ ページも参考に
してみてください。
-*バージョン 0.7 以降の TortoiseHg で Qct を使うことはできますか?*
+*TortoiseHg で Qct を使うことはできますか?*
- Qct を使う前に是非 TortoiseHg 標準のコミットツールを試して欲しいところですが、
- どうしてもという方もいますので方法を載せておきます:
-
- 1. `Qct-1.7-standalone-win32.exe <http://qct.sourceforge.net>`_ を
- ダウンロードしてインストールします
- 2. ホームディレクトリの :file:`Mercurial.ini` ファイルに以下の設定を追加します: ::
-
- [extensions]
- qct = C:\path\to\qct.py
-
- [tortoisehg]
- extcommit = qct
-
- [qct]
- path = "C:\Program Files\qct\qct.exe"
-
- これで :guilabel:`HG コミット` を実行したとき Qct が起動し、
- コマンドラインからは :command:`hg qct` が使用可能になります。
- :command:`hgtk ci` を実行しても Qct が起動します。
-
- バージョン 0.9 では Qct の起動ができなくなります。
- それと同時に外部コミットツールの設定も廃止されます。
+ 申し訳ありませんが、外部コミットツールのオプションはバージョン 0.9 で廃止されました。
*TortoiseHg で hgk (hg view) を使うことはできますか?*
@@ -123,27 +102,15 @@ :guilabel:`adiff` という項目が追加されているので、それを選択して :guilabel:`適用`
ボタンを押してダイアログを閉じてください。
-*TortoiseHg は Windows Vista で動作しますか?*
-
- TortoiseHg 0.8 以降は Windows Vista / 7 の 32ビット・64ビット版共に動作します。
-
-*64ビット版 Windows Vista で右クリックメニューを有効にするにはどうすればいいですか?*
-
- TortoiseHg 0.8 以降のバージョンにアップグレードしてください。
-
*シェル拡張を無効にする方法は? (アイコンオーバーレイと右クリックメニュー)*
- TortoiseHg 0.8 以降を使用している場合、アイコンオーバーレイはトレイアイコンを
- クリックして表示されるメニューにある :guilabel:`オプション` から起動できる
- タスクバーダイアログで無効にできます。右クリックメニューを無効にする唯一の方法は
- TortoiseHg のインストールディレクトリにある :file:`ThgShell.dll` ファイルの
- 名前を変更してエクスプローラを再起動します (シェル拡張を完全に無効化)。
-
- 古い TortoiseHg を使っている場合はコマンドプロンプトから
- :command:`regsvr32 /u "C:\\Program Files\\TortoiseHg\\tortoisehg.dll`
- を実行してください (管理者権限が必要)。 :command:`/u` を外して実行することで
- 再びシェル拡張を有効化することができます。どちらも Windows を再起動するまで
- 反映されません。
+ アイコンオーバーレイを無効化するにはトレイアイコンをクリックして表示される
+ メニューにある :guilabel:`オプション` から起動できるタスクバーダイアログで
+ 無効にできます。右クリックメニューを非表示にするには TortoiseHg
+ インストールディレクトリにある :file:`ThgShell.dll` ファイルの名前を変更して
+ エクスプローラを再起動します。しかしこの方法は右クリックメニューだけでなく、
+ アイコンオーバーレイも同時に無効化されます。現在、右クリックメニューのみを
+ 無効化する簡単な方法はありません。
*TortoiseHg はどこに設定を保存しているの?*
@@ -155,23 +122,17 @@ 3. リポジトリ設定: :file:`{repo-root}\.hg` にある :file:`hgrc` ファイル
2. ダイアログの位置や状態などを保存している :file:`%APPDATA%\\Tortoisehg`
- 以下は Mercurial の設定システムに保存される項目です: ::
+ 以下は Mercurial の設定システムに保存される設定項目です: ::
[tortoisehg]
- extcommit = None
vdiff = vdiff
editor = gvim
tabwidth = 4
longsummary = True
- copyhash = False
graphlimit = 500
authorcolor = True
authorcolor.steve = blue
- 詳細については :doc:`settings` や
- `issue #50 <http://bitbucket.org/tortoisehg/stable/issue/50/>`_
- をご覧ください。
-
*フォントの変更はできますか?*
一部可能です。 TortoiseHg の各種ダイアログ (コミット、変更点の表示、
@@ -185,18 +146,12 @@ # font used in file lists in status and commit tools
fontlist = courier 9
- # make the integrated diff window appear at the bottom or side
- # (applies to commit and status dialogs)
- diffbottom = False
-
*GTK のテーマを変更するにはどうすればいいの?*
バージョン 0.7 ではインストール時に選択可能です。それ以降のバージョン
(またはバージョン 0.7 がインストール済み) の場合は手動で変更できます:
- * :file:`C:\\Program Files\\TortoiseHg\\share\\themes` を開きます
- (バージョン 0.8 以降は
- :file:`C:\\Program Files\\TortoiseHg\\gtk\\share\\themes`)
+ * :file:`C:\\Program Files\\TortoiseHg\\gtk\\share\\themes` を開きます
* :file:`themes` ディレクトリにあるテーマ名を覚えるか開いたままにします
* :file:`C:\\Program Files\\TortoiseHg\\etc\\gtk-2.0` を開きます
(バージョン 0.8 以降は
@@ -207,7 +162,7 @@ (表示されるセキュリティ警告のダイアログは全て「はい」を選択)
* 変更は次に TortoiseHg を起動したときから反映されます
- 同梱されていないテーマでもそれをダウンロードして :file:`share\\themes`
+ 同梱されていないテーマでもそれをダウンロードして :file:`gtk\\share\\themes`
ディレクトリにコピーすれば、 :file:`gtkrc` ファイルでそのテーマを設定可能です。
*アンインストールしても大量の DLL や PYD の拡張子のファイルが残ってしまう*
@@ -226,6 +181,8 @@ Mercurial のメーリングリストや IRC (irc.freenode.net の #mercurial)
に尋ねてみてください。
+ もしくは hgsubversion 拡張機能を使うという方法もあります。
+
*Windows の TortoiseHg はどこの Python モジュールを参照しているの?*
TortoiseHg は Python の実行に必要な環境を DLL の形で同梱しています。
@@ -249,8 +206,8 @@
*ダイアログのぎこちないフォント描画を直すにはどうすればいいの?*
- バージョン 0.8 から複数の GTK+ テーマを同梱せず、デフォルトのテーマを
- MS-Windows に変更しました。その結果、MS-Windows テーマが原因で
+ バージョン 0.8 以降では複数の GTK+ テーマを同梱せず、デフォルトのテーマとして
+ MS-Windows のみを同梱しています。その結果、MS-Windows テーマが原因で
フォント描画がおかしくなる場合があります。これを直すには以下の設定を
TortoiseHg の :file:`gtkrc` ファイルに追加してください: ::
|
|
|
@@ -31,9 +31,9 @@ このディレクトリで Mercurial は全てのバージョン情報を保持しています。
.. warning::
- :file:`.hg` ディレクトリ内のファイルには一切触れないでください。
- リポジトリの破損を招きます。
-
+ :file:`.hg` ディレクトリ内のファイルを編集するのは非常に危険です。
+ リポジトリの破損を招きます。ただし :file:`.hg/hgrc` のみ例外的に
+ 編集が認められています。
コマンドラインからの実行
------------------------
|
@@ -51,16 +51,11 @@ インストーラは最初に古いバージョンをアンインストールするよう促します。
アンインストールは通常のソフトウェアと同様に、スタートメニューから
コントロールパネルを開き、その中の「プログラムの追加と削除」から可能です。
- 必須ではありませんが、もし TortoiseOverlays を利用するプログラムが他に
- ないのであれば、こちらもアンインストールしておくことをお奨めします。
- それにより最新の TortoiseOverlays がインストールされます。
.. note::
バージョン 0.8 以降の TortoiseHg がインストールされている場合、
- インストーラを起動する前に全ての ThgTaskBar アプリケーション
- (:file:`thgtaskbar.exe`) を終了しておく必要があります。タスクトレイの
- 通知領域に表示されている Mercurial のアイコンを右クリックしてメニューを
- 開き、 :guilabel:`Exit` をクリックすれば終了できます。
+ インストーラは新しいファイルをコピーするときに ThgTaskbar アプリケーションを
+ 終了します。
言語設定
^^^^^^^^
@@ -68,34 +63,33 @@TortoiseHg のユーザインターフェイスは様々な言語に翻訳されています。
利用可能な全ての言語はインストーラに含まれているため、別途言語パックを
ダウンロードする必要はありません。
-:file:`C:\\Program Files\\TortoiseHg\\locale` で利用可能な言語が見られます。
-言語を有効にするには環境変数 ``LANGUAGE`` に好きな言語コードを設定するだけです。
+:file:`C:\\Program Files\\TortoiseHg\\locale` に利用可能な言語が
+用意されています。環境変数 ``LANGUAGE`` に言語コードを設定するだけで
+その言語が利用可能になります。
例えば日本語であれば ``set LANGUAGE=ja`` を設定してください。
.. note::
- ``LANGUAGE`` を設定しても :guilabel:`OK` や :guilabel:`Apply` というように
+ ``LANGUAGE`` を設定しても :guilabel:`OK` や :guilabel:`Apply` のような
GTK+ 標準のダイアログボタンのラベルが英語のままになっている場合、TortoiseHg
のインストーラがその言語の GTK+ 翻訳ファイルを含んでいないことを意味します。
これはリリース時にご利用の言語の TortoiseHg 翻訳が完了していなかったためです。
-Windows シェル拡張の右クリックメニューはその翻訳を Windows レジストリから
-取得します。すでに多くの言語向けに翻訳されており、それらは TortoiseHg の
-`ダウンロードページ <http://bitbucket.org/kuy/thg-ja/wiki/install>`_
-から利用可能な言語を確認できます。レジストリファイルをダウンロードしたら
-ダブルクリックしてインストールしてください。ダウンロードしたファイルの拡張子が
-:file:`.txt` になっていたら :file:`.reg` に直しておく必要があります。
+Windows シェル拡張の右クリックメニューはその翻訳文字列を Windows のレジストリ
+から取得しています。すでに多くの言語向けに翻訳されており、それらは
+:file:`C:\\Program Files\\TortoiseHg\\cmenu_i18n` にインストールされています。
+使用したい言語のレジストリファイルをダブルクリックすると確認ダイアログが出ますので、
+指示に従ってインストールしてください。
Linux または Max OS の場合
--------------------------
-Fedora 向けの RPM パッケージは
-`ダウンロード <http://bitbucket.org/tortoisehg/stable/downloads/>`_ ページに
-用意されています。
+Debian の DEB パッケージまたは Fedora 向けの RPM パッケージは
+`ダウンロード <http://bitbucket.org/tortoisehg/stable/wiki/download/>`_
+ページに用意されています。
Ubuntu 向けの Deb パッケージは
-`ここ <https://launchpad.net/~maxb/+archive/ppa>`_ 、もしくは
-`こちら <https://launchpad.net/~tortoisehg-ppa>`_ から入手できます。
+`ここ <https://launchpad.net/~tortoisehg-ppa>`_ から入手できます。
Max OS X 向けのパッケージは用意されていませんが、ソースコードから
インストールすることで hgtk スクリプトを含む全ての TortoiseHg ダイアログが
|
@@ -13,7 +13,7 @@ 書かれました。TortoiseHg は Windows のシェル拡張として提供されるため、
ユーザは普段使っている Windows エクスプローラから利用することができます。
-本書の最新版は `公式サイト <http://bitbucket.org/tortoisehg/stable/downloads>`_
+本書の最新版は `公式サイト <http://bitbucket.org/tortoisehg/stable>`_
からダウンロード可能です。
本書の読み方
@@ -67,6 +67,9 @@翻訳者、利用者コミュニティ、そして特に貴重なバグレポートおよび機能要望に
協力していただいた利用者に感謝の意を表します。
+TortoiseHg の Windows 向けインストーラには `TortoiseSVN <http://tortoisesvn.net>`_
+プロジェクトによる TortoiseOverlays ハンドラが含まれています。
+
表記規則
========
|
@@ -53,6 +53,14 @@ Mercurial 内蔵のウェブサーバを利用した場合はスパム対策のためメールアドレス
の一部のみ表示されます。
+もし Windows 向けのインストーラを使用しないでインストールした場合、GUI
+の差分表示ツールを設定しておく必要があります。 :command:`hgtk userconfig`
+を実行してグローバル設定ダイアログを表示して TortoiseHg タブを開くと
+:guilabel:`GUI 差分表示コマンド` という設定項目があるはずです。
+これのドロップダウンリストに選択肢がない場合は、事前に Mercurial の ExtDiff
+拡張機能を有効にし、ツールを設定しておく必要があります。それらの設定は
+グローバル設定ダイアログを再起動すると反映されます。
+
リポジトリの初期化
==================
@@ -93,10 +101,9 @@なのかを指定します。これにはいくつものやり方があります:
1. エクスプローラで追加したいファイルを右クリックしてメニューを開いて
- :menuselection:`TortoiseHg --> 追加` を選択します。
- この操作はすぐに実行され、TortoiseHg のダイアログは表示されませんが、
- エクスプローラでそのファイルのアイコンオーバーレイが追加されたことを示す
- アイコンに変わったことを確認できます。
+ :menuselection:`TortoiseHg --> 追加...` を選択します。
+ するとファイル追加を確認するダイアログが表示され、それで問題なければ
+ :guilabel:`追加` ボタンを押してください。
2. もしくは、ステータスツール (:menuselection:`TortoiseHg --> 変更点の確認`
またはコマンドラインから :command:`hgtk status`) を開いて追加したいファイルの
@@ -155,12 +162,10 @@
これであなたの成果を共有するための準備が整いました。あとはこのリポジトリを
他のメンバからも参照できる共用スペースにコピーするだけでOKです。
-Mercurial ではこれを *リポジトリのクローン (cloning your repository)* と
-呼んでいます。リポジトリを共用スペース、例えば共有ドライブ、またウェブサイト
-などにクローンすれば、それが開発チームのマージポイントになるでしょう。
-エクスプローラで共有ドライブに置いたリポジトリを開き、そのディレクトリの
-右クリックメニューから :menuselection:`TortoiseHg --> リポジトリのクローン`
-を選ぶか、コマンドラインから :command:`hgtk clone` を実行します。
+Mercurial ではこのコピー操作を *リポジトリのクローン (cloning your repository)*
+と呼んでいます。リポジトリを共有ドライブにするには右クリックメニューから
+:menuselection:`TortoiseHg --> リポジトリのクローン` を選択するか、
+コマンドラインから :command:`hgtk clone` を実行します。
.. figure:: figures/share.png
:alt: クローンダイアログ
@@ -210,6 +215,10 @@手っ取り早い方法はコミットツールを使うことです:
.. {{images/image001.png}}
+.. figure:: figures/overlayicons.png
+ :alt: アイコンオーバーレイ
+
+ Windows Vista でのアイコンオーバーレイ表示
コミットツールは変更の差分を表示してくれます。もしくは普段使用している GUI の
差分表示ツール (kdiff など) を使用することもできます。 Mercurial のリポジトリは
@@ -218,12 +227,11 @@
変更を共有リポジトリに公開する準備が整ったら、
-1. まだ変更をローカルリポジトリにコミットしていないのであれば、
- 先にそれを済ませます (前述)。
+1. ローカルのリポジトリに変更点をコミットします (前述)。
2. 共有リポジトリから変更をローカルリポジトリにプル (pull) します:
- 右クリックメニューから :menuselection:`TortoiseHg --> 同期ツール` または
- コマンドラインから :command:`hgtk synch` を実行し、共有リポジトリの場所を
- 選択してからツールバーの :guilabel:`プル` ボタンを押します。
+ 右クリックメニューから :menuselection:`TortoiseHg --> ログの表示` または
+ コマンドラインから :command:`hgtk log` を実行し、共有リポジトリの場所を
+ 同期バーで選択して、ツールバーの :guilabel:`プル` ボタンを押します。
3. いくつかのチェンジセットがプルされた場合、それらの変更とローカルでの変更を
マージして、マージ結果をローカルリポジトリにコミットしてください。
チェンジログビューアから (:menuselection:`TortoiseHg --> ログの表示`
@@ -233,20 +241,16 @@ してください。
4. マージが正しく行われたかどうかテストなどで検証してください。
5. 変更を共有リポジトリにプッシュ (push) するために、
- :menuselection:`TortoiseHg --> 同期ツール` または :command:`hgtk synch`
+ :menuselection:`TortoiseHg --> ログの表示` または :command:`hgtk log`
で同期ダイアログを開き、共有リポジトリの場所を選択してから
:guilabel:`プッシュ` ボタンを押します。
-文章にすると複雑に見えますが、実際には同期ツールのボタンを押すだけです。
+文章にすると複雑に見えますが、実際にはコミットしてチェンジログビューアのボタンを
+押すだけです。
.. note::
マージ作業に失敗したとしても安全に最初からマージ作業を始めることが可能です。
-.. figure:: figures/synchronize.png
- :alt: 同期ダイアログ
-
- 同期ダイアログ
-
Mercurial は共同作業を簡単に、素早く、効率的にします。
詳しくは Mercurial の `wiki <http://mercurial.selenic.com/wiki/>`_
をご覧ください。
|
|
@@ -34,19 +34,20 @@ 方が良いでしょう。TortoiseHg 設定ダイアログもこれに従い、次の2つのファイルにのみ
変更を行います:
-Global
+グローバル
ユーザ設定ファイル :file:`Mercurial.ini` または :file:`hgrc` を編集します
-Repository
+リポジトリ
リポジトリ設定ファイル :file:`.hg/hgrc` を編集します
-TortoiseHg バージョン 0.8 からはこの2つのファイルをダイアログ上部のコンボボックスから
-切り替えることができます。
+どちらの設定ファイルを編集するかはダイアログ上部のコンボボックスから切り替える
+ことができます。さらにあらかじめ設定されている GUI エディタで直接編集をすること
+もできます。
-リポジトリ設定ファイルは他の設定ファイルより優先されるためどんな設定でも記述できますが、
-多くの TortoiseHg ユーザは全ての設定をユーザ設定ファイルにまとめて保存しておき、
-リポジトリ設定ファイルにはリポジトリパスのエイリアスや、ウェブサーバ設定など
-のみ保存するでしょう。共通にすることの多いユーザ名であっても、リポジトリごとに異なる
-ユーザ名を設定可能です。ユーザおよびリポジトリ設定ファイルは自分で作成するか、
+これら2種類の設定ファイルの使い分けについては、リポジトリ設定ファイルは
+他の設定ファイルより優先されるため、全てのリポジトリに共通する設定を
+ユーザ設定ファイルにまとめて保存しておき、リポジトリ設定ファイルには
+リポジトリパスのエイリアスや、ウェブサーバ設定といったリポジトリ固有の設定を
+保存する、といった感じになります。ユーザおよびリポジトリ設定ファイルは自分で作成するか、
初めて設定ダイアログを開くまで存在しませんので注意してください。
@@ -112,6 +113,23 @@ 差分表示パネルをステータス・シェルフ・コミットダイアログのファイル一覧の下に配置します。
デフォルト:False (ファイル一覧の右側に表示)。
+:guilabel:`標準エラーの補足:`
+ 標準エラー出力の実行時エラーを補足して表示します。デフォルト:True。
+
+:guilabel:`ダイアログプロセス生成:`
+ hgtk をコマンドラインから起動したとき、ダイアログ用のバックグラウンドプロセスを
+ 生成するかどうかを設定します。デフォルト:True。
+
+:guilabel:`タイトルの絶対パス表示:`
+ 各種ダイアログのタイトルにリポジトリのディレクトリ名のかわりにフルパスを
+ 表示します。デフォルト:False。
+
+:guilabel:`スペルチェック言語:`
+ スペルチェックに使用するデフォルトの言語を指定します。指定されなかった場合は
+ システム既定の言語が使用されます。例:en, en_GB, en_US。
+ スペルチェックには gtkspell が必要になるため、 GNOME デスクトップを
+ 採用している環境でのみ使用可能です。
+
.. module:: commit.settings
:synopsis: コミットダイアログに関する設定
@@ -122,10 +140,6 @@:guilabel:`ユーザ名:`
コミット時に使用する名前。
-:guilabel:`外部コミットツール:`
- TortoiseHg から起動するコミットツール。現在、Qct は同梱されていません。
- デフォルト:なし (TortoiseHg のコミットツールを起動)。 [DEPRECATED]
-
:guilabel:`要約行最大文字数:`
コミットログ最初の行 (要約行) の最大文字数。これが設定された場合、
要約行が長すぎる、もしくは要約行とそれ以降のログが空行で区切られていないときに
@@ -136,6 +150,18 @@ 設定文字数を上回っていると警告が表示され、その文字数で強制的に折り返すための
ポップアップメニューが表示されます。デフォルト:0 (制限しません)。
+:guilabel:`コミット後にプッシュ:`
+ True にすることで *コミット後にプッシュ* チェックボックス の初期値として
+ 使用されます。デフォルト:False。
+
+:guilabel:`自動コミットリスト:`
+ コミットに自動的に含めたいファイルをカンマ区切りで指定します。
+ 通常はグローバル設定ではなくリポジトリ設定で使用します。デフォルト:指定無し。
+
+:guilabel:`自動除外リスト:`
+ ステータス、コミット、シェルフツールにおいて自動的にチェックを外したい
+ ファイルをカンマ区切りで指定します。デフォルト:指定無し。
+
.. module:: changelog.settings
:synopsis: チェンジログの表示に関する設定
@@ -157,7 +183,23 @@
:guilabel:`ハッシュ値のコピー:`
チェンジログビューアでそのとき選択しているチェンジセットのチェンジセット ID
- をクリップボードにコピーできるようにします。デフォルト:False。
+ をクリップボードにコピーできるようにします。廃止予定。デフォルト:False。
+
+:guilabel:`削除済みブランチ:`
+ リポジトリでブランチ名一覧を作成する際に無視するブランチ名をカンマ区切りで指定。
+ デフォルト:指定無し。
+
+:guilabel:`ブランチの色:`
+ ブランチ名とその色を "branch:#XXXXXX" の形式で空白文字区切りで指定。
+ ブランチ名に含まれる空白文字とコロン(":")はバックスラッシュ("\")で
+ エスケープする必要があります。同様に他の文字についても、例えば "\u0040"
+ はアットマーク("@")にデコードされ、"\n" は改行になります。
+ デフォルト:指定無し。
+
+:guilabel:`非表示タグ:`
+ 非表示にしたいタグ名を空白区切りで指定。便利な使用例:"qbase qparent qtip"
+ を設定することで MQ 拡張機能が使用するタグを隠すことができます。
+ デフォルト:指定無し。
.. module:: synchronize.settings
@@ -313,6 +355,10 @@差分
----
+:guilabel:`パッチ改行文字:`
+ パッチファイルの改行文字を LF または CR+LF に正規化します。
+ Strict の場合は正規化されません。デフォルト:Strict。
+
:guilabel:`Git 拡張形式:`
GIT の拡張差分ヘッダ形式を使用します。デフォルト:False。
@@ -332,6 +378,14 @@ 比較時に空行の有無を無視します。デフォルト:False。
+キーボードショートカット
+========================
+
+:kbd:`Ctrl-Enter`
+ 変更を保存してダイアログを閉じます。これは :guilabel:`OK` ボタンを
+ 押したときと同じ動作になります。
+
+
コマンドラインからの実行
========================
|
@@ -22,13 +22,12 @@
ツールバーボタンを左から順に見ていきます:
- :guilabel:`再読み込み`
- 作業ディレクトリの状態を再読み込みします。
- 再読み込み後もチェックボックスの選択状態は保たれます。
- :guilabel:`シェルフ`
+ :guilabel:`シェルフ`
チェックされたファイルの選択されたハンクをシェルフします。
:guilabel:`シェルフから戻す`
シェルフされた変更点を作業ディレクトリに戻します。
+ :guilabel:`差分`
+ チェックの入っているファイルの GUI 差分を表示します。
:guilabel:`元に戻す`
チェックされているファイルを変更を加える前の状態に戻します。
その変更がマージの場合はどちらの親リビジョンに戻すか選択できます。
@@ -38,6 +37,11 @@ チェックされているファイルを指定されたディレクトリに移動します。
:guilabel:`削除`
チェックされているファイルを削除します。
+ :guilabel:`破棄`
+ チェックされている管理済みファイルを破棄します。
+ :guilabel:`再読み込み`
+ 作業ディレクトリの状態を再読み込みします。
+ 再読み込み後もチェックボックスの選択状態は保たれます。
ファイル一覧には4つの列があります:
@@ -58,6 +62,18 @@無効になります。
+タブ
+----
+
+シェルフツールの差分表示パネルには4つのタブがあります:
+
+ 1) テキスト差分 - 選択されているファイルの差分が表示されます
+ 2) ハンク選択 - 選択されているファイルのハンク選択状態を変更できます
+ 3) シェルフプレビュー - 全ての選択されている変更点が表示されます。このプレビュー
+ に表示されている内容が作業ディレクトリから取り除かれてシェルフに格納されます。
+ 4) シェルフ内容 - シェルフに格納されている内容が表示されます
+
+
変更点をシェルフする
--------------------
|
@@ -1,6 +1,9 @@ 構成管理を始める
================
+.. module:: start
+ :synopsis: リポジトリ作成に使用するダイアログ
+
プロジェクトで Mercurial または TortoiseHg を使って構成管理を始める方法は
いろいろあります。
@@ -21,20 +24,24 @@これ以降の節をご覧ください。
+リポジトリの新規作成
+----------------------
+
+TODO
+
+リポジトリのクローン
+--------------------
+
+TODO
+
プロジェクトの変換
------------------
-TortoiseHg にはリポジトリを変換するためのツールはありませんが、
-Mercurial のリポジトリに変換しさえすれば TortoiseHg を利用できます。
-
どのように変換するのかについてはこのマニュアルの範囲を越えるため、
より詳細な説明については
http://mercurial.selenic.com/wiki/RepositoryConversion
を参照してください。
-
-.. NEEDFORREVIEW
-
-通常、 *convert* 拡張機能を有効にして親ディレクトリから::
+*convert* 拡張機能を有効にして親ディレクトリから::
hg convert myproject
|
@@ -9,6 +9,10 @@
同期ダイアログ
+.. note::
+ 同期ツールはバージョン 0.9 において廃止予定となり、以降のリリースで削除されます。
+ そのため同期操作はチェンジログビューアで行うことを推奨しています。
+
同期ツールはリポジトリ間でチェンジセットを転送したり、メールを送信するのに使います。
:guilabel:`受信`
@@ -21,9 +25,14 @@ それらはローカルにあって、指定したリポジトリにはないチェンジセットです。
:guilabel:`プッシュ`
チェンジセットを指定したリポジトリにプッシュします。その結果、
- ローカルにおける *tip* リビジョンが指定したリポジトリの新しい *tip* リビジョンになります。
+ ローカルにおける *tip* リビジョンが指定したリポジトリの新しい
+ *tip* リビジョンになります。
:guilabel:`メール送信`
指定したリポジトリへのチェンジセットをメールとして送信します
+ :guilabel:`シェルフ`
+ いくつかの同期操作は作業ディレクトリがクリーンであることを前提として
+ いるため、シェルフツールを起動して作業ディレクトリにおける変更点を
+ 一時的にシェルフに退避します。
:guilabel:`中止`
現在の操作を中止します
:guilabel:`設定`
@@ -52,12 +61,12 @@ 変更が衝突した場合にマージが発生する可能性があります。
:guilabel:`取得`
:command:`hg fetch` と同じ操作になります。動作の詳細については fetch 拡張機能の
- ヘルプを参照してください。
+ ヘルプを参照してください。この機能は fetch 拡張機能がユーザによって有効化されて
+ いるときのみ表示されます。
:guilabel:`リベース`
:command:`hg pull --rebase` と同じ操作になります。動作の詳細については
- rebase 拡張機能のヘルプを参照してください。
- リベース操作はリポジトリオブジェクトを保有するツールへの破壊的な操作となるため、
- チェンジログビューアとの連携動作を無効にします。
+ rebase 拡張機能のヘルプを参照してください。この機能は rebase 拡張機能が
+ ユーザによって有効化されているときのみ表示されます。
:guilabel:`プロキシサーバを使用する` チェックボックスは同期操作ごとに
プロキシサーバの設定を無効化するのに便利です。
@@ -89,14 +98,12 @@プルした後
----------
-チェンジセットがローカルのリポジトリにプルされた後、ダイアログの下部に2つのボタンが表示されます:
+チェンジセットがローカルのリポジトリにプルされた後、ダイアログの下部にボタンが表示されます:
- :guilabel:`プルされたチェンジセットを表示`
- チェンジログビューアを開いてプルされたチェンジセットを確認します
- :guilabel:`tipリビジョンに更新`
- 作業ディレクトリを新しい tip リビジョンに更新します
+ :guilabel:`tip リビジョンに更新`
+ 作業ディレクトリを現在のブランチの tip リビジョンに更新します
-どちらのボタンもその操作が有効なときのみ表示されます。
+ボタンは使用可能なときにのみ表示されます。
メール送信
@@ -145,13 +152,4 @@それ以外のエイリアスの場合は *default* URL が選択されます。
選択された URL が見つからない場合は最初に見つかったパスが使用されます。
-0.7 からの変更点
-----------------
-
-* リポジトリパスのドロップダウンリストに最近使用したパスを含めない。
- 表示されるのはリポジトリで設定されたパスのみ。
-* メールダイアログに :guilabel:`In-Reply-To` タグと添付ファイル形式の
- 設定項目を追加。
-* メールダイアログはパッチ数に関わらず説明メールを送信するようになった。
-
.. vim: noet ts=4
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
@@ -102,7 +102,7 @@ The annotation data will automatically follow lines of code back through
copies and renames to find the initial changeset that introduced the
line. The graph log pane will also attempt to follow renames and
-copies, so some lines in the graph may corrolate to different filenames
+copies, so some lines in the graph may correlate to different filenames
than the original annotated file path. Renames are indicated in the
graph by color changes within a column.
|
doc/source/figures/commit.png
size changed from 1017x674 to 830x560
mode changed from RGBA to RGB |
||
---|---|---|
|
doc/source/figures/log.png
size changed from 899x730 to 753x564
mode changed from RGBA to RGB |
||
---|---|---|
|
|
doc/source/figures/settings.png
size changed from 446x646 to 442x642
|
||
---|---|---|
|
doc/source/figures/syncbar.png
size changed from 628x29 to 763x28
|
||
---|---|---|
|
@@ -28,6 +28,7 @@
from mercurial import demandimport
demandimport.ignore.append('win32com.shell')
+demandimport.ignore.append('tortoisehg.util.config')
demandimport.enable()
from mercurial import ui, util
from tortoisehg.util.hgversion import hgversion, checkhgversion
@@ -56,6 +57,7 @@ mystderr = cStringIO.StringIO()
origstderr = sys.stderr
sys.stderr = mystderr
+ ret = 0
try:
ret = tortoisehg.hgtk.hgtk.dispatch(sys.argv[1:])
sys.stderr = origstderr
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
@@ -10,6 +10,7 @@ import time
import sys
import os
+import subprocess
from distutils.core import setup
from distutils.command.build import build
from distutils.spawn import spawn, find_executable
@@ -54,7 +55,7 @@ _scripts = []
_data_files = []
_packages = ['tortoisehg.hgtk', 'tortoisehg.hgtk.logview',
- 'tortoisehg.util']
+ 'tortoisehg.util', 'tortoisehg']
extra = {}
hgextmods = []
@@ -158,11 +159,19 @@ (scripts, packages, data_files, extra) = setup_posix()
desc='TortoiseHg dialogs for Mercurial VCS'
+version = ''
+
try:
- l = os.popen('hg -R . id -it').read().split()
+ l = os.popen('hg -R . id -i -t').read().split()
while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags
l.pop()
- version = l and l[-1] or 'unknown' # latest tag or revision number
+ if len(l) > 1: # tag found
+ version = l[-1]
+ if l[0].endswith('+'): # propagate the dirty status to the tag
+ version += '+'
+ elif len(l) == 1: # no tag found
+ cmd = 'hg parents --template {latesttag}+{latesttagdistance}-'
+ version = os.popen(cmd).read() + l[0]
if version.endswith('+'):
version += time.strftime('%Y%m%d')
except OSError:
|
@@ -55,7 +55,7 @@ # changeset info
style = csinfo.panelstyle(label=_('Changeset Description'),
margin=4, padding=2)
- self.csetframe = csinfo.create(repo, rev, style)
+ self.csetframe = csinfo.create(repo, rev, style, withupdate=True)
self.vbox.pack_start(self.csetframe, False, False, 2)
# backout commit message
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
@@ -145,11 +145,11 @@ date = self.opts.get('date') or ''
pats = ' '.join(self.pats) or ''
if self.qnew:
- return root + ' - qnew'
+ return root + _(' - qnew')
elif self.mqmode:
patch = self.repo.mq.lookup('qtip')
- return root + ' - qrefresh ' + patch
- return root + ' - ' + ' '.join(['commit', pats, user, date])
+ return root + _(' - qrefresh ') + patch
+ return root + ' '.join([_(' - commit'), pats, user, date])
def get_icon(self):
return 'menucommit.ico'
@@ -269,7 +269,8 @@ self.update_parent_labels()
self.update_commit_button()
if not self.committer_cbbox.get_active_text():
- user = self.opts['user'] or self.repo.ui.config('ui', 'username')
+ user = self.opts['user'] or os.environ.get('HGUSER') or \
+ self.repo.ui.config('ui', 'username')
if user:
update_recent_committers(hglib.toutf(user))
if not self.autoinc_entry.get_text():
@@ -300,7 +301,7 @@ adv_hbox.pack_start(self.committer_cbbox, True, True, 2)
self._mru_committers = self.settings.mrul('recent_committers')
self.update_recent_committers()
- committer = self.repo.ui.config('ui', 'username')
+ committer = os.environ.get('HGUSER') or self.repo.ui.config('ui', 'username')
if committer:
self.update_recent_committers(committer)
self.committer_cbbox.set_active(0)
@@ -336,7 +337,8 @@ else:
self.qnew_name = None
- liststore = gtk.ListStore(str, str)
+ liststore = gtk.ListStore(str, # summary line (utf-8)
+ str) # full commit message
self.msg_cbbox = gtk.ComboBox(liststore)
cell = gtk.CellRendererText()
self.msg_cbbox.pack_start(cell, True)
@@ -378,18 +380,19 @@ # parent changeset info
parents_vbox = gtk.VBox(spacing=1)
self.parents_frame = parents_vbox
- style = csinfo.labelstyle(contents=('Parent: %(rev)s',
+ style = csinfo.labelstyle(contents=(_('Parent: %(rev)s'),
' %(athead)s', ' %(branch)s', ' %(tags)s',
' %(summary)s'), selectable=True)
- def data_func(widget, ctx):
- return widget.get_data('ishead') or self.mqmode
- def markup_func(widget, value):
- if value:
- return ''
- text = '[%s]' % _('not at head revision')
- return gtklib.markup(text, weight='bold')
- custom = csinfo.custom(athead={
- 'data': data_func, 'markup': markup_func})
+ def data_func(widget, item, ctx):
+ if item == 'athead':
+ return widget.get_data('ishead') or self.mqmode
+ raise csinfo.UnknownItem(item)
+ def markup_func(widget, item, value):
+ if item == 'athead' and value is False:
+ text = '[%s]' % _('not at head revision')
+ return gtklib.markup(text, weight='bold')
+ raise csinfo.UnknownItem(item)
+ custom = csinfo.custom(data=data_func, markup=markup_func)
factory = csinfo.factory(self.repo, custom, style)
def add_parent():
label = factory()
@@ -439,6 +442,7 @@ return
buf.set_text(model[index][1])
buf.set_modified(False)
+ combobox.set_active(-1)
def first_msg_popdown(self, combo, shown):
combo.disconnect(self.popupid)
@@ -449,11 +453,13 @@ if msg:
self._mru_messages.add(msg)
self.settings.write()
- if self.popupid is not None: return
+ if self.popupid is not None:
+ return
liststore = self.msg_cbbox.get_model()
liststore.clear()
for msg in self._mru_messages:
- if not msg: continue
+ if not msg:
+ continue
sumline = hglib.toutf(hglib.tounicode(msg).splitlines()[0])
liststore.append([sumline, msg])
@@ -554,7 +560,7 @@ new_sentence = ['']
for part in parts:
- if len(new_sentence[-1]) + len(part) > line_width:
+ if len(new_sentence[-1]) + len(part) + 1 > line_width:
new_sentence.append('')
new_sentence[-1] += '%s ' % part
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
@@ -30,9 +30,9 @@
class Prompt(SimpleMessage):
- def __init__(self, title, message, parent):
+ def __init__(self, title, message, parent, type=gtk.MESSAGE_INFO):
SimpleMessage.__init__(self, parent, gtk.DIALOG_MODAL,
- gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE)
+ type, gtk.BUTTONS_CLOSE)
self.set_title(hglib.toutf(title))
self.set_markup('<b>' + hglib.toutf(message) + '</b>')
mod = gtklib.get_thg_modifier()
@@ -340,21 +340,41 @@ def get_menuitem(self, name):
return self.menuitems[name]
+ def get_widgets(self, name):
+ widgets = []
+ widgets.append(self.toolbuttons.get(name))
+ widgets.append(self.menuitems.get(name))
+ return widgets
+
def cmd_set_sensitive(self, name, sensitive):
- ws = []
- ws.append(self.toolbuttons.get(name))
- ws.append(self.menuitems.get(name))
- for w in ws:
+ for w in self.get_widgets(name):
if w:
w.set_sensitive(sensitive)
def cmd_set_active(self, name, active):
- ws = []
- ws.append(self.toolbuttons.get(name))
- ws.append(self.menuitems.get(name))
- for w in ws:
+ for w in self.get_widgets(name):
+ if w and hasattr(w, 'set_active'):
+ w.set_active(active)
+
+ def cmd_get_active(self, name, fallback=None):
+ prev = None
+ for w in self.get_widgets(name):
+ if w and hasattr(w, 'set_active'):
+ active = w.get_active()
+ if prev is not None and prev != active:
+ return fallback
+ prev = active
+ return prev
+
+ def cmd_handler_block_by_func(self, name, func):
+ for w in self.get_widgets(name):
if w:
- w.set_active(active)
+ w.handler_block_by_func(func)
+
+ def cmd_handler_unblock_by_func(self, name, func):
+ for w in self.get_widgets(name):
+ if w:
+ w.handler_unblock_by_func(func)
def get_reponame(self):
return hglib.get_reponame(self.repo)
|
@@ -16,7 +16,7 @@ from tortoisehg.util.i18n import _
from tortoisehg.util import paths, hglib, thread2
-from tortoisehg.hgtk import hgtk
+from tortoisehg.hgtk import hgtk, gdialog
if gtk.gtk_version < (2, 14, 0):
# at least on 2.12.12, gtk widgets can be confused by control
@@ -25,6 +25,10 @@else:
from gobject import markup_escape_text
+if gobject.pygobject_version <= (2,12,1):
+ # http://www.mail-archive.com/tortoisehg-develop@lists.sourceforge.net/msg06900.html
+ raise Exception('incompatible version of gobject')
+
def set_tortoise_icon(window, thgicon):
ico = paths.get_tortoise_icon(thgicon)
if ico: window.set_icon_from_file(ico)
@@ -158,10 +162,14 @@ """run the file dialog, either return a file name, or False if
the user aborted the dialog"""
try:
- import win32gui, win32con, pywintypes
- return self.runWindows()
+ import win32gui, win32con, pywintypes
+ filepath = self.runWindows()
except ImportError:
- return self.runCompatible()
+ filepath = self.runCompatible()
+ if filepath:
+ return self.overwriteConfirmation(filepath)
+ else:
+ return False
def runWindows(self):
@@ -198,7 +206,7 @@ while thread.isAlive():
# let gtk process events while we wait for rundlg finishing
gtk.main_iteration(block=True)
- fname = None
+ fname = False
if q.qsize():
fname = q.get(0)
return fname
@@ -213,7 +221,6 @@ buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_SAVE, gtk.RESPONSE_OK)
dlg = gtk.FileChooserDialog(self.title, None, action, buttons)
- dlg.set_do_overwrite_confirmation(True)
dlg.set_default_response(gtk.RESPONSE_OK)
dlg.set_current_folder(self.initial)
if not self.open:
@@ -229,6 +236,18 @@ result = False
dlg.destroy()
return result
+
+ def overwriteConfirmation(self, filepath):
+ result = filepath
+ if os.path.exists(filepath):
+ res = gdialog.Confirm(_('Confirm Overwrite'), [], None,
+ _('The file "%s" already exists!\n\n'
+ 'Do you want to overwrite it?') % filepath).run()
+ if res == gtk.RESPONSE_YES:
+ os.remove(filepath)
+ else:
+ result = False
+ return result
class NativeFolderSelectDialog:
"""Wrap the windows folder dialog, or display default gtk dialog if
@@ -338,7 +357,7 @@ All options must be passed as keywork arguments.
"""
if len(kargs) == 0:
- return text
+ return markup_escape_text(str(text))
attr = ''
for name, value in kargs.items():
attr += ' %s="%s"' % (name, value)
|
@@ -30,10 +30,8 @@ if len(title) > 80:
title = title[:80] + '...'
title = hglib.toutf(title.replace('\n', ' '))
- gtk.Dialog.__init__(self,
- title=title,
- flags=gtk.DIALOG_MODAL,
- )
+ gtk.Dialog.__init__(self, title=title, flags=gtk.DIALOG_MODAL)
+ self.set_has_separator(False)
gtklib.set_tortoise_icon(self, 'hg.ico')
gtklib.set_tortoise_keys(self)
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
Loading...