11

SVN 外部ファイルを使用すると、SVN フォルダーを別の場所にあるかのように見せることができます。これは、SVN 内のすべてのプロジェクトで共通のフォルダーを共有するのに適しています。

SVN に /trunk/common フォルダーがあり、いくつかの異なるプロジェクトで共有しています。

例:

  • Project1 : /trunk/project1/depends
  • Project2 : /trunk/project2/depends
  • Project3 : /trunk/project3/depends
  • Project4 : /trunk/project4/depends

これらの依存フォルダーはそれぞれ空ですが、 /trunk/common フォルダーを指すように svn:external が定義されています。

問題は、プロジェクト内のログを表示するときです: /trunk/projectX/ svn:externals からの変更が表示されません。SVN クライアントとして亀 SVN を使用しています。

この動作を変更する方法を知っている人はいますか? /trunk/projectX の表示ログに、定義済みの svn:externals への変更も含めたいと思います。

4

4 に答える 4

3

これは、外部ディレクトリのターゲットで svn log を明示的に呼び出す以外に、Subversion の現在のリリースでは不可能です。

Apache Subversion Web サイトで機能リクエストを発行してみることができます

于 2008-09-15T13:25:55.803 に答える
1

私の個人的な経験から、外部リンクのログは、外部ファイルを変更した同じコミットで、「内部」フォルダー内のファイルを 1 つだけ変更した場合にのみ報告されます。このようにして、SVNは適切なログ、外部フォルダーからのログも取得できます。

フックを使用すると、コミットが外部リンクから開始される場合でも、コミットごとに作業ディレクトリにあるスポット ファイルを自動コミットするメカニズムを実装できるはずだと思います。

さよなら

于 2013-01-24T09:58:33.123 に答える
0

ローカルのバージョン管理されたフォルダーのログを表示すると、この特定のフォルダーに関連する変更が表示されます。外部は、リポジトリ上の別のフォルダーへのリンクにすぎません。この外部プロジェクトに依存するフォルダーから、外部参照について追跡できる唯一のものは、参照定義自体です。これは、参照が依存フォルダーのサブバージョン プロパティであるためです。

次のリポジトリ階層があるとします。

repo
   myfirstproject
      trunk
   mysecondproject
      trunk
   mycommonlib
      trunk

そのmysecondproject\trunkフォルダーには次のsvn:externalプロパティがあります。

svn://mysrv/repo/mysharedlib@2451 sharedlib

新しいフォルダー secondproject 内mysecondproject\trunkをチェックアウトすると、ファイル システムに次のようなものが作成されます。

secondproject Folder (refers mysecondproject/trunk)
   sharedlib Folder (refers mycommonlib/trunk @ revision #2451)

secondprojectフォルダーから Tortoise の「Show log」コマンドを呼び出すと、 secondprojectファイルの変更のみが表示され、最終的にフォルダーのsvn:externalプロパティで発生した変更が表示されます。

外部プロジェクトの変更ログを取得するには、内部フォルダーsharedlibから "Show log" を呼び出す必要がありますが、これは理にかなっています。

于 2008-09-15T13:58:09.750 に答える
0

Subversion 1.7 (WC のルートに単一の .svn フォルダーを導入) の後は、よりクリーンになったと思います: ディレクトリタイプの外部変数の場合、作業コピー内の外部のディレクトリは a) 独立している b) 別のリポジトリのネストされた作業コピー

>dir /B /S /AD
z:\subversion-troubleshoot-b\.svn
...
z:\subversion-troubleshoot-b\trunk
z:\subversion-troubleshoot-b\tags
z:\subversion-troubleshoot-b\trunk\lib
z:\subversion-troubleshoot-b\trunk\lib\.svn
...
z:\subversion-troubleshoot-b\tags\1.0.0
z:\subversion-troubleshoot-b\tags\1.0.1
z:\subversion-troubleshoot-b\tags\1.0.1\lib
z:\subversion-troubleshoot-b\tags\1.0.1\lib\.svn
...

親 WCには、ネストされた WCに関する情報が含まれていません(WC のディレクトリ、リポジトリの / から作成されたもの、.svn ディレクトリの存在はメインラインの場合にのみ 2 回注意してください)

>svn ls -R
readme.textile
tags/
tags/1.0.0/
tags/1.0.0/core_mod.txt
tags/1.0.1/
tags/1.0.1/core_mod.txt
trunk/
trunk/core_mod.txt

トランク (およびそれぞれのタグ) がサブディレクトリ lib を外部として持つ場合

外部とのレポブラウザ

外部の処理のサポートが更新とコミットに追加されました。これは、このサポートが独立した無関係な連続したコマンドを生成するためです。また、このサポートがなければ外部は意味がないため、集約された svn ログを何らかの方法で組み合わせる必要があります(未知の原則による、ところで)。

于 2013-01-24T11:20:19.167 に答える